Loading presentation...

Present Remotely

Send the link below via email or IM

Copy

Present to your audience

Start remote presentation

  • Invited audience members will follow you as you navigate and present
  • People invited to a presentation do not need a Prezi account
  • This link expires 10 minutes after you close the presentation
  • A maximum of 30 users can follow your presentation
  • Learn more about this feature in our knowledge base article

Do you really want to delete this prezi?

Neither you, nor the coeditors you shared it with will be able to recover it again.

DeleteCancel

Make your likes visible on Facebook?

Connect your Facebook account to Prezi and let your likes appear on your timeline.
You can change this under Settings & Account at any time.

No, thanks

Agile vs Waterfall Model of Software Development

No description
by

Aparna Iyer

on 4 May 2014

Comments (0)

Please log in to add your comment.

Report abuse

Transcript of Agile vs Waterfall Model of Software Development

Waterfall
Agile
vs
Waterfall Model of software development


Software Development Methods

Agile Method
Ken Schwaber & Jeff Sutherland introduced the Scrum methodology

Agile projects make progress in a series of “sprints” and its designed, coded and tested during the sprint

During a project the customers can change their minds about what they want and need
So, What kind of method we are using here??
Waterfall?
Comparison
Agile

Delegated Task to self directed team

Flexible

Working Prototype Available at early cycle

does not required all requirements to be finalized at the start of the project

When 1 features goes wrong, it will not effect another features

Waterfall Advantages
Design errors are captured before any software is written saving time during the implementation phase.

Phases are processed and completed one at a time

Works well for smaller projects where requirements are very well understood

Reduces the risk of missing the defined schedule/deadlines.
Agile?
Waterfall

Task is given to specific team

Linear

Working Prototype available at the end of cycle

need to finalize all the requirements before start the project

Every phase is visited only once and there's no turning back


TASK


FLOW

IMPLEMENTATION

REQUIREMENTS



PROCESS
Waterfall Disadvantage
Once an application is in the testing stage, it is very difficult to go back and change something that was not well-thought out in the concept stage

The product/software is made available after the implementation phase is complete

Estimating time and costs with any degree of accuracy is often extremely difficult.

Not suitable for the projects where requirements are at a moderate to high risk of changing
Agile Advantages

It provides for an open forum, where everyone knows who is responsible for which item

Daily meetings make it possible to measure individual productivity. This leads to the improvement in the productivity of each of the team members

Due to short sprints and constant feedback from user, it becomes easier to cope with the changes

Helps the company in saving time and money.
Agile Disadvantage
If the team members are not committed, the project will either never complete or fail

It is good for small, fast moving projects as it works well only with small team

Agile Scrum is one of the leading causes of scope creep because unless there is a definite end date, the user will be tempted to keep demanding for a new requirements
Which method is better for us??
Questions ???
Decision
Waterfall Method
Winston W. Royce was the first who described the Waterfall model for software

Waterfall model has been structured on multiple phases especially to help out the software construction companies to develop an organized system of construction.

The phase is one moves progressively to the final stage and once that point is reached, you cannot turn back. The concept similar to the water in a waterfall.
RAD
Agile
Iterative
Spiral
Waterfall Model

Intro and characteristics
The first formal description of the waterfall model is often cited as a 1970 article by Winston W. Royce

 sequential design process, often used in software development processes, in which progress is seen as flowing steadily downwards (like a waterfall).

Each phase is completed before the next one is started and there is no turning back. i.e Project is planned from top to bottom at once.

A schedule is typically set with deadlines for each stage of development.

Steps

Requirements
– defines needed information, function, behavior, performance and interfaces.

Design
– data structures, software architecture, design principles, design concepts and patterns

Implementation
– includes linking together different components to act as a co-ordinated whole.



Sprint
Developing of an software product may fail…
There are many factors that must be considered and brought together in order to develop a successful software product.
Software Development Life Cycle is one approach to reduce the risk of failure.

Steps (contd...)
Testing
– includes testing levels like Unit Testing, Integration Testing, System Integration Testing (SIT) and User Acceptance Test (UAT).

Installation
- includes all the operations to prepare a system for assembly and transfer to the customer site.

Maintenance
– includes the preparation for handling problems identified during development; the follow-up on product configuration management, issues encountered during regular use of the application / product.

Agile Methodologies
Rapid Application Development (RAD)

Incremental SDLC
Scrum
Extreme Programming (XP)

Feature Driven Development (FDD)
Dynamic Software Development Method (DSDM)
Approaches
User Example
As a Customer I want to add a product in cart
As a Customer I want to pay via Paypal
As a Customer I want to have DHL shipping option
As a Customer I want to add items in wish list
As a Sales person I want to see the most popular items in wish lists
Examples
When making a car:
The requirements are fixed or predicted.
No change in the requirements during the process.
Once we complete a stage, we proceed to the next one.

If there is any change in requirements, we have to change our complete system.
That requires extra time and extra money.
When making software:
The requirements are always changing.
Updates are constantly required.
You need to adapt to the the external changes.

If there is any change, you retrace your steps and fix the problem rather than the whole system.
We can take real life examples of an automobile company for waterfall model
We can link agile method to software development
Advantages (contd..)
Continuous attention to technical excellence and good design.
Regular adaptation to changing circumstances.
The end result is the high quality software in least possible time duration and satisfied customer
Even late changes in requirements are welcomed

Agile Terminologies
Sprint
Product Backlog
Sprint Backlog
Scrum Team
Scrum Master
Product Owner
Development Team
Sprint Plan Meeting
Daily Scrum Meeting
Sprint Review Meeting
Introduction
Software Development Life Cycle (SDLC)
SDLC
A SDLC is a standardised format for
planning
organising, and
running
a new development project.

-> It is a structured step-by-step approach for developing information systems.

Thank You
“No matter how good the team or how efficient the methodology, if we’re not solving the right problem, the project fails.” –- Woody Williams
Full transcript