Adaptive Software Development
Adaptive Software Development
Adaptive Software Development
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 doesnt 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 orrapid 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 bugfree 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 dont 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.
ADVANTAGES OF ADAPTIVE SOFTWARE DEVELOPMENT - Iterative incremental process - Adaptive ( tuneable process ) - Test based development -Refactoring for simplifying the code - Continuous integration - Stress on parallel development of compenent, by collaborating teams of developers , thus speeding up the process - Traceability to requirements through ongoing validation and quality review.
DISADVANTAGES OF ADAPTIVE SOFTWARE DEVELOPMENT - Not scalable - Lack of formalities - No clear cut design effort - No specific model prescribed. - Over dependence on inter-human communication
ADVANTAGES OF THROW AWAY PROTOTYPING - When prototype is shown to the user, he gets a proper clarity and 'feel' of the functionality of the software and he can suggest changes and modifications. -This type of approach of developing the software is used for non-IT-literate people. They usually are not good at specifying their requirements, nor can tell properly about what they expect from the software. -When client is not confident about the developer's capabilities, he asks for a small prototype to be built. Based on this model, he judges capabilities of developer. -Sometimes it helps to demonstrate the concept to prospective investors to get funding for project. -It reduces risk of failure, as potential risks can be identified early and mitigation steps can be taken. -Iteration between development team and client provides a very good and conductive environment during project. -Time required to complete the project after getting final the SRS reduces, since the developer has a better idea about how he should approach the project. DISADVANTAGES OF THROW AWAY PROTOTYPING - Prototyping is usually done at the cost of the developer. So it should be done using minimal resources. It can be done using Rapid Application Development (RAD) tools. Please note sometimes the start-up cost of building the development team, focused on making prototype, is high. - Once we get proper requirements from client after showing prototype model, it may be of no use. That is why, sometimes we refer to the prototype as "Throw-away" prototype. - It is a slow process. - Too much involvement of client, is not always preferred by the developer. - Too many changes can disturb the rhythm of the development team.
ADVANTAGES AND DISADVANTAGE OF DSDM Many of the benefits of DSDM are also benefits of XP. For instance, both methods involve the user deeply in the development process, resulting in strong user identification with the systemcooperation in the process will break down the users resistance to change before it has a chance to grow. And the final system is more in line with the ultimate user requirements. -Requirements prirority approach -Efficient project management
However, DSDM has the edge, with several deliverables that recommend it over other methodologies. Reversibility in every iteration avoids the optional scope contract trap of XP. Theres no corrective design when any misstep can be rapidly eliminated. The five-phase project structure makes missing delivery windows less likely. And while XPs methodological emphasis is programming, DSDM delivers the most comprehensive final product, with a continual focus on business processeswhere the customer needs it to be.
Licensing cost Relatively high barrier to entry Cultural shift in organization Complex documentation
SCRUM