Kent Beck, recently published a paper where he shared his thoughts about tools and Agile software development. He stated that many people misinterpret the “Individuals and interactions over processes and tools” part of the manifesto to believe that Agile software development does not require tools. Tools are an integral part of Agile software development and the right set of tools acts as a catalyst for effective development.
According to Kent, Agile places a lot of emphasis on flow, which means delivering in small chunks. As a result of flow there is frequent transition between activities. Usually, there is quick transition between analysis, design, testing, coding and deployment. Thus the priority of a tool changes from working well for a given activity to efficiently switching between activities. He gave the example of cards on the wall as a tool which fulfills these criteria though it has other shortcomings. As soon as a pair realizes that there is an additional requirement during the course of an activity, they can update the card and get back to their activity. Thus cards would allow a quick transition but they suffer from disadvantages like being impermanent and not easily distributable across locations.
Similarly, Kent suggested that transparency is very important in Agile. Given that Agile embraces change, change of plans is a common phenomenon. Transparency ensures that everybody on the team knows about changes and propagates trust. The tool should support and enable transparency.
Kent added that common Agile practices have strong correlation to more than one tool. For example, daily deployment practice requires unit testing, configuration management and continuous build. Similarly TDD practice requires a unit testing tool and a refactoring tool. Looking from the other side, each tool supports multiple practices. For example, configuration management tool supports daily deployment, incremental design and continuous integration. Thus each tool supports multiple practices and each practice requires multiple tools.
He noted that Agile has already made a strong impact on the developer tools. Some of the changes that he predicted for future tools are
Smooth transition between activities
Greater scope for automated testing
Transparency
Real time collaboration
The paper is available for download in various formats. Discussion on the paper is going on, on the the Extreme programming group.