InfoQ

News

Relationship Between Tools and Agile Software Development

Posted by Vikas Hazrati on Jul 24, 2008 02:15 PM

Community
Agile
Topics
Artifacts & Tools

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.

Related Sponsor

VersionOne is recognized by Agile practitioners as the leader in Agile project management tools. Companies such as Adobe, BBC, CNN, Dow, HP, IBM, Sony and 3M have turned to VersionOne to help deliver greater value to their customers.

No comments

Watch Thread Reply

Educational Content

Bindings, Platforms, and Innovation

This presentation focuses on the Internet and separating myth from fact, history from the future, and the mundane from the imaginative. Bob Frankston presents a vision of what could and should be.

Orchestrating Long Running Activities with JBoss / JBPM

This article explores the use of JBoss and jBPM to implement design solutions that effectively address the issue of orchestrating long running activities.

Neo4j - The Benefits of Graph Databases

This presentation covers the use of graph databases as an optimal solution for data that is difficult to fit in static tables, rapidly evolving data or data that has a lot of optional attributes.

Realistic about Risk: Software development with Real Options

This session introduces Real Options and shows how it can help in running your project. Real Options is a decision-making process that can be used to manage risk.

Communication Flexibility Using Bindings

This article discusses the use of bindings on services and references (including the instance of non-configured bindings) as the means to implement SCA communications in a Web and SOA environment.

Writing DSLs in Groovy

After a short introduction to DSLs, Scott Davis plays with the keyboard showing how to approach the creation of a DSL by typing working snippets of Groovy code that get executed.

Scaling Agile with C/ALM (Collaborative Application Lifecycle Management)

IBM Rational and InfoQ present, Scaling Agile with C/ALM, an eBook showing organizations how to become “finely tuned software delivery machines” by enabling team integration and scaling.

Concurrent Programming with Microsoft F#

Amanda Laucher presents a real life enterprise application written in F#. She shows actual code snippets, explaining design decisions and suggesting how to use some of the F# constructs.