5/31/2006

How can you create trust between engineering and management?

The software development industry is very much like a dysfunctional family. Executives don't trust that engineering will deliver what they say they will deliver and they don't trust it will be on time. Engineers think that executives set unreasonable goals and don't provide them with the resources to succeed. What can you do to engender trust as a manager?

Here are some basics:

  • Be feature agnostic
  • Be completely open about schedules
  • Give executives some choices
  • Provide information early about risks and their mitigation
  • Provide non-confrontational opportunities for executives to interact with engineering
  • Be responsible

Many engineering managers get very passionate about what should be in the product. Passion is good but you must set a boundary for yourself. It is product management's job to take input from the field, engineering, and competition and set priorities. If you appear in the slightest to be sandbagging or subverting in order to push your own agenda, you will lose trust. If you are objective, it is easier to gain trust.

Give all of your information to anyone who wants to see it including schedules and designs. Hiding information reduces trust. If someone does not like the plans your team has developed, have an open discussion. Get down into details. Remove the mystery. It will be painful at first, but people will gain trust over time. If someone wants to argue about the length of time for a particular item, stand your ground. They hired you for your expertise and if they cannot allow you to do your job, your company will have big issues and trust may not be possible.

Make sure you provide alternatives. Consider the following alternatives:

  • Existing resources, normal work schedules
  • Existing resources with extra effort
  • Extra resources
  • Phasing features
  • Modified release dates

The point is to not come into your boss and say "This is the only thing we can do". Everyone knows there are always choices. If management knows you have looked at the possibilities, It will build trust and confidence in you and your team.

Make sure you are the one informing your management when there are risks. Do not go in and expose a risk without some plan to mitigate that risk. When your boss hears things about your group from others before they hear it from you, it reduces their trust in you and your team.

If the only time your team interacts with management, is when something is going wrong, then it will be hard for you to trust each other. Find informational, social, research and other reasons to meet and build a relationship between you, your team and the executives.

Finally, try to make sure your team meets it commitments. If they can't, take responsibility and make sure that you and your team are working as hard as possible to make it up.

There is a lot more to this, but the above items are a good start.

More later ...

5/19/2006

How Can You Make Your Meetings More Effective?

As an engineer, I hated meetings. They were boring. People used them as opportunities get on their soap boxes. Rarely did anything get accomplished.

How can you make your meeting more effective? Here are some ideas:

  • Know what you want to accomplish in a meeting before it starts
  • Communicate what the goals are for people before the meeting starts
  • Take tangents offline (acknowledge they are good points but discuss them later)
  • Assign action items
  • Agree on when and how you will follow up
  • Document the discussion and action items in writing
  • End early

I'll tackle the last point first. A good friend and prior boss of mine, Larry Weber, used to say we would all be more productive if an hour was 40 minutes. We allocate an hour for meetings and often expand the meeting to the time allotted. Often, the most costly resource in a company is compensation so use people's time wisely.

If people do not know what the meeting is about, the meeting may flounder or people will hijack it for their agenda. Decide what it is about and what you want to accomplish before you walk in the door. This does not mean that all meetings need to have hard facts or actions at their heart. It is OK to have a meeting to give people a chance to provide their opinion on a matter. The important point is to acknowledge that and make sure every member at the meeting understands the goals.

Finally, whenever you can you should not leave things ambiguous. If there are task identified as a result of the meeting, you should not leave before you identify owners, specify when the task should be completed and how you will track the task.

If it is your meeting, provide leadership and drive. If it is someone else's meeting do no let them waste your time.

More later ...

5/16/2006

Work Harder, Work Smarter, Skip Steps ...

Everywhere I have worked people ask me to have my teams work harder or work smarter. What does this mean and how can you do it?

Unfortunately, we as engineers sometimes translate the orders to work harder or smarter into skipping steps. I have been guilty of it myself. You find a piece of a project that needs to be re-architected in the middle or the end of development and you can face it or pray for a miracle. We have all been there.

However, each time we ignore the correct steps, we pay for it in the end. Either we don't make the dates, burn people out and lose them or incomplete or buggy products to the field.

You should employ smart people and you should employ smart processes. Take the time to do requirements documents, specifications and code reviews. Take the time to get sign-off from all of the stakeholders. Take the time to do it again if things change.

Don't get me wrong, you should challenge your teams to get it right the first and you should challenge them to meet their commitments. You should challenge everyone to act as a team and pitch in when things go wrong. Just don't throw out the baby with the bath water. The fun part of software is coding something and seeing it work. The rest of the stuff I mentioned above is like brushing your teeth or paying taxes. Only your leadership will insure the hard parts get done.

The smartest way to work is to take the time to do good engineering. The effort you and your team will need to employ will differ from project to project and company to company. Take the time to figure out what you need and then help your teams accomplish their tasks and hold them accountable.

More later ...

5/08/2006

It's Embarrassing!!!!

We can do better!

Last august Toyota announces a major Prius software bug and recall
Last November Microsoft announce major changes in management and delays in Vista
This March the FBI announces more delay in their $500 million upgrade
This April Microsoft announces more delays in Vista
...

Every company has them. Delays due to engineering schedule slips are common place. Significant Quality issues due to inadequate testing or integration.

I want to acknowledge we are all working on our own stuff. At first glance maybe you should not care if Microsoft has another delay. We are used to it. They are not us. They might even be the enemy and you may take joy from their misplanning. I am here to ask you to reconsider.

Whether you like it or not we are part of an industry. From the Linux developers to Windows developers, from embedded to supercomputer, from Assembly language to business logic we are failing. No one can depend on us. Not our customers. Not our sales people. Not ourselves.

One might say the problems stem from the youth of our industry or the rapidness of change. You might want to blame hungry investors and executives who have become accustomed to setting impossibles goals assuming that no matter what date is set won't be made. Still other might indict the workforce for not being able to plan or not working hard enough.

I will suggest we are all to blame. We can do better. Dogma and standards will not win the day here but results will. I believe there are two things that can make the greatest difference between predictability and the status quo:

  • Leadership
  • Education

Without leadership from investors, executives and managers nothing will ever change. You have to vote for predictability to make change. You have to know it will take time to achieve. You have to know it will require tough decisions like making priorities.

Without education we will never be better. We have to start training technologist to be leaders in school. We cannot expect them to magically develop those skills in the work force. We have to train engineers before we ask them to be managers.

Dr. Dobbs has just published an article I wrote on some of the things it takes to be a good manager in their June issue. Check it out. It is a good way to start the dialog. Feel free to contact me on how we can start to change the industry (mark@heavenstoneinc.com).

More Later ...