At the end of July I spoke at the Agile 2014 conference in Orlando about what it means to be an agile enterprise. Part way through that presentation I spoke about the differences between producing potentially shippable software, one of the mantras of the Scrum community, and potentially consumable solutions as promoted by DAD. To do this I walked people through what I call the glass of water analogy. Here’s how it went:
I had a glass of drinking water. I took a sip from the glass to verify that the water was clean and the right temperature for drinking. The water was very refreshing and was something that I thought others would enjoy. It was my opinion that this glass of water was potentially shippable. I took another sip and then offered the water to the audience, there was over 200 people in the room, yet nobody was willing to drink from my glass. Shocking! I even singled someone out and tried to bully him into drinking my water (oops, I mean I aggressively marketed the wonderfulness of the water to him). Still, nobody wanted to drink the water. I took another sip and verified that it was in fact still refreshing. It was clear to me that my glass of water was potentially shippable. I could very easily have walked over to anyone in the room and they could easily have drunk from the glass. But everyone chose not to. It was potentially shippable from my point of view, but from the point of view of every single audience member it wasn’t consumable. In a venue where drinks are easily available, not a single person was willing to drink from my water glass (I assume due to a fear of catching my cooties). Had the venue been different, perhaps a desert with no other sources of drinkable liquids, someone might have been interested.
The point is that creating potentially shippable software isn’t sufficient. It needs to be something that people actually want to use, to consume. It must be a true solution that adds real value for them given their current situation. Cootie-laden water isn’t attractive when other drinks are readily available. Similarly, software that is difficult to use compared to other options, that isn’t well supported as other options, or that doesn’t enhance the way that people want to work isn’t going to be very attractive either.
Disciplined agilists focus on producing potentially consumable solutions. High-quality software is clearly part of this, but that software needs to be usable and something that people want to use. It needs to be supported with sufficient documentation. It needs to be supported with adequate hardware. It may even be part of an overall change to the business process and even organizational structure of the people using that software.
“Potentially shippable software” is a wonderful slogan, but we need to do a lot better than that.