Being agile is a lot like playing jazz. With my personal experience as a would-be jazz musician, I will show how playing music laid a foundation for my becoming more agile.
Agile is — Responding to change, even late in development
Change is always happening. That’s one of the wonderful things about jazz music. — Maynard Ferguson
I started playing the alto saxophone during my freshman year of college. In jazz band, I sat next to a somewhat less committed tenor saxophonist. Let’s call him Sam. Sam was often late, sometimes not showing up for practice at all. Jazz groups are small, so every member plays an integral role — just like they do on an agile team. Each time Sam missed rehearsal, both the director and the band became more irritated. One day the director had enough and decided it was time to change up the team composition. Sam was out. After a short bout of yelling, the director paused for a moment. It was an awkward silence. Suddenly he swung his finger around and pointed directly at me. He said in a commanding tone, “move over, Brian. You now play tenor.” He then went to the back room where the spare instruments were stored. Though I was intrigued by the idea, I had always played alto. It was my comfort zone. Tenors are heavier, play in a different key and I didn’t have a reed or any other necessary tools. Was I supposed to just know how to do this right away? What if I made mistakes? By the time I finished thinking of some excuses, I found the director back at my seat, dumping a tenor sax and sheet music in my lap. I had no choice but to just go for it. Of course I struggled at first, but eventually I found my voice on the new horn.
This journey made me a better and more versatile player, opened up new options, and caused me to learn that being a jazz player requires a great deal of flexibility. You never know what the audience is going to ask to hear, or in custom software projects, what the customer is going to ask for. Requirements change. The team changes. Problems and use cases change. Technology tools are upgraded and change all the time. If your process does not account for change, it’s doomed from the start.
Agile is — Iterative development
Never play anything the same way twice. — Louis Armstrong
Rehearsal was twice a week with deliverables being several performances per semester. Each 90-minute session was a disciplined regimen of warm ups, practicing known material, learning new material and collaboratively fixing problems. Each time we iterated through playing a piece of music, the group improved. Some sections were easy; some were difficult. When my saxophone section had too much trouble with some area, we scheduled time outside regular practice to address the problem, so as to eliminate wasting everyone else’s time.
Agile is — Communicating just in time
A good quartet is like a good conversation among friends interacting to each other’s ideas. — Stan Getz
Jazz combines technical skills with creative expression. To play improvised notes with other people has a few important requirements. The soloist must:
- Play notes that fit into chords that are passing by and changing with time.
- Make a creative statement; create a “sound” that is unique.
- Listen carefully to what other members are doing so your style of play fits with the overall sound being created by all members.
Sometimes during an improvised solo, I would run out of musical ideas. However, when I learned to listen to what the other musicians were doing, I realized they could provide ideas to play off of. During my solo, the drummer might change the beat, which made the pianist play a run of notes that reminded me of a different song that we had all played before. I’d take the cue and incorporate the melody of that tune into my solo. That musical idea would not have occurred if (1) the other instruments were playing in a silo without listening, and (2) if I was not listening to their interaction in the middle of my solo.
A good team passes ideas around and learns from each interaction. This requires that all members know how to communicate well with each other and that they do actually communicate. Close proximity helps. Knowledge of past performance helps. Consistency in the team’s composition helps.
Agile is — Failing early and fast in order to win
Do not fear mistakes. There are none. — Miles Davis
If you don’t make mistakes, you aren’t really trying. — Coleman Hawkins
Even in software projects where my client felt they understood the entire system design, there were many changes in real life as we progressed through the project’s development.
Even after you practice a piece of music 100 times, the 101st iteration will be different. Many musicians approach improvisation by preparing in advance. They discover melodic patterns that fit in various places as the chords progress, practice phrasing and find a unique way to interpret familiar tunes. Because jazz tries to express something differently with every performance in real-time, imperfect people will hit wrong notes. To avoid this, an ideally executed improvisation would have to be an expression of thoughtfully and technically amazing musical ideas that all link together, each one being formed perfectly in the mind and then executed just as the mind conceived them. But how could it be possible to form these ideas unless you spend considerable time in advance, memorize the ideas, and play what you memorized? Such a prepared contrivance is not jazz, and it’s not agile either!
Being agile like jazz is responding to changes in real-time, creating beautiful results even though the end result will have bugs and behaviors the developer and customer could not anticipate. It involves real-time problem solving, constant collaboration, iterating through the work to form and polish each part, and embracing change so that the end user/customer has the best possible experience.