by Leon Rosenshein

Flexibility

The first two principles of the agile manifesto are

Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.

Welcome changing requirements, even late in development. Agile processes harness change for the customer's competitive advantage.

Or, in other words, you need to be flexible and adapt to changes in the world around you. And, as it also states, 

Continuous attention to technical excellence and good design enhances agility.

And a lot of people forget about that part. They think all you need is a daily scrum and the occasional retrospective, and you're agile. But that's not really how things work. If you start from scratch every two weeks, and you only do things that fit in a two week sprint you're just fluttering in the breeze.

Plans are good. Goals are good. Knowing what done looks like is critical. All of these things let a group of people work together to produce, as the manifesto says, working software as a measure of progress. And that's what's really important. The definition of done may (will) change over time, but at the end, you've got to add customer value.

Here's a real-world example for you. My daughter got married on Tuesday. It was wonderful. But it wasn't what we planned 9 months ago. Back then, in the before times, it was going to be the Wings Over The Rockies Museum, amidst the airplanes. And it was going to be in late October, with lots of family and guests coming from out of town. But then Covid. So we had to be flexible. Move the date up a couple of months. Scale things back. A small group in our backyard. We can do that. Most things are the same. Still need a wedding dress, caterer, and cake. Still need to send out invitations, (but with a different date). But add masks and face shields, a tent and some outdoor air conditioners because early September in Colorado can be in the upper 90s. We've got this.

Then, fires. Not just in California adding a hint of smoke to the air, big swaths of western Colorado, and the smoke pours through the I-70 corridor into the Denver area. Ok. We can deal. It's not too bad. Then a new fire starts 25 miles away and it's raining ash in the back yard. Let's get some big umbrellas. This will work.

Of course this is Colorado and the weather is odd. After a weekend of record highs we get a 60 degree temperature drop and 4 inches of rain/snow. Quick. Move the wedding inside. But we can deal with that. The furniture is the same, the decorations are the same, just packed a little tighter. The caterer can be here a little early in case there's problems with travel.

It wasn't quite agile/scrum, but all of the pieces were there. We had a clear goal. We worked with the customer (my daughter) and understood the real goal. The building blocks were sound and well designed, so we could adjust them, do some rescoping and rearranging, and put them back together. And like any good project we made it happen.

Like I said, it was wonderful. Not exactly what we planned, but wonderful nonetheless. And that's why it's important to have a good design and be flexible.

PS: That wasn't the end of the flexibility. The morning after, as they were about to head out for their honeymoon the hotel called. Reservation canceled due to one of the fires. But they were flexible and were able to transfer their reservation from Steamboat to a hotel in the same chain in Breckenridge. :)