3. Adaptive Software Development (ASD) is a
less known framework among the other
Agile frameworks such as extreme
programming and Scrum. The reason for its
less popularity with the industry folks may
be the misconception that it cannot be an
ideal framework to meet the demands of
the ever-changing and fast-paced
environment of the software development
lab.
The good news is that it is merely a
misconception. And, the bad news is, it does
shatter your belief, and hence, challenges
you to unlearn, relearn and seamlessly
adapt to your own new belief system!
Adaptive Software Development is one of
the earliest agile methodologies. It was a
result of the work by Jim Highsmith and
Sam Bayer on Rapid Application
Development (RAD).
4. This methodology interestingly validates
the fact that it is quite normal to have
continuous adaptation to the software
development process.
This validation removes the fear of the
unknown and uncertainty often involved in
any software development cycle. In fact,
this validation has paved the way for the
later methodologies to welcome
uncertainty and chaos with a more open
and balanced mind.
Let us then explore various dimensions of
this less popular Adaptive Software
Development agile methodology.
6. Adaptive Software Development in
software engineering is a classic example of
necessity is the mother of invention adage.
In the early 1990s, when Sam Bayer and Jim
Highsmith were making the most out of
RAD and creating RADical Software
Development, they realized that these
approaches were not enough.
It was important to have a process that
encouraged collaboration inside the
organization as well as with the clients.
They realized that they needed the process
that makes all the stakeholders at ease with
the inherent uncertainty of software
development while making room for
continuous, consistent, and genuine
learning during the process itself.
It is out of these needs that Adaptive
Software Development came into being.
Highsmith published a book called:
Adaptive Software Development:
7. Shorter iterations
More speed
More collaboration
More ease with the uncertainty
More openness to unlearn and relearn.
A Collaborative Approach to Managing
Complex Systems in 2000, and both Bayer
and Highsmith became one of the signers of
the 2001 Agile Manifesto.
In the world of technology, Adaptive
Software Development introduced:
9. ASD is a development methodology that
encourages continuous learning throughout
the software development project. It
believes that this is the only correct way to
sail through software development’s
inherent complexity smoothly. Following
rigid plans or principles does not add value
to the business or the product; it
propounds.
Adaptive Software development sets forth
minimum guidelines, making it a
minimalist approach that intends to
improve efficiency by removing everything
and anything that is not ‘fun’ and ‘organic.’
Yes, ASD strongly advocates a software
development process that is fun to be in as
well as natural or organic. Highsmith has an
interesting term for this— emergence. He
believes that the best software is always a
result of a chance.
10. Enough room for emergence as opposed to
determinism
Focus on results that are called application
features as opposed to tasks
Prefers deeper change in management cycle
over the superficial change in the life cycle
Orientation towards high-speed iterations and
life cycles
Use of techniques such as timeboxed iterative
cycles and risk-driven planning
Ability to quickly deliver the value-added
product to the customer in spite of having
enough room for uncertainty and chaos.
When necessary circumstances come together
on their own, they lead to a product that has
the potential to make a difference in the world.
This coming together of circumstances is
emergence, according to Highsmith.
Following are some of the major principles that
define ASD:
11. In Adaptive Software Development,
projects go through an iterative cycle. This
cycle involves three phases that often
overlap. Let us explore each in detail.
Our product owners love us because we
make sure not to compromise with build-in
quality. Here’s how we lead successful Agile
transformation.
13. The adaptive life cycle is an evolution of the
spiral life cycle that started during the mid-
1980s. The major problem with the spiral
life cycle was its reliance of predictability.
Though RAD was less predictable and
deterministic, the mindset of the
practitioners of the spiral life cycle was still
not changed.
The adaptive life cycle in Adaptive Software
Development tries to address this issue of
changing the mindset by way of reflection
and naming the phases during this process
exactly as per that reflection.
These phases of the adaptive life cycle that
accept uncertainty and chaos as “normal”
during the software development process
are speculation, collaboration, learning.
14. A project mission statement is defined
The word “speculation” describing this very
first phase of the adaptive life cycle in itself
reflects what Adaptive Software
Development example is all about.
Speculation phase carefully and
intentionally removes the factor of planning
that often brings with it lots of unnecessary
baggage and tension.
This phase gives the teams full liberty to
welcome and accept the outcomes without
the fear of the unknown or uncertainty. It
totally eliminates the toxic need to be right
all the time, putting all the stakeholders at
ease.
In the speculation phase:
Speculation
15. Creation and sharing of the general idea
of the goals to be achieved take place
Teams adopt the tools that would assist
them in adapting and changing as per
the requirements during the entire
cycle of the project.
Mostly, the speculation phase finds itself
divided into two steps. These steps are
roughly called the project initiation step
and adaptive planning step. As the name
suggests, the first step of initiation involves
stuff that serves as the project’s foundation.
This includes project management
information, mission statement and other
essential tools and information.
In adaptive planning, different product
features get assigned to the different teams
as per their expertise and skills. This
requires the teams to decide:
16. Timebox for the project
Number of development cycles
Amount of time each cycle would take
as per the unanimously decided
timebox
A theme and objective for the cycle
Assignment of components for each
cycle
A task list for the project
To remove the unnecessary burden of
planning
To create space for innovation by making
the entire process open-ended
To keep the planning at its most minimum
or essential
To set an appropriate framework for the
end product
To allow exploration and experimentation
with each new speculation phase with
small iterations.
The purpose of the speculation phase is:
17. A charter: This tool encompasses
project vision with visual summary. It
defines business outcomes and
highlights major product
differentiators.
A datasheet: This contains essential
information for the project and the
customers. This serves as a point of
focus for all the stakeholders of the
project.
An outline for product specifications:
This has fine details about the product
specifications. It defines desired
components or the features of the
product.
Speculation phase of Adaptive Software
Development involves three major tools
with which the teams start the process.
They are:
18. Diversity is essential to effectively
collect, analyze and apply massive data
or information to the development of
the product
Collaboration or the collaborative
environment is the only genuine way
through which this diversity can be best
utilized
It is in this phase that the actual
development begins. This phase is about
group emergence. It is about coming
together of diverse experiences, knowledge,
and skills. This forms a collaborative
environment where diversity serves as the
building block for creativity and innovation
during the entire development cycle.
The intrinsic principles of the collaboration
phase are:
Collaboration
19. When such diversity is applied
thoroughly, complex applications need
not to be built. Diversity allows them to
evolve organically.
Collaboration is achieved by striking a
balance between traditional project
management techniques and a
progressive, collaborative environment
A sense of rootedness with an open-
ended approach of emergence.
These principles can be built by strong and
experienced teams that know the
importance of collaboration in Adaptive
Software Development. The collaboration
phase can be a great success if the teams
follow four basic principles of Mutual Trust,
Mutual Respect, Mutual Participation, and
Mutual Commitment.
20. Studying technical reviews
Studying project retrospectives
Facilitating user feedback through focus
groups and other possible or available
means.
Adaptive software development is all about
experimentation and exploration. It is natural,
therefore, that it offers great learning
opportunities too. Learning phase is precisely
about that.
In this phase which happens after each and
every iteration, an agile software development
team comes together to analyze its level of
knowledge, skills, and expertise. This is done
through:
In other methodologies, the learning phase is
also known as review or retrospective. In order
to make the most out of this phase, there
should be:
Learning
21. Learning phase is a very crucial phase in the
adaptive life cycle as it sets the tone of the
next move and guides the stakeholders in
the right direction during the entire process
of software development. The success of
this phase depends upon effective
collaboration, which is the second phase
and the very heart of the adaptive life cycle.
23. A specific mission drives it in spite of
being open-ended
It is a feature based
ASD is not just about building components
or product features. It is also about doing
required modifications in the existing
components too. This has to do with its
origin.
Adaptive Software Development originated
from Rapid Application Development or
RAD. This was triggered by the realization
that RAD’s mechanistic and extremely
linear approaches were not working.
In order to resolve this, Jim Highsmith and
Sam Bayer worked relentlessly for years
and came up with the adaptive life cycle
that revolves around a continuous
development process. Its main
characteristics are:
24. It encourages frequent and small
iterations
It adopts timeboxing
It is risk-driven
It is tolerant of change
It has components-based cycles.
ASD’s risk-driven feature has interesting
connotations to it. It means that it creates
an atmosphere where there is no inhibition
in failing and that too quickly! It believes in
failing fast and moving on fast with lessons
learned thoroughly, of course!
A risk-driven approach in ASD calls for
identifying the risk at the outset of the
project by placing high-risk items earlier in
the cycle. If the risk is identified at the
earliest, it is easier and cheaper to reduce
the failure of the component.
25. It encourages frequent and small
iterations
It adopts timeboxing
It is risk-driven
It is tolerant of change
It has components-based cycles.
ASD’s risk-driven feature has interesting
connotations to it. It means that it creates
an atmosphere where there is no inhibition
in failing and that too quickly! It believes in
failing fast and moving on fast with lessons
learned thoroughly, of course!
A risk-driven approach in ASD calls for
identifying the risk at the outset of the
project by placing high-risk items earlier in
the cycle. If the risk is identified at the
earliest, it is easier and cheaper to reduce
the failure of the component.
26. And, if there is no possibility of reducing the
risk, acceleration of failure may help modify
the component accordingly at the beginning
of the project.
Adaptive Software Development has
revolutionized the software development
process by declaring that almost everything
will change too frequently. It has taught the
planning-obsessed industry not to be fussy
about planning at all. This helps it create an
environment wherein change does not
overwhelm but inspires to create and
innovate.
28. A major factor that differentiates ASD from
other methodologies is that ASD cycles are
component-centric as opposed to task-
centric. The components in ASD are a group
of features, and the focus is always on the
expected result. The features or the
components are planned, implemented, and
delivered collaboratively.
Components in ASD go beyond just visual
or tangible entities like buttons, form fields,
or other interface elements. It inherently
includes everything intangible too that is
responsible for the creation of these
tangible entities.
There are three such components: primary
components, technology components, and
support components.
29. Primary components mean the ways of the
business and things related to it.
Technology components stand for the
technological infrastructure needed to
implement primary components. They
include hardware and network
infrastructure as well as software
infrastructure. Software infrastructure
includes operating systems, databases,
frameworks, and more.
Typically, technology components are
almost there to use. However, in case they
are not, they need to be installed as per the
exact requirements of the adaptive life
cycles.
Primary components
Technology components
30. As the name suggests, it includes
everything and anything that is not covered
by the other two components. It may
include documentation of external factors
with regards to software development,
training materials, and other such things
that are needed for the successful Adaptive
Software Development process.
In the year 2015, an Electrical and Computer
Engineering author and professor from
Payame Noor University, Mahdi Javanmard
conducted a study titled: Comparison
between Agile and Traditional software
development methodologies.
In the same paper, he also compared
different agile methodologies. Following is a
summary of the table that he presented in
the same study:
Support components
31.
32. Feature Driven Development (FDD) has
set prescriptions for its engineering
practices. Its software development
process depends upon engineering
practices such as continuous build,
domain object modeling, and individual
code ownership.
In ASD, there is absolutely no adherence
to any sort of technique.
Unlike extreme programming or XP,
ASD is a component-based process
where components are assigned to
cycles during the speculation phase for
seamless implementation.
In contrast to this, XP focuses on a task-
oriented approach. Developers pick
stories after each planning session for
the current iteration, break them down
into tasks, estimate them, and agree
upon their implementation.
Some other differences compared to other
agile methodologies:
34. A well-designed framework to develop
complex software applications quickly
Shorter and smaller iterations that help
detect mistakes at the outset
Shorter iterations mean detection of
smaller mistakes which are easier to
deal with compared to bigger ones
Shorter iterations are also cost-effective
An intentionally designed framework
that allows emergence, exploration, and
experimentation
Encourages absolute transparency
between all the stakeholders by creating
an atmosphere of collaboration and
learning
Adaptive Software Development process
came into being to get rid of existing issues
in the other software development process.
It would be interesting to know its
strengths.
35. Integration of end-users and their
feedback into the development process
Allowing the culture of diversity in a
balanced way
Intense testing of short iterations to
reduce chances of bugs and other
vulnerabilities
Intensely focused on result
Encouraging the culture of
responsibility that leaves little room for
poor results
37. Its open-ended approach requires
certain maturity and experience of the
Scrum team. It is difficult to have a
mature and experienced team that can
embrace and handle uncertainty at
times.
In a mission-driven framework, a very
brief plan is made at the outset. This can
pose a challenge for the minds that are
habituated with detailed planning as
their point of focus.
Adaptive Software Development thrives
on constant user feedback. The
developers must get detailed feedback
which is sometimes a challenge to get.
Also, end users are not always clear
about what they want in their solutions.
It is quite natural for anything to have some
shortcomings, even if it is meant for the
highest good. Adaptive Software
development to has its own share of pitfalls.
They are:
39. In the light of the discussion, it is crystal
clear that all the agile methodologies, in
essence, strive to embrace the change
instead of getting overwhelmed by it.
All these methodologies, including Adaptive
Software Development, promote
collaboration, adaptation, and intense
iterations. Adaptive Software Development
is special among these methodologies
simply because it directly addresses the
irony or paradox of planning.
Not exactly discarding planning, it gives
more importance to emergence, exploration
and innovation through collaboration and
learning. It is a good framework to adopt for
enterprises which are:
• Confident to have adequate psychological
and infrastructural readiness to embrace
Adaptive Software Development
40. Ready to bear increased baseline costs
Eager to see their products in the state
of constant evolution
Ready to explore new ideas or ways
Fluid enough to match up with the
continuous risk mitigation and the
testing
If you are such an enterprise which feels
that it indeed has what it takes to
implement Adaptive Agile Software
Development framework seamlessly, go for
it without much thinking!