SYSTEM DEVELOPMENT METHODOLOGIES
These are frameworks that are used to structure, plan, and control the process of developing an
information system.
They include but not limited to the following:
WATERFALL MODEL
The waterfall method is considered the traditional software development method. It’s a rigid linear
model that consists of sequential phases (requirements, design, implementation, verification,
maintenance) in which distinct goals are accomplished. Each phase must be 100% complete before
the next phase can start, and traditionally there is no process for going back to modify the project
or direction.
Pros:
1. Easy to understand and functional
2. Simple enough to handle as model is rigid
3. Saves significant amount of time
4. Allows for easy testing and analysis
Cons:
1. Only matches precise needs
2. Not applicable for maintenance projects
3. No option to know possible outcome of a project
4. Not excellent for long and ongoing projects
PROTOTYPING
Prototyping is defined as the process of developing a working replication of a product or system
that has to be engineered. It offers a small scale facsimile of the end product and is used for
obtaining customer feedback.
Framework Type: Iterative
Pros:
1. Gives clear idea about the functional process of the software
2. Reduces the risk of failure in a software functionality
3. Assists well in requirement gathering and the overall analysis
Cons:
1. Chances of extension in management cost
2. Excessive involvement of client can affect processing
3. Too many changes affect the workflow of the software
RAPID APPLICATION DESIGN (RAD)
The RAD model is based on prototyping and iterative development with no specific planning
involved. The process of writing the software itself involves the planning required for developing
the product.
Rapid Application Development focuses on gathering customer requirements through workshops
or focus groups, early testing of the prototypes by the customer using iterative concept, reuse of
the existing prototypes (components), continuous integration and rapid delivery.
Framework type: Iterative
Pros:
1. Makes the entire development process effortless
2. Assists client in taking quick reviews
3. Encourages feedback from customers for improvement
Cons:
1. Dependant on the team for performance
2. Works on modularized system confined on this methodology
3. Requires extremely skilled personnel to handle complexities
4. Not applicable for the small budgeted projects
SPIRAL MODEL
The spiral model combines the idea of iterative development with the systematic, controlled
aspects of the waterfall model. This Spiral model is a combination of iterative development process
model and sequential linear development model i.e. the waterfall model with a very high emphasis
on risk analysis. It allows incremental releases of the product or incremental refinement through
each iteration around the spiral.
The spiral model has four phases. A software project repeatedly passes through these phases in
iterations called Spirals.
i. Requirements identification and analysis
ii. Design
iii. Construct or build
iv. Evaluation and risk analysis
Framework type: Combination of Linear and Iterative
Pros:
1. Risk factors are considerably reduced
2. Excellent for large and complex projects
3. Allows for additional functionality later
4. Suitable for highly risky projects with varied business needs
Cons:
1. Costly model in software development
2. Failure in risk analysis phase may damage the whole project
3. Not appropriate for low-risk projects
4. Might get continued and never finish
INCREMENTAL MODEL
Incremental Model is a process of software development where requirements are broken down into
multiple standalone modules of software development cycle. Incremental development is done in
steps from analysis design, implementation, testing/verification, maintenance.
Each iteration passes through the requirements, design, coding and testing phases. And each
subsequent release of the system adds function to the previous release until all designed
functionality has been implemented.
Framework type: Combination of Linear and Iterative
AGILE DEVELOPMENT METHODOLOGY
Agile SDLC model is a combination of iterative and incremental process models with focus on
process adaptability and customer satisfaction by rapid delivery of working software product.
Agile Methods break the product into small incremental builds. These builds are provided in
iterations. Each iteration typically lasts from about one to three weeks. Every iteration involves
cross functional teams working simultaneously on various areas like −
Planning
Requirements Analysis
Design
Coding
Unit Testing and
Acceptance Testing.
At the end of the iteration, a working product is displayed to the customer and important
stakeholders.
The advantages of the Agile Model are as follows −
Is a very realistic approach to software development.
Promotes teamwork and cross training.
Functionality can be developed rapidly and demonstrated.
Resource requirements are minimum.
Suitable for fixed or changing requirements
Delivers early partial working solutions.
Good model for environments that change steadily.
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.
The disadvantages of the Agile Model are as follows −
Not suitable for handling complex dependencies.
More risk of sustainability, maintainability and extensibility.
An overall plan, an agile leader and agile PM practice is a must without which it will not
work.
Strict delivery management dictates the scope, functionality to be delivered, and
adjustments to meet the deadlines.
Depends heavily on customer interaction, so if customer is not clear, team can be driven in
the wrong direction.
There is a very high individual dependency, since there is minimum documentation
generated.
Transfer of technology to new team members may be quite challenging due to lack of
documentation.
JOINT APPLICATION DEVELOPMENT (JAD)
JAD (Joint Application Development) is a methodology that involves the client or end user in the
design and development of an application, through a succession of collaborative workshops called
JAD sessions.
Pros:
1. Allows for simultaneous congregation and alliance of excessive information.
2. Produces huge amount of valuable information in short period
3. Immediate resolving of differences with suitable assistance
4. Provides forum to explore multiple points
Cons:
1. Takes excessive amount of time for planning and scheduling
2. Requires significant investment of time and effort
3. Calls for highly trained experts, which is tough to find
Others may include:
i. Extreme Programming Methodology
ii. Feature Driven Development
iii. Lean Development Methodology
etc