Agile development is a buzzword that has gone all the way through the hype cycle. In the early days Extreme Programming and the Agile Manifesto were widely mistrusted except by their fanatical early converts. Then as the benefits became clear, Agile certifications and consultants proliferated, and bad implementations gave Agile a bad reputation. Agile (and the related concept of Lean Development) now appears to be shedding both of those extremes, and software teams are finding the core concepts to be quite useful.
The JobTraQ development team started to implement Agile near the peak of its inflated expectations. But as a small and scrappy team, they did not have the time or the budget to engage a consultant to help with the transition. Instead they relied on previous experience and wide reading to find the parts of the Agile concept that would work best. One resource that was particularly useful was the book The Art of Agile Development by James Shore and Shane Warden. Johanna Rothman’s blog was also very helpful.
The three most valuable Agile concepts for our team were short iterations, fast feedback, and focus. In the past each developer worked on a feature for several months, and we integrated them into a release at the end. Stabilizing those releases was a nightmare. Because it took months to show our work to our stakeholders and customers, we didn’t get much feedback until it was too late to adjust course. And because everyone was working independently, it was hard for team members to help each other.
The transition to Agile development took a long time. Our team and our stakeholders were not fully comfortable with the process until nearly two years after we started. The first six months were especially rocky as we tried to learn how to split features into small enough chunks that we could finish them in one iteration. Our next challenge was finding a way for stakeholders and developers to plan features collaboratively instead of tossing documents and questions back and forth over the fence. It took a lot of work to get through those and other smaller challenges, but we can now say that it was definitely worth the effort.
Now we have one-week iterations where the whole team works together on one feature at a time. This makes it easy for them to collaborate and has made us much more productive. It also lets us demo those features quickly, get feedback, and make necessary changes long before our release deadlines. We do a final stabilization week at the end of each release to make sure our customers are comfortable with our process, but it is much easier than it was in our old process. And because our whole team is focused on quickly finishing one thing at a time, it is easy to release small interim updates for the customers that want to take advantage of new features as early as possible.
We continue to fine-tune our process and find new ways to take advantage of our flexibility and responsiveness. In the past year we’ve improved our testing tools to make them more robust, improved our build system to make deployment easier, and started teaching our support team how to write code so they can work with customers and developers even more effectively. We are now learning how to integrate User Experience research into our process, instead of treating it as a separate responsibility.
Agile development is not the panacea that it was claimed to be a few years ago. And it is not the consultant-driven waste of time that it has become since then. It is another in a long list of software engineering ideas that are valuable in some circumstances and ineffective in others. We’ve found that it is a good fit for us. We would recommend it to other software product development teams, but only if their organization is willing to push through the difficult changes that will be required.
Josh Yeager is the Director of Operations for Swift Software, the developer of JobTraq, the Lean BPM pioneer.
Josh Yeager’s LinkedIn: https://www.linkedin.com/pub/josh-yeager/4/562/650
Swift Software website: www.JobTraQ.com