Adaptive Software Development (ASD) is an Agile software development framework designed by the project managers John Highsmith and Sam Bayer in the early 90s. It is a more iterative evolution of the Rapid Application Development Agile framework, designed around 1-month projects broken down into week-long iteration periods (comparable to Scrum sprints).
Highsmith’s book Adaptive Software Development, first published in 2000, details the theory and application of the Agile framework the author claims adds “rigour and discipline to the RAD approach, making it scalable to the uncertainty and complexity of real-life undertakings”.
The framework has three development lifecycle phases:
Can We Help You With Your Next Custom Software Development Project?
Flexible models to fit your needs!
As an Agile software development framework, ASD places particular focus on user feedback and collaboration to inform future iterations of the software development process.
ASD also starts from the philosophy that complex systems like software development do not need, as is generally presumed, complex rules. Highsmith argues that a handful of simple rules are not only all that is needed to order complex systems but that a minimalist approach improves efficiency.
Another unique characteristic of Adaptive Software Development is the belief software development should be ‘fun’ and the best software is happened upon by chance. He terms the chance coming together of circumstances leading to great software as “emergence”.
The collaboration and productivity tool Slack, the fastest-growing SaaS in history and now a public company, is a great recent example of what Highsmith calls emergence. Slack was the result of a pivot by a team working on a commercially unsuccessful gaming product.
Necessity had driven them to create a collaboration tool to fit their needs because they weren’t happy with any of the existing products on the market. The game whose development Slack was invented to help organise, Glitch, a heavily funded attempt to create a new and original massively multiplayer online role-playing game (MMORPG), was a flop but the tool developed to facilitate team collaboration on became a hit. Having listed in June 2020 Slack, only founded in 2009, is now a company worth $25.5 billion.
Slack became famous for achieving a $1 billion valuation within 8 months, without any spending on traditional advertising or even employing a chief marketing officer. But actually, the company’s own team had been using Slack’s early iterations intensively for months, developing new features as they needed them.
Slack may not have been officially developed to the Adaptive Software Development framework. But the way it was released in short-cycle iterations informed by especially intense and detailed user feedback, and the ‘accidental’ nature of its “emergence”, has all the hallmarks of ASD.
The Slack Handbook for Software Development Teams reads like an elevator pitch for the framework described in detail by Highsmith’s book on Adaptive Software Development.
The ASD framework is stripped back to just enough guidelines to create order within the complex system of software development without risking suffocating emergence, which it specifically encourages in place of determinism.
ASD is a results-oriented framework and places more emphasis on the quality of outcomes than the tasks performed to achieve them.
These three phases reflect the dynamic nature of Adaptive Software Development. A explicitly replaces Determinism with Emergence. It goes beyond a mere change in the lifecycle to a deeper change in management style. Adaptive Software Development has a dynamic Speculate-Collaborate-Learn Lifecycle.
Short, adaptive development cycles stop the lack of task-focus from becoming a weakness. Somewhat uniquely for an Agile framework, ASD bases the phases of its development lifecycle on those of the older Waterfall methodology that iterative approaches replaced.
Waterfall’s Plan, Build Implement phases are simply rebranded as Speculate, Collaborate, Learn. The phase names intentionally reflect the unpredictability ASD accepts as inherent to complex systems.
The Adaptive Software Development lifecycle shifts the focus to results, defined as application features, not tasks.
K&C - Creating Beautiful Technology Solutions For 20+ Years . Can We Be Your Competitive Edge?
Drop us a line to discuss your needs or next project
Adaptive Software Development’s three phases address the following accepted underlying assertions:
Let’s take a look at the ASD’s three phases in some more detail:
The ASD framework rejects the term ‘plan’ for the first phase of its lifecycle as too deterministic and confident of the final outcome. In its place is the suitably open-ended ‘speculation’ phase, which leaves space for the project to innovate.
The speculation phase of the ASD lifecycle does not reject planning and big picture planning and the setting of objectives, for the project and iteration cycle due to start, takes place here. During the first speculation phase, the project mission is defined, which sets an approximate framework for the end product.
Iterations are cycles on the path to implementing the mission with each new speculation phase an opportunity for exploration and experimentation.
The collaboration phase is founded on the following principles:
The collaboration phase is controlled through a balance of traditional project management techniques and the kind of collaborative environment that leaves space for emergence.
An Agile software development team working to the ASD framework is expected to continually improve its level of Knowledge. This is done in the learning phase that follows each iteration through practices including:
Iterations should be short so the team learns from small, not big, mistakes. The development team and users contributing their user experience to the process should assess their assumptions during each learning phase. The results of this assessment, such as changers to underlying assumptions, then inform the direction of the next iteration cycle.
The Adaptive Software Development framework could be a good approach to Agile development if you have, or are confident you can arrange, deep involvement from your users and see your products as continuously evolving.
You must also attach enough value to the risk mitigation continuous testing offers, and the opportunities exploring new ideas or directions throw up, to be willing to accept the increase in your baseline costs that intrinsically involves.
ASD should be considered if rapid development and release is a priority.
Another Agile development framework may be more suitable if:
When does IT Outsourcing work?
(And when doesn’t it?)