Managing Quality Challenges in Distributed Agile

Member Submitted

extra work for the leads and managers.

Implement Continuous Integration
Continuous Integration (CI) mechanism facilitates integrating changes to the code base continuously by frequently running distributed builds and tests, checking and improving code quality, all the while making progress towards successful product development.

Successful implementation of Continuous Integration not only prevents code merge from the last minute surprises, but also progressively ensures code stability to a great extent. Effective implementation of Continuous Integration requires a robust framework to automate the release management process. This framework should allow enabling the integration of various tools such as Build Automation, Repository Browsing, Version Control, Issue Tracking, and Reports. For distributed teams, it is essential that the source code repository is centralized and unified tools are used.

In the Continuous Integration Framework, build generation can be automated using a suitable tool such as Quickbuild. The automated scripts of the Build Automation Tool should periodically build, deploy, promote, and test the update code when checked into the code repository. Any failure should be immediately captured, and subsequently an associated issue should be automatically created in the issue tracking system. For enhanced visibility into the progress of build process, build scripts should be integrated with product dashboard to continuously display the build reports. The integration of the Build Automation Tool with the Version Control, Repository Browsing, and the Issue Tracking tool leverages transparency into the development process. For instance, the Issue Tracker displays the list of modified files for a defect, when the fixed code is checked into the code base.

Product Dashboard as Information Radiator
In addition to requirement traceability, Distributed Agile development needs a common view, which allows assembling product engineering processes together. This requires a Product Dashboard that provides a holistic view of the entire product lifecycle by reconciling information from requirement management, test case management, issue tracking system, etc.

The concept of Product Dashboard helps tremendously in distributed agile product development since it provides great transparency from all perspectives of product management. Product Dashboard should be designed so that it gives real time visibility into the progress of product lifecycle at any given point in time. For instance, product roadmap should comprise the list of new features and targeted issues for a particular release. Dashboard view should be configurable so that it caters to different roles within product development. For instance, a development manager might be most interested to view product roadmap, release calendar, actual progress, estimates, work load, burn down, and burn up charts, etc. On the other hand, quality engineers need to view information such as assigned tasks, current/ forthcoming releases, test suits associated with planned features for a release, test coverage reports, to name a few. With Product Dashboard, product teams can save a lot of extra efforts needed to manually consolidate this information from various sources. Hence, an effectively designed role-based dashboard boosts productivity of the distributed product teams at large.

AgileConnection is a TechWell community.

Through conferences, training, consulting, and online resources, TechWell helps you develop and deliver great software every day.