Professional Documents
Culture Documents
Agile Methodology
Agile Methodology
Agile Methodology
Agile
Methodologies
1. Introduction
The rapid application development and agile methodologies were both created as
responses to the perceived limitations of structured traditional management
techniques like the waterfall model. But, rapid application development was the first
engineering methodology to identify the underlying differences between software
engineering and conventional engineering. With conventional engineering projects
like mechanical systems, huge physical plants or bridges, engineers cannot start
building them and then change their minds halfway through. In contrast, software
development projects are transient. So, engineers can change their minds if needed.
RAD and agile models exploit this by welcoming changes in requirements even late
into the development process.
Although contrived back in the 1980s, the use of rapid application development
(RAD) is currently proliferating and used as an expediting methodology for digital
transformation in 2018 and beyond. During the 1970s, software engineering projects
followed the waterfall model, a traditional engineering process, which is similar to the
methodology applied to building bridges and huge physical plants. In this
methodology, software architects work together with the stakeholders who
requested for the software to draft functional requirements, then spend countless
hours interpreting them in specifications sheets. Development begins only after all
the specifications were completed. Then, after months or sometimes years of
development, the stakeholders and end users of the software get their first look at
the completed software product. If it failed to meet the expected results of the
stakeholders, the engineers would rewrite the existing source code to meet
expectations, which in turn increases the delivery time and costs. (Pike, 2018)
During the 1980s, software engineers Barry Boehm and James Martin realized the
inherent flaw in this approach, the waterfall methodology. From their perspective,
unlike inflexible resources like bridges, software was changeable and they advocated
that software development projects needed to exploit this attribute. Consequently,
the rapid application development methodology was introduced in 1991 by James
Martin.
While RAD facilitates a shorter delivery time and a higher satisfaction for both the
clients and the developers, RAD is not perfect and has its own drawbacks including:
3. Agile Methodology
Created in February 2001 by 17 software developers, agile recognizes that software
projects are fundamentally unpredictable and that there are likely to be changes over
the course of the project. These changes, be it market changes or feature changes as
the product comes to life will need to be addressed. As shown in figure 2, agile
welcomes this volatility by breaking down projects into small chunks called sprints, to
facilitate prioritization and allowing engineers to add or drop features during the
project.
Agile methods stress efficiency and practicality over heavy-weight process overhead
and documentation. Advantages of the agile methodology include:
1. Speed to market: Documentation in agile is short and to the point. This cuts
down the time spent on heavyweight documentation allowing agile teams to
a get working deliverable to the client in a short time.
2. Risk management: Incremental software delivery to the client helps identify
issues and feature deficits early in the process. Through feedbacks received
from the stakeholders and end users, project managers are quickly informed
about potential risks which can addressed earlier in the development process.
3. Customer satisfaction: Since customers are consistently involved throughout
the entire project, improvements can be made to the working software based
on customer feedback. Consequently, customers receive a high quality final
product guaranteeing the customer’s satisfaction as the entire software is
developed based on the requirements taken from customer.
Though the agile model is revolutionary and offers a different approach to the
traditional waterfall model, there are various limitations which include:
1. Lack of documentation: Although less documentation saves time in the
development process, this can be a big disadvantage for new developers
joining the team at the later stage since it will be difficult to understand the
actual method followed to develop the software.
2. Possible process derailment and time-wasting: The agile methodology
heavily depends on customer interaction. Therefore, it is probable that the
development process goes out of the track when the customer is not clear
about product features and requirements. As a result, a huge amount of time
and resources may be wasted in the process leading to an increase in
development cost and delivery time.
4. Conclusion
In conclusion, although RAD and the agile methodologies share similar values, with
regards to flexibility, shorter delivery time, and high customer interaction and
satisfaction, RAD is primarily focused on prototypes while agile is mostly focused on
breaking down the project into features which are then delivered in various sprints
over the development cycle. Based on the discussed advantages and disadvantages
of RAD and agile methodologies, RAD is mostly suitable for projects with preferably
six or fewer highly skilled developers, where prototypes are allowed within very tight
deadlines. On the other hand, the agile methodology is generally suitable for
projects with ideally twenty or less developers, where incremental feature delivery is
the main focus.
References
RAD is more focused on prototypes. In RAD, the primary focus is to get something
usable in front of the client as quickly as possible to get feedback. In the RAD model,
you may show the client something still in the development phase, whereas Agile will
usually wait until a specific feature is designed and built before showing it.
Also, RAD tends to be less focused on the UI/UX in favor of functionality, while Agile is
more likely to consider the design as an essential part of the product.