Know what you're doing (Part II)
By Bob Hueston on Apr 16, 2007
The first step in planning is to recognize the goal of planning:
A plan describes how you will deliver a product with a minimum set of functionality (features) and
quality by a certain time with a specified maximum cost.
There are four quantities a plan must define: functionality, quality, time and cost. Some people will group functionality and quality into one term; however, I insist on separating them because quality (the degree to which you guarantee there are no defects in the product) can vary widely across products. As an example, when I worked in aerospace developing jet engine monitoring and control systems, the quality requirements were very stringent, as even a minor defect could cause the deaths of hundreds of people. The cost, staffing and time to verify these embedded systems was very high (especially when you needed to test with a real airplane). On the other end of the spectrum I've worked on graphical user interface front-ends where most defects are, at most, just annoying, and the cost of verification is fairly low since defects are usually easy to spot, and require just my own workstation for testing. Quality tends to fixed for a product, but it may vary widely between product lines.
The interesting thing about the four quantities in a plan is that they tend to exhibit a constant mathematical relationship:
functionality \* quality = time \* cost
The problem with planning is that the equation is often over-constrained and out of balance. For my house, I wanted lots of features and high quality for a low price, and I wanted it now. Similarly, marketing or management may specify the functionality, quality, time and cost, but the equation just doesn't add up. It is the role of the engineering project leader to make the equation balance.
If you want more on the left side of the equal sign (more functionality, higher quality), it's going to increase the right side (take more time, cost more money). When management asks you to pull in the schedule (reduce the time), you need to turn around and ask them, "Do you want to reduce functionality, reduce quality, or increase cost (e.g., add staff, buy more equipment)." If they ask you to reduce schedule and cost, and quality is fixed, there's no choice but to reduce the delivered functionality.
This is getting a bit long, so I'll save for my next entry why (and how) engineers should be the best planners on Earth...