become mainstream, we need to better articulate required HR changes and how to accomplish them.
Providing a scalable tool infrastructure
A key agile principle is to focus on individuals and collaboration over tools, and possibly as a result, many agile coaches are tool adverse. However, tool infrastructures can greatly facilitate collaboration and are crucial to making agile mainstream. True, some traditional tools may not be conducive to agile development and may inhibit meaningful collaboration. But there is a promise on the horizon-a next generation of tools focused on the collaborative aspects of software development is being developed.
VersionOne and Rally Software Development have launched agile project management tools, providing support for core agile concepts such as velocity, iteration planning, size and effort estimates, as well as breakdown of work into small units that can be accomplished in a couple of days or less. The IBM Rational organization, in collaboration with IBM Research, has recently previewed technology code-named Jazz, which goes beyond current agile project management solutions to include also agile development support, adding agile concepts such as team collaboration, transparent development, continuous integration, and test-driven development as first-class citizens. Jazz is also process-aware and can be tailored to support different processes.
Large-Scale and Corporate Development Issues
For it to become mainstream, agile needs to address the problems facing large organizations, such as support for geographically distributed development, large-scale development, and compliance. Current agile solutions do not clearly articulate solutions to these issues, and this needs to change.
Large teams and larger organizations
Many agile processes explicitly target smaller teams of a dozen or fewer highly skilled developers, but more experience and guidance needs to be provided for dealing with large teams. Support for larger teams is in development for processes like XP, Scrum, OpenUP, RUP, and Agile Modeling . For example, IBM is currently refactoring RUP to be built as a set of extensions to OpenUP. This will add guidance for domains such as SOA, compliance management, geographically distributed development, and packaged application development to an agile core process.
Geographically distributed development
Geographically distributed development has become a matter of life in most larger development organizations. But face-to-face communication is a core principle of agile development. Organizations can compensate for the lack of shared physical project room through a combination of modified practices, such as more effective distribution of work across different teams, and improved supporting infrastructure. Jazz technology provides team awareness, allowing team members to see who is present and what they are working on. Various technologies such as instant messaging allow collaboration in the context of the work done. The goal is to leverage available technology to create a cohesive team, even if team members are miles apart.
Compliance means Say what you do , Do what you say , and Show you did it . This is not inconsistent with agile development, but there are a few hurdles to overcome.
First, the agile community needs to overcome the inherent fear of documenting processes. Agile teams should continuously evolve the process to ensure it works for them, but the fear is that when you document the process, it becomes hard to change. EPF and RUP address this concern by separating a rich reference library of practices from a succinct description of how the team chooses to work in their specific project. There is no need for massive changes to elaborate process guidance; instead, teams change their short process description and associated pointers to reference material. In 2007, EPF will add Wiki technology to make these changes even easier to ensure team ownership of their process.