This post originated from an RSS feed registered with Agile Buzz
by Dave Churchville.
Original Post: Small Wins: Agile Psychology
Feed Title: Agile Project Planning
Feed URL: http://feeds2.feedburner.com/AgileProjectPlanning
Feed Description: Thoughts on agile project planning, Extreme programming, and other software development topics
There are many theories as to why Agile methods work.
I'd like to suggest that a very small core element is responsible for much of the energy and ultimately the success of Agile development projects:
Small wins create momentum. Continous small wins create tremendous momentum.
OK, but what kinds of small wins are important in software projects?
How about early positive feedback from customers?
Or early clarification of an important feature (that leads positive feedback later)
Early detection and resolution of defects before they lead to not-so-positive feedback.
Early proof that you can build and deploy the software somewhere other than your own machine
These types of small wins have a subtle, but critical effect on everyone on the project team. Developers feel valued and are motivated to continue satisfying the customer. Customers feel heard and in control, and begin to develop trust for the development team. Stakeholders see regular progress, and begin to feel less anxious about project outcomes. Testers get an early look at the software, and are able to add value much earlier than in typical projects.
I went on a hike a few months ago that was basically an entirely uphill climb. There were no real twists or turns, just a straight incline. After about an hour on continuous climbing, I just gave up. This was partly because I was exhausted, but also because I had no idea how much further it was to the top. There were no clear indicators of progress, nothing to feel good about, just more turns of the road, and nothing but up to look forward to.
Similarly, software projects that offer no short-term wins can be depressing. Even the best team can feel unmotivated and lose steam when the project drags on and on without feedback, interim releases, or other signs of progress.
Agile methods promote frequent delivery and rapid feedback. For me, this isn't just a nice-to-have side effect, it's the only sustainable way to create great software.