Vacations, Adaptation, and Software Project Success
Submitted by Dave Churchville on Tue, 2006-06-27 16:06.
If we managed software projects the way we manage vacation trips, the success rate would skyrocket.
When my wife and I planned our last vacation to Seattle, a city I had never visited, we had bunch of unknowns.
Where was the best area to stay? What did we want to see? Was it the best time of year to go? Can we get a good deal? How long should we stay? What are the best places to eat?
Just like on a new software project, there was no way to know any of these things for sure, even though we read a few guide books, and talked to a few friends who had been there a few years ago.
But since the ultimate goal was the somewhat vague "Have a great time", we did the best we could to plan it. We picked a hotel that was near some of the things we wanted to see, made a list of some highly rated restaurants, and bought the most informative guide book with maps.
The trip itself, though, was an exercise in rapid adaptation. On the way into town, I saw an amazing building that I was curious about. Turned out to be the Public Library. As luck would have it, I remembered reading about that library on the plane - it's something of an architectural and technological wonder. Had to see it, even though it wasn't planned.
This kind of thing happens all of the time in software, but many teams aren't adaptable enough to respond to emerging requirements. My original trip didn't call for locating and visiting a library, but once I arrived, well, that's what I wanted. Similarly, you customers often discover their requirements once a project has started, and frequently when they have seen an early version.
Agile development approaches allow you to adapt easily to these kinds of changes by using short development cycles or iterations, and delivering working software in each one.
Going back to my trip, the best-rated restaurant on our list wasn't open the day we arrived, but when we asked a worker in the Fish Market (where they toss fish around) for a recommendation, that turned out to be one of the highlights of the trip.
Adaptation is more than just making the best of a bad situation, it's also about making a good situation even better.