5.3 Adaptive Software Development - Lifecycle - Tutorialspoint
5.3 Adaptive Software Development - Lifecycle - Tutorialspoint
Adaptive Software Development has evolved from RAD practices. The team aspects also were
added to these practices. Companies from New Zealand to Canada, for a wide range of project and
product types, have used adaptive Software Development.
Jim Highsmith published Adaptive Software Development in 2000.
Adaptive Software Development practices provide ability to accommodate change and are
adaptable in turbulent environments with products evolving with little planning and learning.
Adaptive Software Development is cyclical like the Evolutionary model, with the phase names
reflecting the unpredictability in the complex systems. The phases in the Adaptive development life
cycle are −
Speculate
Collaborate
Learn
These three phases reflect the dynamic nature of Adaptive Software Development. The Adaptive
Development explicitly replaces Determinism with Emergence. It goes beyond a mere change in
lifecycle to a deeper change in management style. Adaptive Software Development has a dynamic
Speculate-Collaborate-Learn Lifecycle.
The Adaptive Software Development Lifecycle focuses on results, not tasks, and the results are
identified as application features.
Speculate
The term plan is too deterministic and indicates a reasonably high degree of certainty about the
desired result. The implicit and explicit goal of conformance to plan, restricts the manager's ability
to steer the project in innovative directions.
In Adaptive Software Development, the term plan is replaced by the term speculate. While
speculating, the team does not abandon planning, but it acknowledges the reality of uncertainty in
complex problems. Speculate encourages exploration and experimentation. Iterations with short
cycles are encouraged.
Collaborate
Complex applications are not built, they evolve. Complex applications require that a large volume of
information be collected, analyzed, and applied to the problem. Turbulent environments have high
rates of information flow. Hence, complex applications require that a large volume of information be
collected, analyzed, and applied to the problem. This results in diverse Knowledge requirements
that can only be handled by team collaboration.
Collaborate would require the ability to work jointly to produce results, share knowledge or make
decisions.
In the context of project management, Collaboration portrays a balance between managing with
traditional management techniques and creating and maintaining the collaborative environment
needed for emergence.
Learn
The Learn part of the Lifecycle is vital for the success of the project. Team has to enhance their
knowledge constantly, using practices such as −
Technical Reviews
Project Retrospectives
Customer Focus Groups
Reviews should be done after each iteration. Both, the developers and customers examine their
assumptions and use the results of each development cycle to learn the direction of the next. The
team learns −
About product changes
More fundamental changes in underlying assumptions about how the products are being
developed
The iterations need to be short, so that the team can learn from small rather than large mistakes.
As you observe from the Speculate-Collaborate-Learn cycle, given above, it is obvious that the
three phases are nonlinear and overlap.