Internet
Fact-checked

At EasyTechJunkie, we're committed to delivering accurate, trustworthy information. Our expert-authored content is rigorously fact-checked and sourced from credible authorities. Discover how we uphold the highest standards in providing you with reliable knowledge.

Learn more...

What is Adaptive Software Development?

M. McGee
M. McGee

Adaptive software development is a design principle for the creation of software systems. The principle focuses on the rapid creation and evolution of software systems. There is never a period where the software is finished; there are just stable periods between new releases. The adaptive development method grew out of the rapid application development method. These two methods are similar in structure, but rapid application development allows for a time when the project is finished, while adaptive software development doesn't.

The focus of adaptive development is in the computer code. Instead of planning the software out before hand, developers have a basic idea in their heads and they go to work. When pieces need changing or adapting to a new system, the coders simply do it. If the program needs a patch, somebody just makes it.

Adaptive software development is made of three steps, each revolving around the coding of a program.
Adaptive software development is made of three steps, each revolving around the coding of a program.

Overall, the lack of pre-planning steps allows the developers to make the software very quickly. While this will occasionally result in software that doesn’t perform the precise functions required, that is generally not a problem. The developmental cycle in this process is so short that a new version with additional features can come out very quickly. This process or rapid prototyping is the cornerstone of both adaptive software development and rapid application development.

The spot where the two methods differ is in the eventual endpoint. For adaptive software development, there is no real endpoint, just a time when the software is no longer needed or the code is ported into a higher generation application. On the other hand, rapid application development allows for the end of a project, a time when the software is bug-free and has met the requirements of the purchaser.

Adaptive software development is made of three steps, each revolving around the coding of a program. The first step is speculation. During this phase, coders attempt to understand the exact nature of the software and the requirements of the users. This phase relies on bug and user reports to guide the project. In no reports are available, the developers use the basic requirements outlined by the purchaser.

The collaboration phase is when the individual developers solidify what they are each doing and how to combine their portions. This phase is generally completely in-house. The developers don’t need any additional information or outside input to manage this portion of the software.

The last step is learning. During the learning phase, the newest version of the software is released to users. This generates the bug and user reports used during the first phase of the project, and the cycle repeats itself.

Discussion Comments

anon997335

What are some of the challenges and prospects of the adaptive software development ?

SkyWhisperer

@MrMoody - The waterfall model is a systematic approach that involves requirements, design, production, testing and maintenance—in other words, if you were new to software development, you would probably use this model without knowing what it’s called. It’s basically a planned approach with a clear end in mind, rather than an iterative approach which is lightweight and responds to needs as they arise.

Some people who criticize the adaptive software development process do so on the grounds that they say it “doesn’t see the forest for the trees.” They say that programmers are too busy mucking around trying to build little modules to put out fires rather than seeing the big picture, as they would with waterfall development.

I say it depends on your timeframe, budget and the needs of the customer. At the very least, project managers who embrace adaptive software development should understand that just ticking an item off a to-do list doesn’t necessarily mean that it’s solid. I think they should insist that programmers test their code, or have the company hire software testers to perform unit testing every step of the way.

MrMoody

How is scrum development different from the waterfall model of software development?

Charred

David09 - I use agile development as well, but I see problems with it. I think the emphasis on rushed development leads to poor design considerations. I’ve also found that less responsible programmers don’t spend enough time testing their code before it ships out, because they are so concerned with getting it done so that the customers can download the next upgrade.

Also I believe there is a greater need for regression testing, to make sure that each new upgrade doesn’t break something in the previous release. I guess this goes back to testing, however.

David09

We’ve used agile software development where we work, also known as agile software development for obvious reasons (it leads to quicker turnarounds on solutions). We have to submit a daily scrum report in which we note what we did, what the results were, and what our next steps are in the software development life cycle. The project managers read our daily logs to get an idea of where we are and the president reads the reports to make sure we’re staying on track and not wasting the company time and money on unnecessary rabbit trails.

When I first started working for the company I thought this level of daily reporting was a form of micro-management and it made me self-conscious about everything I wrote down. However, in hindsight I see it’s more of an aid to rapid application development than anything else. Everyone has a birds-eye view of the software projects and we can collaborate together to make sure we complete it on time and within budget.

Post your comments
Login:
Forgot password?
Register:
    • Adaptive software development is made of three steps, each revolving around the coding of a program.
      By: Gandolfo Cannatella
      Adaptive software development is made of three steps, each revolving around the coding of a program.