Yesterday, I faced a situation that may be familiar to you and the people you collaborate with:

Carve a pumpkin into a jack-o-lantern in less than 90 minutes so that it could be enjoyed by children trick-or-treating on Halloween.

I’m sharing this story because I think it provides a simple and relatable explanation of Agile delivery processes. Also, this story isn’t contrived, I really did it this way.

Planning

Let’s start with the key constraints:

  • our refrigerator does not have room for a pumpkin so we couldn’t do this the day before
  • wanted our 2yo son to help – he loves pumpkins and gets up from nap a bit after 3pm
  • the sun sets and the primary target audience of trick-or-treaters start arriving around 5:30pm

There’s a 2.5 hour window to perform a task that I estimated at least an hour long, while leaving time to do other things like get ourselves ready for trick or treating. Oh, and we only have one pumpkin, so try not to mess up. At least this is an ‘optional’, nice-to-have requirement…

My delivery approach:

  1. Use a design and tools from a kit. No time (or skill, really) for custom design work here.
  2. Use the proper tools. The pumpkin carving kit included a number of tools that were “right” for certain parts of the job and types of work:
    • a ‘claw-like’ ladle for extracting the seeds and stringy bits
    • a scraping tool to clean out the pumpkin
    • several cutting tools appropriate for small and large cuts
  3. Mark the design carefully on the pumpkin using the provided template.
  4. Carve elements of the design in an order that quickly got us into the shippable zone and keep excursions out of the shippable zone as short as possible.

Like many technology projects, I hadn’t done this exact thing before so I didn’t know how long completing this design would take (the last time I carved a pumpkin was like 20 years ago, without a kit). But I thought this “three ghosts rising from a cauldron” design could be broken down and delivered incrementally. If I didn’t complete a ghost or some stars, kids would probably still be happy with what they did get.

Execution

The preparation steps took about 45 minutes, consuming half the budgeted delivery time. We selected a design that appeared to be ‘medium’ complexity. Cleaning out the pumpkin took the greatest portion of the time (30min?), but was greatly accelerated when someone pointed out I should try the scraping tool that I had overlooked. Tracing the design with the stencil was nearly 15 minutes of detail oriented work.

Then I carved the central ghost of the design and cauldron, which I planned as the MVP release:

This took about 15 minutes and I was relieved to have something that looked like we could ship to the neighborhood kids. I executed a quick functional test by dropping the flashlight in and confirming the light shone through properly. We have a shippable pumpkin with a third of our time budget remaining.

I’m also feeling like I’ve learned how to carve and the next releases will be come quicker. And they do.

Pressure’s off and it’s all downhill from here 🙂

Release 2 was available 5 minutes later:

In this release, I added the second ghost and experimented with opening up the cut a bit wider.

Release 3 with all three ghosts and the cauldron was available 5 minutes later. The design is feature complete:

Five more minutes investment and Release 4 is delivered with cuts cleaned-up and deployed (again) to the functional test environment:

Good to go!

Time to wash off the remaining design traces and pumpkin bits.

Deployed and operating in production:

The trick-or-treaters really seemed to like our jack-o-lantern and several commented on it and explored it. Overall, we used 75 minutes of our 90 minute budget This is good data for next year’s iteration.

Again, I’m sharing this story to illustrate how you can frame, approach, and explain all kinds of activities as Agile delivery processes. We decompose problems and their solutions all the time and Agile/Lean is applicable for more than just software.

Have a great weekend!

Stephen

#NoDrama

p.s. I’ll return to container orchestrators next week.