Adaptive Software Development

CategoryIterative Development Methodology

Adaptive Software Development combines the ideas of complex adaptive systems theory with the philosophy and practices of Rapid Application Development, to provide a framework for delivering software systems with continuous adaptation.


Methodology Overview


Continuous Learning and Adaptation

Adaptive Software Development (ASD) approach replaces the traditional waterfall process with a repeating series of speculate, collaborate and learn phases. This dynamic lifecycle provides for continuous learning and adaptation to the emergent state of the project. It is most effective for environments of constant change and time pressure.

  • Speculation — explore, make clear that we are uncertain, and deviate plans without fear.
  • Collaboration — work jointly to share knowledge, make decisions and produce results.
  • Learning — constantly test our knowledge and conduct reviews after each iteration.

ASD works with change rather than fighting against it. In order to thrive in turbulent environments, we must have practices that embrace and respond to change. More importantly, we need people, teams and organizations that are adaptable. The six basic characteristics of an ASD lifecycle are:

  • Mission-focused — articulate mission statements that encourage exploration and narrow in focus.
  • Feature-based — focus on software features that provide direct results to a customer, not tasks.
  • Iterative — focus on frequent releases to obtain feedback, learn and set the future direction.
  • Time-boxed — set fixed delivery times for iterations and major project delivery milestones.
  • Risk-driven — identify and evaluate the critical risks in preparation for the next iteration.
  • Change-tolerant — view changes as an ability to incorporate competitive advantage.

Important concepts in the method are having the appropriate organizational culture, leadership style and team characteristics to support collaboration. People, participation and relationships are vital to success.

adaptive

Innovative, quality products evolve from little planning and a lot of learning.

An organization should be viewed not as a mechanic deterministic machine but as a complex adaptive system.

Project management should encourage creativity, innovation and flexibility, and maintain an unstructured work environment.

Delivery teams should embrace change and absorb it, rather than making attempts to control it.