AGILE PROJECT M A N A G E M E N T:
STEERING FROM THE EDGES
Agile project management lets software project managers and employees alike adapt to changing circumstances, rather than try to impose rigid formal controls, as in traditional linear development methods.
Dealing with an increasingly volatile organizational environment is a serious challenge for managers of any software development project . Traditional formal software development methodologies can be characterized as reflecting linear, sequential processes, and the related management approaches can be effective in developing software with stable, known, consistent requirements. Yet most real-world development efforts are much more likely to be conducted in more volatile environments, as organizations adapt to changing technology, markets, and social conditions. Requirements for systems must be able to change right along with them, often at “Internet speed” . Even seemingly minor changes can produce unanticipated effects, as systems become more complex and their components more interdependent. Project management approaches based on the traditional linear development methodologies are mismatched with such dynamic systems.
COMMUNICATIONS OF THE ACM December 2005/Vol. 48, No. 12
Observing this tendency for software requirements to change, Meir Lehman, writing in , suggested that their underlying processes can be characterized as “multi-level, multi-loop, multi-agent feedback systems.” Software developers have long responded to this complexity with iterative, often ad-hoc approaches. More recently, a host of “agile” development methodologies, including eXtreme Programming (XP) , Crystal, Scrum, Adaptive Software Development, Dynamic Systems Development Method, and Feature-Driven Development, have sought to focus on rapid iterative delivery, flexibility, and working code . In our experience, project managers invariably fall back on the traditional linear approaches, seeking to reign in the increasing volatility of their projects. This can be true even when they use agile methodologies.
it can still be organized into several smaller, organic subteams working in parallel. The agile manager is responsible for establishing clear roles and responsibilities to ensure proper team alignment and accountability. Guiding vision. CAS agents help anticipate and adapt to changing conditions. A project vision translated into a simple statement of project purpose and communicated to all team members has a powerful effect on individual member behavior. In the U.S. Army, an example of this principle is “commander’s intent.” The Army knows its leaders are not omnipresent; the commander’s intent is employed as a guide for soldiers’ individual initiatives, actions, and decisions. Even if a mission falls on the shoulders of the lowest-ranking person, that person is still able to carry out the mission. Likewise, agile managers guide
THE AGILE MANAGER u n d e r s t a n d s t h e e f f e c t s o f t h e m u t u a l i n t e r a c t i o n s a m o n g a p r o j e c t’s v a r i o u s p a r t s a n d s t e e r s t h e m i n t h e d i re c t i o n o f c o n t i n u o u s l e a r n i n g a n d a d a p t a t i o n .
These efforts can lead to “stable systems drag”  in which organizations try to respond simultaneously to both changing environmental conditions and to their own increasingly obsolete legacy systems. Projects that employ agile methodologies are complex adaptive systems (CAS) , as discussed in the sidebar. We have evolved a CAS-based Agile Project Management (APM) framework, aiming to leverage XP to steer projects to success in terms of being on schedule and within budget while satisfying their customers. The APM framework prescribes the six practices for managing agile development projects discussed here: Organic teams of from seven to nine members. Selforganization and...