I've just returned from the superb Agile Development Practices conference in Orlando, Florida. One of the most inspiring sessions I experienced was Brian Marick's opening keynote.
It set a pretty high bar for the rest of the conference. I'll try to give you my impressions and take-aways from Brian's talk, but I would strongly encourage you to read the original, which Brian has posted on his blog.
Looking back on the movement christened by the publication of the Agile Manifesto, Brian shared with us his perspective on how that mission statement should be enhanced and extended. Brian focused on agile values as a way to resist the temptation to chase short-term gains at the expense of long-term benefit. The eight values he discussed were:
- Courage
- Working Software
- Ease
- Reactive Behavior
- Fast Feedback
- Naiveté
- Visibility
- Joy
Courage is needed to overcome the many kinds of Fear that can distract us from our goal. It allows us to question the rules, and break or change them when appropriate. Working Software is our goal. This means software that fulfills the needs of the people who use the software. This implies both quality and fitness for purpose. Brian emphasized that small increments of this goal should be produced very frequently, citing Kent Beck's advice to have no more than 15 minutes of discussion before someone makes the ideas concrete by writing code. In all the work we do, we must strive for Ease. Taken in an appropriate context of long-term value, this means making many small investments along the way so that our work becomes more streamlined rather than bogging down under the drag caused by allowing barnacles to accumulate. Ultimately, this allows us to avoid Yak Shaving, but you'll have to see Brian's transcript for more on that.
A pervasive thread through the presentation was the idea of keeping software Soft. This was especially emphasized by valuing Reactive (rather than the traditionally valued Proactive) Behavior. This does not mean that we don't have a plan, but that we retain the Softness required to bend our plans while constantly moving forward. Fast Feedback helps us become aware of important information that we should integrate into our plans as we react to what we learn. The faster the feedback, the better we will do at staying on target, so we should strive for feedback on the order of minutes, such as that provided by Test Driven Development and Pair Programming.
The value of Naiveté really amounts to what Eastern martial artists refer to as Beginner's Mind. This is the transcendence of what we "know" about what is possible, so that we are open to succeeding with the seemingly impossible. Visibility is the art of simply exposing the problem and letting our human nature generate a solution. In this way we find that people can be soft like software. When the consequences of our choices are visible, we become motivated to change, where we would have resisted exactly the same change if it was imposed on us. Taken together, these values lead to a sense of Joy. As David Anderson said in his closing keynote, we can create a place where we want to work, rather than have to work. From a motivational perspective, this kind of environment captures Discretionary Effort, which is the hallmark of high performance.
At the end of his talk, Brian invited a panel of agilists to offer their thoughts and values. This list included:
- Simplicity (J.B. Rainsberger)
- Integrity (Linda Rising)
- Questioning (Rachel Davies)
- Angst & Purpose (Jeff Patton)
- Experience (David Hussman)
- Community (Anthony Marcano)
J.B. began with a story about Simplicity that encouraged us to ask ourselves what it would take to start making money sooner. Linda followed with admonitions to avoid Delusion—a lacking of Visibility, Courage and Ease that leads us to overlook challenging, yet often obvious, opportunities for improvement. I interpret this as the value of Integrity—doing what we know is right even when it's not easy in the short term. Rachel asked us to have the Courage to say "No" to taking on too much work, illustrating the value of Questioning.
Jeff contributed the value of Angst—the motivating sensitivity to things that could be better, and the value of Purpose—to make sure we all understand the strategic vision that guides our tactical decisions. David offered potential manifesto additions like "Success over Dogma" and "Description over Prescription", ultimately focusing on the value of Experience communicated through sharing our stories. This really resonated with me as there always seems to be some nuanced understanding to be gained through listening to the struggles and triumphs of others.
Anthony concluded with the value of Community—a kind a Family Spirit that keeps us looking out for each others' best interests. For me, this relates to the value of Collaboration, which is mentioned in the original manifesto, and seems central to the culture change required for successful agile adoption. Focusing on Collaboration means replacing win-lose relationships with win-win relationships. In asking how we all can benefit, we find the path to sustainable success.
What values do you think should be added, removed, clarified or modified?
[Special thanks to Joey McAllister of SQE for allowing me to review the tape of Brian's session and capture the comments of the panelists]