Many industries face frequent, rapidly changing market conditions. These changes often translate to new customer requests or a change in requirements for in development software projects.

Even with Agile IT project management practices, shifting requirements can be difficult to manage, cause tension with your customer, and quickly spiral out of control in terms of costs and delays.

That’s where Adaptive Software Development (ASD) comes in — if offers a flexible approach that thrives in unpredictable environments, keeping projects on track and customers happy.

What is Adaptive Software Development?

Adaptive software development (ASD) is a type of Agile software development that is tailored for projects that need to accommodate frequent changes while helping teams remain on target for budgets and deadlines. 

Adaptive software development grew out of rapid application development (RAD). A precursor to Agile methodologies, RAD emphasized rapid iterations and incremental development. However, in the RAD model requirements must be fully understood and broken down into components that allow for incremental development.

Adaptive software development was introduced by Jim Highsmith and Sam Bayer in the mid-90s and as Agile gained steam in the early 2000s, ASD became widely used as an alternative approach to traditional plan-based software development. You can learn more about the history of adaptive software development in this article: What is Adaptive Software Development (ASD)?

Adaptive Software Development characteristics

While many of the adaptive software development principles are similar to traditional Agile practices, ASD emphasizes continuous learning and adaptability to enable responsiveness to changing environments and requirements. 

Adaptive software development focuses on:

  • Iterative Development: ASD emphasizes incremental, iterative development, which allows for more frequent feedback from the customer. If requirements change or a feature doesn’t meet customer expectations, not much time is lost in development and teams can adjust to the new plans.
  • Collaboration & Communication: ASD relies on strong collaboration and communication not just between members of the project team but also between the team and their customers. All stakeholders should be included throughout the entire SDLC to ensure the project meets everyone’s expectations. ASD puts a particular focus on customers, encouraging regular communication and reviews with customers to make sure they will be satisfied with the end product.
  • Adaptability: Of course, involving customers in the software development process more can also lead to more feedback and change requests. ASD focuses on high level and near term planning, rather than trying to plan out an entire long term project, enabling a planning process that easily accommodates changes and customer feedback.
  • Continuous Learning: Adaptability creates the perfect environment for continuous learning. As teams work together and communicate openly they may find that some of their approaches to the product or the software development process aren’t working well. ASD encourages teams to try a different approach, learn from their mistakes, and continue learning.
  • Quality & Risk Management: In addition to iterative development, continuous testing is an ASD practice that promotes identifying and fixing issues early and maintaining a high quality bar. Along with this focus on quality, the open and frequent communication emphasized in ASD allows for greater visibility and better risk management across the team.

Adaptive Software Development phases

ASD visualizes the software development lifecycle in three iterative phases: Speculation, Collaboration, and Learning.

adaptive software development phases 1 Adaptive Software Development: Or How to Deliver on Time and on Budget

Speculation

During the speculation phase the team looks at the current requirements and high level project plan to conduct release planning. However, unlike other Agile methodologies, the focus of this planning is not on defining a specific set of features to deliver, but rather making sure everyone understands the high level mission and objectives of the project. While deliverables are targeted for development and release, the plans may change based on user feedback or information discovered during development and testing.

Collaboration

Once everyone agrees on the speculated plans, development occurs in the collaboration phase. During this phase work is assigned to the team best positioned for it and features are developed incrementally in short iterations. Testing, customer feedback, and informal team reviews during each iteration create multiple opportunities for communication and collaboration, and the feedback from these interactions helps teams refine and improve their product and practices.

Learning

At the end of each iteration is the learning phase where the team does a more formal technical review of the features completed during the iteration. They’ll also demo these features to customers or, if the features are far enough along, allow users a chance to try out the software and give feedback. Finally, the team does a retrospective looking back at everything they accomplished during the past iteration and reflect on what part of their processes worked well and which could be improved. They also do a final analysis of what features should be updated based on the new things they learned during the iteration and they adapt their plans.

How Adaptive Software Development benefits your team

Turns changes into opportunities

Adaptive software development flips the perspective on change requests. Instead of being a burden that comes in as unplanned, costly re-work, ASD proactively plans for there to be changes. This type of planning is by nature not as detailed – you don’t know what changes you’ll need to make until you uncover new requirements to get customer feedback – but that means not as much time is spent planning upfront, so when the plans change that time has not been wasted. 

Frequent iterations with customer feedback are seen as opportunities to improve the product and increase customer satisfaction. With this type of feedback cycle built into the process, developers know to plan for changes and can adjust requirements without causing disruptions. These incremental adjustments help a project be successful without big surprises along the way.

Tighter budget control

The later in the development lifecycle a change occurs the more costly it typically is because you have to go back through detailed requirements planning, development re-work, and testing. If the change impacts other areas this can be very expensive.

ASD only plans in-depth for what’s currently being worked on, which is scoped to smaller, manageable tasks organized into small iterations. If changes are requested in an iteration, the planning and re-work should be limited in size, and future related work hasn’t been planned out in detail yet so there won’t be any wasted work in those areas.

Adaptive software development also helps teams stay on budget by requiring frequent and transparent communication between all stakeholders. When customer feedback comes in and does impact the budget, teams already have a strong established relationship with their customer that allows for open and honest dialog about the monetary impact. With everyone informed of the options and associated costs the team can collectively make the best decision for how to move forward on the project.

Integrates changes without delays

Short iterations also afford developers more flexibility and control over their schedule. When changes are expected they are built into the overall project schedule. With everyone aligned on the high level project goals, short iterations with regular feedback should produce change requests that are smaller in scope and can easily be assigned to an iteration in the near future without impacting the overall timeline.

Aligns client expectations with goals

Having regular syncs with your customers gives you the opportunity to educate them and include them in your software development process in a unique way. Customers are involved in each ASD phase and they are a critical stakeholder in project planning and feedback meetings. During these meetings you can introduce your customers to the prioritization tools and practices your team uses – such as backlog refinement – and encourage them to share their ideas at these regular team checkpoints.

Having a predefined way to engage with the team can help prevent customers classifying every request as urgent and causing randomization for your development team. They also give you a place to have conversations about what impact a request will have on the timeline and budget so customers have a complete picture of the cost vs. reward for each backlog item, making prioritization easier.

Educates clients on your process

Including your customers in regular planning and reviews also teaches them about the benefits of iterative development. They will have a clear understanding of the timeline and you have the opportunity to educate them about incremental delivery and how small, frequent improvements are more valuable than large, disruptive changes. While not all changes will get done immediately, the overall value to the project – in terms of features, timelines, and budget – will be improved with the incremental approach. Of course, saying no, even if it’s just “no for now,” can be difficult. Check out this article for pointers on how to effectively communicate “no” to your customers: 4 Nicer, Science-Backed Ways for Developers to Say “No”.

Protects developer time

Ultimately, adaptive software development practices help reduce stress on your development team so devs are happier and don’t burn out. While the more ambiguous approach to planning might be stressful at first, developers will quickly realize that they are able to focus more on their current work and adapt to changes and feedback without increasing costs or missing deadlines.

With a clear framework for managing priorities, communicating expectations, and maintaining control over budgets and timelines, teams can deliver value to customers while remaining flexible and efficient.

How Assembla supports Adaptive Software Development

Assembla has several project management features you can leverage to facilitate adaptive software development on your team. With a merged project management and version control environment your teams can work across disciplines using the same set of tools throughout the software development lifecycle. Shared backlogs and reports give everyone visibility into the project status and feature prioritization and Milestones make it clear when to expect features to be delivered.

With Assembla you can include customers in specific shared views through the Watcher user role. Watchers can be clients, investors, or other stakeholders that need to monitor or contribute to the project. The Watcher role empowers customers to be an active part of the software development process. You can assign edit permission to allow them to submit tickets for bug fixes or feature requests directly in the tool. They can also receive timely notifications of status changes, new merge requests, or deployments from Assembla.

Assembla’s Time tool enables time tracking, which gives teams a more accurate view of how long they are spending on features. This allows teams to quickly identify tasks that are taking longer than planned so they can discuss how to adjust their plans. It could be that your team needs to adjust its approach to breaking down Agile estimates in order to plan more accurately. Having a clear history of time spent on tasks makes it easier to spot trends and measure if a shift in approach is working to improve estimates.

You can do Agile Planning with Tickets in Assembla, creating epics, user stories, subtasks, and checklists to organize and track your team’s work. You can also use Tickets to track bugs and customer feedback. The Tickets tool has several reporting capabilities, including the Story Lifecycle report, which helps you track story progress. With teamwide visibility and monitoring you are better able to manage risks and avoid scope creep.

Start using ASD with Assembla

Assembla has tools to help your team plan, track, develop, test, and release your features while adapting to change and customer feedback. We offer flexible backlog management tools, including cardwalls and task boards, to assist your teams in creating, updating, and visualizing your feature list. Our task management system can quickly create tickets for bugs and our repo integration updates ticket status instantly from Git, Perforce and SVN code commits. And customers can be included in all stages of the project using the Watcher role and Assembla’s reporting features.

If you’re ready to try cloud-based Agile development, start a free 14 day trial of Assembla. Our team would love to talk with you about how Assembla can meet your ASD needs.