Friday, July 6, 2018

A Dichotomy Between Agile and RAD Development

Developing software requires a methodology to produce a quality software product on time and within budget.

There are various methods within the Software Development Life Cycle (SDLC) to select from and each can be selected according to the project's needs. But many organizations these days employ one method for all their software projects.

On the Version One website agile is described as an iterative and incremental methodology where the software team iterates through a project, delivers software incrementally, and continually plans and tests the software application.

On the other hand, RAD (Rapid Application Development) is described as being based on rapid prototyping and iterative and incremental development without any specific planning involved, by Tutorials Point. 

A prototype is a working model that is functionally equivalent to a component of the product (Tutorials Point).

Below are the advantages and disadvantages of Agile and RAD development listed on Tutorials Point.

Agile
Advantages Disadvantages
Is a very realistic approach to software development. Not suitable for handling complex dependencies.
Promotes teamwork and cross training. More risk of sustainability, maintainability and extensibility.
Functionality can be developed rapidly and demonstrated. An overall plan, an agile leader and agile PM practice is a must without which it will not work.
Resource requirements are minimum. Strict delivery management dictates the scope, functionality to be delivered, and adjustments to meet the deadlines.
Suitable for fixed or changing requirements Depends heavily on customer interaction, so if customer is not clear, team can be driven in the wrong direction.
Delivers early partial working solutions. There is a very high individual dependency, since there is minimum documentation generated.
Good model for environments that change steadily. Transfer of technology to new team members may be quite challenging due to lack of documentation.
Minimal rules, documentation easily employed.
Enables concurrent development and delivery within an overall planned context.
Little or no planning required.
Easy to manage.
Gives flexibility to developers.

RAD
Advantages Disadvantages
Changing requirements can be accommodated. Dependency on technically strong team members for identifying business requirements.
Progress can be measured. Only system that can be modularized can be built using RAD.
Iteration time can be short with use of powerful RAD tools. Requires highly skilled developers/designers.
Productivity with fewer people in a short time. High dependency on modeling skills.
Reduced development time. Inapplicable to cheaper projects as cost of modeling and automated code generation is very high.
Increases reusability of components. Management complexity is more.
Quick initial reviews occur. Suitable for systems that are component based and scalable.
Encourages customer feedback. Requires user involvement throughout the life cycle.
Integration from very beginning solves a lot of integration issues. Suitable for project requiring shorter development times.

References:

Version One (n.d.) The Evolution of the Agile Software Methodology [online] Available at: https://www.versionone.com/agile-101/ [Accessed 6 July ]

Tutorials Point (n.d.) SDLC - Agile Model [online] Available at: https://www.tutorialspoint.com/sdlc/sdlc_agile_model.htm [Accessed 6 June]

Tutorials Point (n.d.) SDLC - RAD Model [online] Available at: https://www.tutorialspoint.com/sdlc/sdlc_rad_model.htm [Accessed 6 June]



No comments:

Post a Comment

How to Access the Metaverse

In February this year, Bernard Marr predicted that "in 2022, we'll see new, lighter, more portable VR devices, so instead of having...