What does agile development have in common with musical theater?
Working in an agile development environment, I noticed some parallels to my experiences with student theater several decades ago.
In both cases, you never have enough time to get your production / release perfect. In theater, your dates are fixed in advance, and you work within that constraint. Your production has to be “releaseable” in the sense that you are expected to perform a whole show start-to-finish, and you have to accept some fine-tuning just won’t get done. You have some flexibility on how elaborate you make your staging, scenery, costumes, etc., and you do the best you can with the resources and the time you have. In software, you commit to a release schedule, and you scope your releases to what you can get done within that schedule. It’s better to drop features than to delay the release.
Another common concept is progressive refinement. The idea is to build the big picture in broad strokes first, then come back to fill in details. (Think about how JPEGs look while downloading.) The first thing you when you start rehearsals is read through the whole script, start-to-finish. No matter what, everyone has to know their lines and music. Then you start adding staging, bits at a time. Early into the rehearsal period you would be able to do a minimalist performance–you wouldn’t have full staging or sets, but it would be something. In software, this would be like defining the full product vision, then building out enough critical features to release an early MVP.
On the people side, theater productions tend to have distinct roles. Producers are responsible for publicity and ticket sales, directors and music directors are responsible for making sure performers know where to stand and how to sound, etc. These roughly correspond to software team roles like product manager, development manager, and technical lead – there is a separation of responsibility between commercial success (producer/product manager) and the day-to-day management of rehearsals/development (directors/managers). In an amateur/student group people usually wear multiple hats, similar to an agile or startup environment–everyone is a stakeholder in overall success and pitches in where needed–but there are clear affinities.
Finally, on people management: it is important to have the right people on the team. In both cases, teams that are excited to work together will feed off each other and can outperform the sum of their parts. On the flip side, someone who looks great on paper might not be a good fit for your organization, and will often dissapoint. In both cases, I learned this the hard way.