In this presentation I will review the main differences between waterfall and agile methodology, this presentation is a great place to start if you want to know why more and more companies are using agile as the preferred development methodology.
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
Agile vs. waterfall - The fundamentals differences
1. AGILE VS. WATERFALL
THE FUNDAMENTALS
DIFFERENCES
DAVID TZEMACH
WWW.DTVISIONTECH.COM
MAR 25 2016
2. WATERFALL (MAJOR RELEASE) VS. AGILE (INCREMENTAL RELEASE)
IN AGILE WE WILL RELEASE AN INCREMENTAL RELEASES PER ITERATION
IN WATERFALL WE WILL RELEASE A ONE MAJOR VERSION AT THE END OF THE PROCESS.
Requirements
Design
Development
Testing
Maintenance
Requirements
Design
Development
Testing
Maintenance
Requirements
Design
Development
Testing
Maintenance
R
E
L
E
A
S
E
1
R
E
L
E
A
S
E
2
Planning throughout the entire process
R
E
L
E
A
S
E
Iteration 1 Iteration 2
3. WATERFALL VS. AGILE – VISIBILITY
WATERFALL
AGILE
YOU HAVE AN HIGH VISIBILITY, NO MATTER WHAT IS THE CURRENT PHASE.
Phase Visibility
Requirements Analysis(Phase 1)
+ Software Design (Phase 2)
High visibility, Everyone can see how the software supposed to be built(Up front
Transparency about the software).
Development(Phase 3) Low Visibility, the software is developed, but other team doesn't know exactly
what is going on during the entire phase that usually takes a massive amount of
time.
Testing (Phase 4) High visibility, QA receives drops of the software, and return it to Dev. With a
large number of bugs, the pressure begins to be high(this is the last step prior
to deployment) and everyone returns to be involved in the project.
4. WATERFALL (SEQUENTIAL ACTIVITY ) VS. AGILE (CONCURRENT ACTIVITY)
WATERFALL
IN WATERFALL SOFTWARE DEVELOPMENT MODEL, WE HAVE A SEQUENTIAL ACTIVITY WHERE ONE
PHASE SHOULD BE FINISHED PRIOR TO MOVING TO THE NEXT.
AGILE
• IN AGILE SOFTWARE DEVELOPMENT, WE PERFORM EACH ACTIVITY PER ITERATION(THIS ENABLES
THE DECISION MAKERS TO LEARN FROM THIS SMALL RELEASES AND TAKE DECISIONS BASED ON
THE CLIENT FEEDBACK).
5. WATERFALL(DISCOURAGE CHANGES) VS. AGILE (ENCOURAGE
CHANGES)
WATERFALL
• ANY CHANGE THAT APPROVED WILL BE ACTIVELY CONTROLLED AND MONITORED(DESIGN, CODING AND TESTING).
• ANY CHANGE THAT COMES AFTER AND DURING THE DESIGN PHASE ARE DISCOURAGED.
• REMEMBER THAT THE PLANNING STAGE IS THE PHASE THAT YOU NEED TO FOLLOW ON THE ENTIRE PROCESS AND THEREFORE
WILL RESTRICT YOU FROM HAVING NEW CHANGES.
AGILE
• CHANGES ARE PART OF THE PROCESS, AND WILL HELP TO IMPROVE THE PRODUCT.
• CHANGES ARE ENCOURAGED AND EMBRACED DURING THE PROCESS.
• AGILE DEVELOPMENT PROCESS, IS MORE FLEXIBLE TO
HANDLE A NEW CHANGE REQUESTS.
6. WATERFALL VS. AGILE – COMMUNICATION
WATERFALL
• THERE IS A LOW/NUN-EXISTING INTERACTION WITH THE CLIENT.
• LOW COLLABORATION BETWEEN THE TEAMS.
• THERE IS A DIVIDED TEAMS THAT COLLABORATE TOGETHER, EACH TEAM IS RESPONSIBLE TO A SPECIFIC PART
IN THE PROCESS.
AGILE
• DAILY MEETINGS AND FACE-TO-FACE COMMUNICATION, ARE THE BEST WAY TO CREATE A GOOD
COLLABORATION(THE ALIGNMENT BETWEEN THE PROJECT RESOURCES WILL INCREASE AND THE
UNWANTED MISUNDERSTANDINGS ARE REMOVED ).
• HIGH COLLABORATION BETWEEN THE TEAM AND THE CUSTOMER.
• THERE IS A COLLECTIVE OWNERSHIP DURING THE PROCESS.
• SINGLE TEAM THAT COMBINED WITH ALL THE RELEVANT RESOURCES TO BUILD
THE SOFTWARE AS ONE UNIT (TESTERS, DEVELOPERS…).
7. WATERFALL VS. AGILE – TEST DOCUMENTS
WATERFALL
• MASSIVE STD’S THAT WE NEED TO CREATE AND EXECUTED DURING THE PROCESS.
• HARD TO MAINTAIN DURING AND AFTER THE SDLC.
• WILL INCREASE THE SOFTWARE RELEASES TIME.
AGILE
• THERE IS NO NEED TO FOLLOW A LARGE STD WITH THOUSANDS OF TEST CASES.
• THE TESTING TEAM WILL INVEST IN ACTUAL TESTING INSTEAD OF WRITING STD’S.
• THE TESTS ARE WRITTEN WITH AT THE START AND END OF EVERY SPRINT.
• TESTS ARE DETERMINATE PER ITERATION.
8. WATERFALL VS. AGILE – REQUIREMENTS VALIDATION
WATERFALL
• HARD TO DETERMINE WHICH REQUIREMENT IS FULFILLED DURING THE TEST EXECUTION.
• VERY HARD TO ADD/MODIFY REQUIREMENTS AFTER THE IMPLEMENTATION.
AGILE
• THE PRODUCT OWNER/CLIENT CAN CHANGE/ADD REQUIREMENTS WITHOUT ANY PROBLEM.
• EASY TO DETERMINE WHICH REQUIREMENT IS FULFILLED(EVERY ITERATION WILL BE DONE ONLY
WHEN THE FULL REQUIREMENTS ARE IMPLEMENTED AND TESTED).
9. WATERFALL VS. AGILE – PROJECT TIMELINES
WATERFALL
• TIME ESTIMATIONS ARE HARD TO PREDICT.
• LONG AND SLOWER PROCESS.
• LARGER COSTS.
AGILE
• TIME ESTIMATION IS MORE PRECISE
• SHORT AND FASTER PROCESS.
• LOWER COSTS.
10. WATERFALL VS. AGILE – DEVELOPMENT PROCESS
WATERFALL
• VERY SLOW PROCESS THAT CAN TAKE WEEKS AND EVEN MONTHS UNTIL COMPLETION.
• DEVELOPMENT STARTS WHEN THE ENTIRE SOFTWARE DESIGN IS READY.
• TEST CAN START ONLY WHEN THE IMPLEMENTATION PROCESS IS DONE.
AGILE
• A FASTER WAY TO RELEASE A SOFTWARE (INCREMENTAL SOFTWARE PER SPRINT).
• TESTING AND DEVELOPING AT THE SAME TIME.
• THE CLIENT CAN GET A WORKING PRODUCT.
• THE TEAM CAN GET AN INSTANT FEEDBACK.
11. WATERFALL VS. AGILE – QA PERSPECTIVE
WATERFALL
• THE TESTING EFFORT WILL START WHEN THE DEVELOPMENT PHASE IS DONE.
AGILE
• THE TESTING EFFORT WILL START WHEN THE FIRST CODE IS AVAILABLE.
• TESTING IS AN INTEGRAL PART OF EACH DEVELOPMENT ITERATION.