Monday, May 21, 2007

May 21, 2007 – How to Meet Expectations

Some things are predictable. Love stories always end with the couple getting together. Tragedies end with someone dying. If you are watching a horror movie you know the phone won’t work and the lights will go out. You also know that instead of staying together where it is safe the characters will venture off on their own and become victims. Predictability is so ingrained in us that when things don’t turn out like you think they should you get upset.

Case in point: I once watched over an hour of a documentary about rebuilding a World War 2 plane. Evidently on the way back from Europe after the war, the plane ran out of fuel in far northern Canada and landed. The people were rescued but the plan remained there for over 40 years. A team of mechanics and a film crew spent several years refitting the plane. Because of the harsh winters and short summers there was only a short window to work on it each year. Upon completion they added fuel to it and were able to get it started.

The plane taxied down the frozen ground and wonder of wonders lifted off the ground. It flew in a wide circle and life was as it should be…until smoke started pouring out the back. By the time they landed the plane was engulfed in flames and everyone stood around watching it burn to the ground. I was mad. They had suckered me in to investing over an hour of my life to see all that effort go to ruin.

Then I started to imagine how my business team would feel if they invested their money and time helping my team refit their systems only to have the results miss their expectations. I’m pretty sure they wouldn’t be happy. How can you avoid this problem? Here are 5 ways to keep your project from going up in flames because of unmet expectations.

1. Understand the Business.
Before you start gathering requirements, understand the group for whom you are doing the work. What is the problem they are trying to solve and how does it fit in with the rest of their business? You don’t need to be the expert but you need to comprehend the need.

2. Confirm expectations. Requirements are a good place to start but may not be the whole picture. Use modeling or prototyping to work through more of the details when possible. Walk through the requirements documentation and models with them to be sure everyone understands and is in agreement. If you don’t have a formal approval process, adopt one. It doesn’t have to be elaborate; it just needs to show that at a specific point in time everyone agreed on the direction to head.

3. Verify along the way. Your goal is to produce a useful product, not blindly follow the specifications. I was reminded of this on one of my projects. The test results showed that we successfully processed and loaded the data we received. They also showed the data was messed up. We had to add a mini project to correct the data at the source. If we had ignored it the system would have met the specs but would have been useless. The great part about working in an agile environment with graphical components is the ability to put pieces of the end product in front of the users on a regular basis. Seeing and touching along the way will bring corrections and improvements for consideration.

4. Horses…rein them in. A change management process is your lifeline. While #3 above may sounds like an open invitation to chaos, the project is still constrained by time, scope and budget. Use the process to confirm the necessity of a change and to allocate sufficient time and money to complete it. Where the approval process points you in the right direction, change management keeps you on the right path.

5. Abuse case testing. Much of our testing tends to focus on meeting the specifications. If I enter an amount and press button A then screen X appears and shows W. But can I bypass the security and grant myself access to view screen Y? Can I guess by the URL other areas I shouldn’t be able to get to and hack in? Trying to say you delivered a product that works to spec while the company burns to the ground isn’t going to cut it. Designate a resource for several days to try and break the system. Take off the gloves and just start abusing it.

In the end it is about delivering something of quality. Ensure it is something that doesn’t leave your business disappointed.

No comments: