1/23/2007

Compartmentalization

You and your team must do the best job they can. You cannot do everyone else's job. If everyone did a good job at their own tasks, the company would succeed. So what do you if someone or some team in the company is not doing what needs to be done?

Obviously you must try and determine how big an issue it is for the company. If the company will absolutely fail then speak up loudly. Otherwise it enters an interesting realm. Do you let mistakes happen? Do you try to do everything? How do you provide input? How far do you go?

I will admit that I have parted ways with companies over this very issue. I have a strong belief in doing my job well and have my team do its job well. I believe I can provide input to other teams but they have to make their own way. I do not believe I or my team could or should try to do other team's jobs. Sometimes this will result in failures (again temper this by the scope of the item) and it is ok. Sometimes failures result in fixing problems at a more fundamental level.

One metaphor is baseball. If some player is doing a poor job, another player cannot do their job because that will cause failure in their position. While some player's jobs overlap, it would be hard and confusing and ultimately cause failure. The manager must replace or train poor players to be effective and successful. Companies are the same way. Each team must do their job. A manager must train or replace unsuccessful people and teams. Do not expect another team to drive or cover for a poor performing team and not impact the original team's responsibilities.

This comes down to clear responsibilities and accountability. Make it clear who owns what tasks. Hold them accountable. Do not reward others for overrunning a team that is not successful without direction to do so. But make sure there are opportunities for anyone to bring issues to light on anything and create mechanisms to follow up on issues.

Make sure there is a single owner for cross-group projects. Hold them accountable.

If everyone is successful on their projects, your company will be successful.

More later ...

1/15/2007

How late should you allow changes in a release?

This entry is about the very end of a release. I have talked about the whole end-game in a previous posting but this period warrants more discussion. There are always more bugs to fix. Sometimes this pressure comes from engineering trying to perfect a release and sometimes from product management trying to help out one more customers or avoid a service call. Either way I suggest you avoid a lot of changes down the end of a release.

There should always be a quiet period before a release where only bugs that would stop shipment and cause an immediate patch of a production release should get fixed. Clearly the length of this period will vary with the size of release or the maturity of a company. But the period should not be less time than a full run of testing (which should be set to take 7 or less days).

In this period, any bugfix is as likely to cause more problems as fix problems. People like to minimize the impact of changes in this period but my experience does not support that position. I have seen slips due to innocuous changes.

If you have not met your bug goals or you have not completed testing do not enter this period because you will need to fix bugs that are not appropriate for this period. Do not assume you can fix a lot of bugs and keep the release stable.

So what can you do to manage this period:

  • Show leadership
  • Plan a patch release shortly after your release as a vehicle to handle critical non-showstopper bugs.
  • Get involved in the bug reviews yourself
  • Do not start new testing that has not been performed before in the cycle

Managing this period well will improve your company's and group's predictability which will in turn enhance your chances for success.

More later ...

1/14/2007

How can you train managers on an ongoing basis?

You may ask your staff to accomplish a task like schedules, replan, review, or budgets and it does not get done. They make a commitment for a new date and it comes and goes without success. What should you do? Do you admonish them? Do you fire them? Do you train them? This entry concerns the last question.

Clearly it is unacceptable for your employees to miss delivery dates. Make sure they know they are accountable have to inform you early about potential misses. But you need to look at the root cause. Some employees may not have competence and you should manage them appropriately but others just have not been trained.

We know that most managers in engineering have not had management training. Part of your job as a manager is to train them. Take the time and have patience. Do not be surprised if employees with big titles are missing some key skills. Train them and they will not only be more productive but they will learn how to train their own staffs.

Here are the basics for a missed task:

  • Set a new deadline for a task.
  • Notify your employee that if they miss the new date, then you will work on it together.
  • If they miss the task, call a meeting and allocate enough time to complete the task together.

I often use the term "lock the doors until it is done". Then you have to complete the task together. Like any other learning situation you have to be careful to not do the work yourself but you need to be in the room and guide the task until completion.

Once employees learn about this method, you can tell them they can ask for this help before they miss a deadline. Be open and generous in the process. If they feel like they are being punished, you may not get what you want out of the process.

You certainly should explore training classes for employees as a proactive tactic to minimize some of the need for this technique but you should still expect to do this kind of training.

Create a learning atmosphere and your team will learn how to succeed.

More later ...

1/10/2007

Follow up!

This is common sense to some and not to others. In any interaction you have with your team, peers, boss and customers, you must follow up. This is one of the great differentiators between junior and senior managers and between those you can depend on for results and those you cannot.

Many times people avoid following up because they have incomplete results. Get comfortable with intermediate status. Inform people often. If you get asked about an action, then you should probably have considered providing status or information without having had to be asked.

Other times people avoid following up because of conflict avoidance. Maybe you didn't meet expectations or you do not see a way to close an action item or you think the item is not worth working on. I suggest you address it before it becomes an issue. Reset expectations, ask for help, or discuss the usefulness but don't let it go unaddressed.

Teach your employees about what you expect. Keep an action item list from your meetings with meaningful deliverables and due dates. Tell your folks how frequently you expect status on items. Follow through with them. Mentor them. Hold them accountable.

Similarly, be proactive with your own list of items you must follow up on. Actually keep a list and manage it. In larger organizations, use a program manager to help manage it. Strive to never have anyone have to ask you where things are at on an item.

Note that you may have to learn how to interact with various people. Even though others may not be explicit about how frequently they want status, you need to adapt. There are lots of ways to communicate including email, websites, phone calls, and dropping by in person. Find out what works best and is appropriate for colleagues versus bosses, etc.

If you follow up you will become more valuable to your company and reduce stress in your job. If you can help your team to learn how to follow up you will surely make them and your company more successful.

More later ...