I'm lousy when it comes to cooking & baking. I won't go into the stories of muffins gone wrong, chicken not cooked right, even hard boiled eggs not really hard. Thankfully my husband does the cooking and he's great at it. I'm the one who builds the furniture, deals with home repairs/renovations (not always so well), and smashes front 'yard' concrete with a sledgehammer so that we can make way for a little garden (should have seen the neighbors galk when I was pregnant and working the hammer!).
But anyway, I'm not much of a cook. But, when it came to making cupcakes for my daughters little party, I felt like it was my duty as a mom to make them for her. We bought the Dunkin Hines Devil's Food mix and with the instructions from the back of the box right in front of me, I nervously get started. I always get tripped up with the variations between baking temperatures for glass & metal vs dark or coated pans. But, since this time I was making cupcakes my situation was a little different.
Since these days I often find myself relating something I'm doing to something about managing software projects, I suddenly was thinking of project specifications. I was the lone programmer working on part of an application, and there was no project manager or information architect to answer my questions that came up...
- How do I treat the pan if its a cupcake pan and not a cake pan? Do I grease it, just put the little paper cups in, or put grease in the paper cups?
- How much batter do I put in each little cup? How many cupcakes should this make?
- What if I don't have vegetable oil, will another type of oil do?
Those of you bakers out there are probably laughing at my silly questions, but because of my bad history I really am a very timid baker. Fortunately, I had wonderful specs to work with. The back of the cake mix box had very clear instructions and color pictures showing exactly what I needed to do. There were accurate illustrations of each of the ingredients needed in addition to the mix, and each of the three main steps were broken into smaller steps with clear bold red headings. There was a little table at the bottom that showed what baking time is needed for different size pan and even my own (yes!) 24 cupcakes. If I had a question about something that seemed to be outside the realm of the normal baking process, in most cases the answer was there on the box.
I'm reading "Rapid Development: Taming Wild Software Schedules" by Steve McConnell right now, and am always impressed when I see the charts plotting out recommended times to be spent on each area of the project. In this and all other books I've been reading lately, there is always more time devoted to design and specification for the project than on coding. This seems consistent regardless of the Lifecycle model used (unless its the "Code and Fix" lifecycle). The general theme is that when enough time is put 'upstream' into planning through how things should work, both with interface, technical functionality, etc...then less time will be spent later 'downstream' with rework, bug fixing, or worse...cancelling the project all-together.
Did I have to cancel my cupcake project? Definitely not, they came out fine...a little lumpy but definitely edible.
Did I have to do any rework later on? A bit, I was a little too conservative with my batter amounts in the beginning so I had to go back and add more to the small cups at the end.
Was there any bug-fixing? Nope, I had all the right ingredients in there and the correct amounts of them.
All thanks to an excellent specifications document.. thank you Dunkan Hines!