Iterative and Incremental Development
By Roshan Karunarathna
Rapid Application Development(RAD)
Rapid Application Development (RAD) is a software development methodology that focuses on building applications in a very short amount of time; traditionally with compromises in usability, features and/or execution speed.
The term has recently become a marketing buzzword that generically describes applications that can be designed and developed within 60-90 days,
But it was originally intended to describe a process of development that involves application prototyping and iterative development.
Rapid Application Development(RAD)
Characteristics of Rapid Application Development (RAD)
RAD USES HYBRID TEAMS
Team should consist of about 8-10 people, including both developers and full-time users of the system plus anyone else who has a stake in the requirements.
Developers chosen for RAD teams should be multi-talented "renaissance" people who are analysts, designers and programmers all rolled into one.
RAD USES SPECIALIZED TOOLS THAT SUPPORT ...
visual" development
creation of fake prototypes (pure simulations)
creation of working prototypes
multiple languages and etc…
RAD USES "TIMEBOXING“
RAD USES ITERATIVE, EVOLUTIONARY PROTOTYPING
1.JAD (Joint Application Development) MEETING
Developers talk and listen
Customers talk and listen
2.ITERATE UNTIL DONE
Developers build / evolve prototype based on current requirements.
Designers review the prototype.
Customers try out the prototype, evolve their requirements.
FOCUS GROUP meetingCustomers and developers meet to review product together, refine requirements, generate change requests.
Developers listen.
Customers talk.
Requirements and change requests are "time boxed".
Changes that cannot be accommodated within existing time boxes are eliminated.
If necessary to stay "in the box," secondary requirements are dropped.
Iterative and incremental development
• Iterative and Incremental development is at the heart of a cyclic software development process developed in response to the weaknesses of the waterfall model.
Iterative and incremental development
This type of lifecycle is a risk mitigation driven process. Technical risks are assessed and prioritized early in the lifecycle and are revised during the development of each iteration. Risks are attached to each iteration so that successful completion of the iteration mitigates the risks attached to it. The releases are scheduled to ensure that the highest risks are tackled first
Advantages of Iterative & Incremental Development Approach
1. Quickly getting a useful system into the hands of users.
2. Early risk discovery and mitigation.
3. Accommodates change and provokes earlier identification of change.
4. Manageable complexity.
5. Confidence from early, repeated success.
6. Early partial product.
7. Better progress tracking and predictability.
8. Software better matches user needs.
9. Early and regular process improvement.
10. Communication and engagement demanded.
11. Prototyping and feedback encouraged.
12. Higher quality, fewer defects.
Advantages of Iterative & Incremental Development
Disadvantages of Iteration & Incremental Development
Management problems Progress can be hard to judge and problems hard to find because there is no documentation to
demonstrate what has been done. documentation may be lacked. That will make management hard
Contractual problems The normal contract may include a specification; without a specification, different forms of contract
have to be used. Validation problems
Without a specification, what is the system being tested against? Maintenance problems
Continual change tends to corrupt software structure making it more expensive to change and evolve to meet new requirements.
Because during the development process needs to be adapted and refined, it may be that the original purpose fades. It can happen that it continues to change and it never finished. This is called Scope Creep.
Project managers who are accustomed to linear development can be confused by the strong dynamics.(-may be problems because of the lack of understand about
The rapid development has the potential to draw a bill on the organization and resources of the great dynamics.
Inexperience with the way of working can lead to misunderstandings and disappointments..
Disadvantages of IID
Commonly used Iterative And Incremental Development Tools
Commonly used Iterative and Incremental Development tools
Database programming languageInterface generatorLinks to office applicationsReport generatorsvisual" developmentcreation of fake prototypes (pure simulations)creation of working prototypesmultiple languagesteam schedulingteamwork and collaborationuse of reusable componentsuse of standard APIsversion control
File Edit Views Layout Options Help
GeneralIndex
Menu componentDate component
Range checkingscript
Tree displaycomponent
Draw canvascomponent
User promptcomponent +
script
12th January 2000
3.876
Thank You!