Adaptive software development (ASD) is the spin-off of another agile framework, rapid application development (RAD).
As with other agile methods, ASD is used to make teams more adaptable to changing customer demand, requirements and market needs. Specifically, ASD does this by promoting lightweight planning and ongoing learning, through a three-phase process: speculate, collaborate, and learn.
The definition given by ASD’s creators, Jim Highsmith and Sam Bayer, is that ASD “embodies the principle that continuous adaptation of the process to the work at hand is the normal state of affairs.”
Put simply: that change is to be expected, and welcomed, within the development process.
Adaptive software development grew out of the work by Jim Highsmith and Sam Bayer, two project managers, on RAD in the early 1990s. ASD was designed to replace the traditional waterfall cycle with a three-element repeating series of ‘speculate’, ‘collaborate’, and ‘learn’.
It’s important to note that ASD’s three phases are nonlinear and, as such, they will overlap:
You cannot collaborate without learning, or learn without collaborating.
You cannot speculate without learning, or learn without speculating.
You cannot speculate without collaborating, or collaborate without speculating.
So if you feel like you’re performing all three phases of ASD at the same time, you probably are!
These three phases reflect the dynamic and fluid nature of ASD, which was designed to go beyond a mere change in the project lifecycle to a deeper change in management style.
Highsmith and Bayer used this new project management approach to complete more than 100 real-world commercial software projects that were deployed across several industries.
The duo wrote about their new approach Highsmith’s 2000 book, Adaptive Software Development.
There are several benefits to the ASD approach. These include:
A better and stronger overall end product.
Increased transparency between developers and customers.
A user-first approach which leads to a more intuitive piece of software.
Higher likelihood of on-time (or early!) delivery, thanks to the repeating three-step process which allows potential problems to be identified and solved early.
However, no agile framework is perfect! With ASD, there are a few drawbacks that need to be weighed against the benefits:
Extensive testing can lead to higher project costs.
The level of user involvement required can be difficult to resource.
An emphasis on constant product iteration and feedback can lead to burnout.
Lastly, ASD works better where teams can be dedicated solely to a single project.
By its nature, adaptive software development works best when an organization is able to suitably prioritize the rapid delivery of products.
Boutique software houses where small teams work on single projects, for example, may find ASD fits nicely with their workflow. Whereas larger multi-service firms, where teams work on multiple projects at once, may find it harder to implement.
That being said, any company that can draw value from the continuous iteration and evolution of product offerings could consider ASD as a working method.