Category: 

What is Adaptive Software Development?

Article Details
  • Written By: M. McGee
  • Edited By: Lauren Fritsky
  • Last Modified Date: 02 November 2016
  • Copyright Protected:
    2003-2016
    Conjecture Corporation
  • Print this Article
Free Widgets for your Site/Blog
Although they mainly functioned as downspouts, gargoyles were also intended to scare people into attending church.  more...

December 3 ,  1989 :  The Cold War officially ended.  more...

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.

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.

Ad

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.

Ad

You might also Like

Recommended

Discuss this Article

SkyWhisperer
Post 5

@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
Post 4

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

Charred
Post 3

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
Post 2

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

Post Anonymously

Login

username
password
forgot password?

Register

username
password
confirm
email