April 4, 2012 1 Comment
By Bruce Szalwinski – Senior Data Architect – Cobalt Intelligence Center of Excellence
I was kicking back on the couch last Saturday afternoon watching Duff Goldman create another amazing “edible, structural model display piece” otherwise known as cake. His replica of the Radio City Music hall was lavishly decorated with lights, a Christmas tree and lots of glitter. As usual, the cake had been constructed in a week and Duff was delivering the finished product to another satisfied consumer. A repeatable process that results in satisfied customers? Where have I heard of this before? Had I found a way to combine my love of cake with my love of software development? Could it be that I could finally explain to my neighbor what I do at work in terms that he would understand? Fortunately for me, it was an Ace of Cakes marathon so I had plenty of time to explore the relationship between cake and code.
At its heart, the agile process focuses on delivering the highest business value in the shortest amount of time. Working software is delivered rapidly and repeatedly in increments as short as one week up to one month. Small teams self-organize to determine the best way to deliver the highest priority features. Can I justify watching TV all afternoon by finding these three pillars of agile development in a bakery?
On Monday’s, the folks at Charm City Cakes gather to discuss the cakes that will be delivered that week. In the world of agile development, this is a sprint planning meeting. Mary Alice, acting in the role of the Product Owner, defines the features of each cake such as flavor and general size, sets the delivery date and negotiates a price that will result in profitability for the bakery. The set of cakes that she presents to the decorators is analogous to the product backlog. The decorators, serving in the role of Scrum Team, pull cakes off of the backlog that they then commit to complete that week. They collaborate on how each cake will be constructed, what scaffolding will be required to support the cake and the set of team members that are required in the construction of the cake. These constant one week intervals produce an even rhythm within the bakery resulting in an amazing number of cakes being delivered. It is interesting to note that nobody ever makes a cake that is scheduled for delivery weeks later. Not only might the requirements change, most of all the cake would be stale. This is something to remember when adding “extra” features during development.
As the episodes rolled on, I noticed the camera panning over a wall of clipboards. It turned out that each clipboard represented one of the cakes to be delivered that week. The clipboard also contains the customer requirements and any associated artifacts needed to complete the cake. This maps well to the agile philosophy of preferring working software over comprehensive documentation. As each cake was completed, its associated clipboard was marked as done. What a simple and elegant burn down chart! The progress for the week is on display for all in the bakery to see. As folks finish their assigned cake, they can spot other opportunities where they can assist their fellow decorators so that the whole team is successful.
No agile team would be complete without a Scrum Master and Duff clearly serves that role. From dealing with the fondant supplier to fixing the air conditioning system, Duff is constantly removing obstacles to ensure that the team is fully functional and productive. As the owner of the business, he sets the values and practices that are carried throughout the rest of the bakery. He is constantly encouraging his staff to expand into new roles. In the “Hard Knock Cake” episode, he models pair programming when he states that “Catherine can pipe anything, it’s time to teach her the guts of cake making”. He then proceeds to pair her with Ben to expand her skill set.
Having completed the marathon, I was pleased to find such a strong relationship between good cake and good code and look forward to sharing some of these ideas with my scrum team. The folks at Charm City Cakes clearly embody the Agile Manifesto by valuing individuals, collaboration and of course working cake. As Duff says in the tag line for the show, “It’s all about the cake!”