There are hundreds of ways to cook a turkey; every year it amazes me that folks just keep trying new things: In a bag, upside down, standing up, deep fried, rotisserie, stuffing in, stuffing out, smoked, barbequed, etc… The possibilities are only limited by your own creativity. In the end, the consumers of the holiday bird don’t really care how it arrived on the table, they just want it to taste good … am I right? The cook bears the burden of selecting a cooking strategy, leaving his or her reputation on the line each Thanksgiving holiday.
This reminds me of the endless options for writing software. Should we use C# or Java? What type of interface, what methodology, what standards are we going to follow? In the end, the consumers of your products don’t care how you got to a release; they just want it to work. The developer of the software bears the risk and puts his or her reputation on the line with each release. Case and point: Apple’s most recent iOS 8.0, 8.1 and 8.1.1 releases. All of a sudden flawed software releases impact a company’s stock price, as demonstrated by Apple’s stock price dropping once the word got out about the buggy release.
But the metaphor doesn’t end there. Thanksgiving dinner really is a lot like development.
The Requirements Phase:
The email goes out (at least a month in advance) to all family and friends asking them questions that you need the answers to in order to prepare dinner:
- How many people are coming to dinner?
- Are there any food allergies?
- What does everyone want (besides turkey)?
These details determine the size and scope of the meal … sound familiar to planning a software release?
The Design Phase:
Once the requirements have been gathered, the cook (and helpers) begin to design the meal around everyone’s cooking capabilities, taking into consideration their strengths and weaknesses. Another email then goes out detailing the requirements and asking for folks to sign up for cooking items they feel are their strengths. For example, my wife’s grandmother (Grandma “B”) always made an outrageous stuffing and roasted Kielbasa from the local Polish butcher. My mother-in-law makes peach cream cheese Jello that is nothing less than spectacular. And we always consider “Uncle Sid,” who has a refined palate and perhaps is our test case that we build our meal around. For those following Agile development, this process may sound strangely familiar.
The Coding (Cooking) Phase:
With Uncle Sid in mind, everyone begins cooking his or her part of the meal. If cooking on Thanksgiving, you have real-time access to Uncle Sid’s taste buds and iterate your dish in stages, gaining his approval before integrating your dish in with the rest of the meal. Sounds a lot like Test-Driven Development and scrum …
The Integration (Staging & Setting the Table) Phase:
Everyone has come together in the kitchen and placed their dishes on the table, ready to go. Now there is just one final test to make sure everything is ready: Verify nothing on the list is missing (and then my mother-in-law snaps a photo of the dinner table because she wants to submit it to Better Homes & Gardens or send it to Martha Stewart herself). Every year there are some tears and hugs, and the hungry men in the family roll their eyes saying, “Enough already, let’s eat!” This is, of course, similar to the executives in your board room rolling their eyes saying, “Enough testing already, release it!”
The Deployment (Let the Feast Begin) Phase:
Dark or white meat, breast or thigh, stuffing or green bean casserole? Here comes the onslaught of family members filling up their dishes, consuming what has been prepared. This is where the rubber meets the road. Our product (Thanksgiving dinner) has been released and we wait anxiously for feedback. Software in today’s environment is no different. With millions of downloads moments after a release, the feedback can be instantaneous.
The Market’s Feedback:
After a month’s worth of preparation and a lot of hard work (and perhaps some fighting), the dinner is over in 20 minutes. Based on feedback, (which caused Apple’s stock to take a hit after a bad release), some people may not be getting the pre-Thanksgiving email next year to contribute. It’s a harsh world, be it software or holiday dinners, but we do what it takes to make our end customers happy.
Thanks for reading. I hope I made you laugh.
From my family to yours, we hope you have a wonderful and safe Thanksgiving holiday!
PSC Vice President, DCG Sales