1. Adaptive Software Development
An Agile Software Development
Methodology
Dr. Davut Çulha
Software Engineering Department
Atılım University
2. Adaptive Software Development (ASD)
• ASD is an agile method for building complex
software and systems.
• ASD focuses on human collaboration and
team self-organization.
• It is proposed by Jim Highsmith.
• ASD depends on the Rapid Application
Development (RAD) methodology.
3. Complexity Theory
• Complexity theory helps understand
unpredictability.
• According to complexity theory, the inability
to predict doesn't imply an inability to make
progress.
• ASD cooperate with change rather than
fighting against it.
• In order to survive in turbulent environments,
there are practices that embrace change.
4. ASD Life Cycle
• The ASD practices depends on continuous
change and continuous adaptation.
• The ASD life cycle is dedicated to continuous
learning, reevaluation, going into an uncertain
future, and intense collaboration among
developers, management, and customers.
6. Speculation
• The word "speculate" is closer to uncertainty.
Plans can be changed freely.
• It doesn't mean that planning is needleess. It
means that planning should be as light as
possible.
• It means that iterations should be short and
they should be encouraged.
• Speculation turns uncertainty into exploration
and experimentation.
7. Collaboration
• Complex applications evolve, they are are not
built.
• Complex applications require that a large
volume of information be managed.
8. Learning
• Uncertainty is solved by learning.
• The knowledge of the team members should
be improved through project retrospectives
and customer focus groups.
• Reviews should be done after each iteration.
• Learning is emphasized throughout the
process.
9. Basic Characteristics of an ASD
Life Cycle
• Mission focused
• Feature based
• Iterative
• Time-boxed
• Risk driven
• Change tolerant