Tool Integration In Distributed Agile Development

[article]
Summary:
This article provides an overview of various tools, integration strategies and their benefits in agile environments. These tools would come in handy in implementing key agile practices like daily builds, refactoring, continuous integration and test driven development.

The first agile principle in the Agile Manifesto is " individuals and interactions over processes and tools. " In this competitive world, the customer expectation is high in terms of quality, productivity and cost. "Individuals" alone cannot meet customers' expectations and this is where the tools complement individuals' efforts. There are numerous open source and commercial tools available to help developers achieve success. The second part of above-mentioned agile principle says "interactions." This adds another dimension of complexity in a "duo-shore" model, where the teams are separated not only by distance but differ culturally. 

This article provides an overview of various tools, integration strategies and Ftheir benefits in agile environments. These tools would come in handy in implementing key agile practices like daily builds, refactoring, continuous integration and test driven development.

Requirement Gathering And Analysis
Let us start with the tools to help developers in requirement gathering.

Wiki
Wiki is a tool used to enhance group communication. Wiki's flexibility and ease of use has made it popular among agile teams. The typical scenarios for Wiki usage include:

  • Onsite customer sharing the use cases with the offshore development team through standard Wiki templates.
  • Development team posting questions after requirement analysis.
  • Testing team updating the test cases.
  • Entire team tracking the product and iteration backlog.

Some of the commercial wikis provide plug-ins to draw burn-down charts and RSS feed capabilities. Example open source wikis include JSPWiki and Twiki. An example commercial wiki is Confluence.

Web Conferencing Tools and Instant Messaging
One of the agile principles is: The most efficient and effective method of conveying information to and within a development team is face-to-face conversation . [1]

The above principle {sidebar id=1} could be practiced by making the local teams to sit together, but what about "geographically distributed teams"(GDT)? GDTs need more and frequent communication to succeed in software development. Some of the tools that help in this area include instant messaging (IM) and Web conferencing tools. Examples include Interwise, WebEx, Yahoo/MSN messengers, Skype, and Web Cams.

At Valtech, we use combination of above tools that are integrated with the Valtech cockpit. A typical scenario of web conferencing tool usage could be an iteration planning/release planning meeting or a design discussion. For example:

  • GDT members log on to "meeting rooms." The teams can see each other through Web cams.
  • The onsite customer/product owner starts sharing priorities of delivery for the upcoming iteration/release.
  • Sessions are recorded and played later for more clarity. They can also be used as training material for the newcomers.

Design, Coding and Integration
Let us look at the agile principle, "Continuous attention to technical excellence and good design enhances agility."  

Most of the time, developers are worried about meeting a deadline and delivering software that "just meets" a customer's requirement. During this process, they may sacrifice quality and stability of the product. The key agile practice of test driven development (TDD) can lead to well-designed software. With TDD, the developer writes the test first with no business logic to test, and so the test should initially fail. Next, the developer plugs in the business logic and executes the same test again. The time the test should pass. In order to run through these steps iteratively, the agile developer needs a robust IDE, testing tool and refactoring tool.

In the Java world, Eclipse is the most popular open source IDE with good support for refactoring. There are numerous plug-ins available for Eclipse to enforce quality attributes into the code, some of which are explained below.

Checkstyle and PMD are static code analysis tools that track unused methods and variables, incorrect

About the author

Venkatesh Krishnamurthy's picture Venkatesh Krishnamurthy

Venkatesh Krishnamurthy comes with a rich and diverse expereince of designing and developing softwares since last 15 years. He has coached and conducted Agile teams across the globe. His hands on experience of coaching and mentoring are reflected in his articles and on his blog.He has been a speaker in many Agile conferences across the globe. He is a regular author columnist at Techwell.com. Contact him at venky_nk@yahoo.com or via his blog, http://agileworld.blogspot.com

AgileConnection is one of the growing communities of the TechWell network.

Featuring fresh, insightful stories, TechWell.com is the place to go for what is happening in software development and delivery.  Join the conversation now!