Impact of rapid application development
Impact of Rapid Application Development
This report is submitted in context to a study that was performed to analyze the “Impact of Rapid Application Development (RAD) on the software industry” using the context of the NASA weather forecasting system.
The NASA existing weather forecasting system was studied for a new feature of exposing the NASA weather data to the other countries of the world using Rapid Application Development Platform.
NASA is a world renowned organization that deals in space research and forecasting systems. NASA has an internal software system that collects weather data from the various NASA satellites and produce variety of forecasting reports for the next 24 hours that includes temperature, pressure, humidity , wind speed as the major reports. The other countries of the world has requested NASA to give them an API (Application programming Interface ) or a port from which they can import the weather data of NASA into XML format into their local servers after which they can use the it for their countries weather forecasting. The various system development methodologies including the popular Software Development Lifecycle method, Iterative method and Rapid Application Development methods were analyzed to choose the best methodology according to NASA requirements.
During the course of the study it was observed that Rapid Application Development methodology works best when you have times and budgetary limitations as well as when you are assigned a limited but elite programming resources. The only thing that need to be maintained is that all the team members work together and there is “We” attached to the product/project development rather than “I” , because “I” word in these sort of small team can become a big danger of losing one or two good team members altogether. The report also includes the principles, realities and myth of the Rapid Application development Paradigms.
It was observed that the timelines and the project deadlines can be achieved sooner in an efficient way by using Rapid Application development methodology and RAD project executed and implement at least the twice the speed and half the time taken by the regular Software development Life cycle.
It was concluded from the study that Rapid Application Development will form the future backbone of software industry because of its effectiveness, less development and implementation time and more flexibility.
Keywords:- Following is the list of important keywords and their definition which might be used through this report:-
- RAD :- Rapid application development
- SSADM :-Structured System Analysis and Design Method
- DSDM:- Dynamic System Development Method
- Waterfall Model
- Time Boxing
- Iterative Model
- UML :- Universal markup language
- OOP:- Object Oriented Paradigm/Programming
- UCD:- Use Case Diagram
- OOM:- Object Oriented Modeling
- GUI:- Graphical user Interface
- IDE:- Integrated development environment
- API:- Application Programming Interface
- NASA:-North Atlantic Space Association
- DLL:-Dynamic Linking Libraries.
- XML :- Extensible Markup Language
- Class Diagrams
- Sequential Diagrams
NASA or North Atlantic Space Association is a United States Government owned Space Research and Development Company. NASA has its own internal Weather forecasting department and specialized custom build weather forecasting software that connects to the US satellites receive various weather inputs from them and then calculates and forecasts the next 24 hour weather report that includes Temperature, Pressure, Humidity and Wind Speeds.
During a recent United Nations Conference US government has accepted the proposal of other countries of the world to provide them weather forecasting data from NASA weather forecasting servers.
Following are the project requirements that NASA has to fulfill:-
- The project development, testing and final implementation should not take more than 3 months.
- The project will only have the budget for 5 software developers.
- The project has to contain bare minimum only required important documentation and should not contain detail system specifications
- The first prototype for the other countries technical experts review has to be release withing15 days of project initialization.
- The rest of the project phases will work in iterative manner and based on client feedback.
The feasibility study on various software development methodologies include software development Life Cycle (SDLC) and RAD was done , keeping in vision the product development cost and the stricter timelines and it was accepted to use Rapid Application Development or RAS as the software development methodology for the current system.
IMPACT OF RAD ON SOFTWARE INDUSTRY
Before starting our discussion on RAD, let us take a closer look of what Agile Methodology is and a brief overview of its history and manifesto
What is Agile Software Development?
“Agility is more attitude than process, more environment than methodology” (Jigh Highsmith , April 6,2004 , Agile Project Management : Creating Innovative Projects )
Agile Software Development is a set of software development Methodologies based on iterative development, where requirements and solutions evolve through collaboration between self organizing cross function team.
According to (HighSmith, 2002) Agility is the ability to both create and respond to change in order to profit in a turbulent business environment. Agility is the ability to balance flexibility and stability.
Agile Modeling is based on a collection of principles, derived from the principles of Agile Alliance, such as importance of assuming simplicity when you are modeling and embracing change when you are working, because requirements do change in future
(Scott Ambler , 2002 , Agile Modeling: Effective practices for extreme programming and the unified process, Wiley)
History and Manifesto of Agile software development
The definition of the agile software development methodology started evolving in mid 1990s as a part of strong opposition against the already existing standard, micro managed use of Waterfall Model for development.
There were heavy cost and time schedules escalations in Waterfall Model because of the freezing of design phase first and then starting up with the development and implementation phases. The time when product use to get ready to be deployed at the client side, it is already obsolete for use, because most of the time client requirements change during the product development phase.
In 2001, some most important prominent figures in the field of Agile development came together in Utah to discuss the ways of creating software in a lighter, faster and more people centric way. It was then only the “Agile software development” and “Agile methodology” term gets coined. In the same meet, they create Agile manifesto that includes the canonical definition of the Agile Development and accompanying agile principles. (http://en.wikipedia.org/wiki/Agile_software_development )
Values and Principles of Agile Methodology:-
As per the 2001 Agile Manifesto, following are stated as the values of the Agile methodologies:-
- Individuals and Interactions over processes and tools used.
- Working software over comprehensive documentation
- Customer Collaboration over contract negotiation
- Responding to change over following a plan
Some of the principles envisioned behind Agile Manifesto are:-
- Customer satisfaction by rapid and continuous delivery of software system
- Working software is the principle measure of progress
- Even late changes in requirements are welcomed
- Close , Daily Cooperation between business people and developers