The Art of Agile Development: Chapter 5: Thinking

Feb 27, 2010

Welcome to the The Art of Agile Development website. Here, you'll find a cornucopia of bonus material, such as downloadable posters, behind-the-scenes material, and new insights.

For more, see the table of contents.

Full Text

The following text is excerpted from The Art of Agile Development by James Shore and Shane Warden, published by O'Reilly. Copyright © 2008 the authors. All rights reserved.


What's wrong with this sentence?

What we really need is more keyboards cranking out code.

That's a quote from a manager I once worked with. In a way, he was right: you will never give your customer what she wants without typing on a keyboard.

That wasn't our problem, though. I later realized that our progress had a single bottleneck: the availability of our staging environment. More keyboards wouldn't have helped, even if we had more programmers sitting at them. If we had realized this sooner, we would have been much more productive.

Sometimes the biggest gains in productivity come from stopping to think about what you're doing, why you're doing it, and whether it's a good idea. The best developers don't just find something that works and use it; they also question why it works, try to understand it, and then improve it.

XP doesn't require experts. It does require a habit of mindfulness. This chapter contains five practices to help mindful developers excel.

  • Pair Programming doubles the brainpower available during coding, giving one person in each pair the opportunity to think about strategic, long-term issues.

  • Energized Work acknowledges that developers do their best, most productive work when they're energized and motivated.

  • An Informative Workspace gives the whole team more opportunities to notice what's working well and what isn't.

  • Root-Cause Analysis is a useful tool for identifying the underlying causes of your problems.

  • Retrospectives provide a way to analyze and improve the entire development process.