why agile development is bad issues of complex application development odtug kaleidoscope 2012 san...

28
Why Agile Development Is Bad I W a t e r f a l l Issues of complex Application Development ODTUG Kaleidoscope 2012 San Antonio, Texas, June 24-28 Marc de Oliveira, Simplify Systems

Upload: camille-rounsavall

Post on 15-Jan-2016

219 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Why Agile Development Is Bad Issues of complex Application Development ODTUG Kaleidoscope 2012 San Antonio, Texas, June 24-28 Marc de Oliveira, Simplify

Why Agile Development Is Bad

I

Waterfall

Issues of complex Application Development

ODTUG Kaleidoscope 2012San Antonio, Texas, June 24-28

Marc de Oliveira, Simplify Systems

Page 2: Why Agile Development Is Bad Issues of complex Application Development ODTUG Kaleidoscope 2012 San Antonio, Texas, June 24-28 Marc de Oliveira, Simplify

SimplifSimplifyy SystemsSystems

MethodologyModeling

Architecture

Page 3: Why Agile Development Is Bad Issues of complex Application Development ODTUG Kaleidoscope 2012 San Antonio, Texas, June 24-28 Marc de Oliveira, Simplify

Agile: Cary Millsap

Page 4: Why Agile Development Is Bad Issues of complex Application Development ODTUG Kaleidoscope 2012 San Antonio, Texas, June 24-28 Marc de Oliveira, Simplify

Waterfall: Marc de Oliveira

Strategy

Analysis

Design

Implementation

Page 5: Why Agile Development Is Bad Issues of complex Application Development ODTUG Kaleidoscope 2012 San Antonio, Texas, June 24-28 Marc de Oliveira, Simplify

Don't Think

– just do it

Think– don't just do

it“You have to break some eggs...” “Understand the business”

Page 6: Why Agile Development Is Bad Issues of complex Application Development ODTUG Kaleidoscope 2012 San Antonio, Texas, June 24-28 Marc de Oliveira, Simplify

Discussion Points

3 Agile misconceptions about waterfall Agile evangelists use the term

“Waterfall” as a synonym for “Bad” which makes it hard to understand the real differences between Agile and Waterfall

3 Problematic Agile ideas Areas where Agile ideas are slow, more

costly or delivers lower quality than Waterfall

3 Conclusions

Page 7: Why Agile Development Is Bad Issues of complex Application Development ODTUG Kaleidoscope 2012 San Antonio, Texas, June 24-28 Marc de Oliveira, Simplify

Misconception 1:Agile – the term

Agility is good It does not come from calling it Agile Development agility

Short code release cycles

Few programming constraints

Business Agility Fast reaction to business change

Having a consistent understanding of the business and how it is supported by software

Page 8: Why Agile Development Is Bad Issues of complex Application Development ODTUG Kaleidoscope 2012 San Antonio, Texas, June 24-28 Marc de Oliveira, Simplify

Business Agility

Agile Waterfall

Scope Single process Holistic architecture

Involvement Reflect few key usersReflect the entire

business

Quality Quick decisions Thorough decisions

Documentation

Implicit documentation

Explicit documentation

ConclusionHard

for business to navigate

Easyfor business to

navigate

Page 9: Why Agile Development Is Bad Issues of complex Application Development ODTUG Kaleidoscope 2012 San Antonio, Texas, June 24-28 Marc de Oliveira, Simplify

Misconception 2:Show Your Work to Other People

Cary Millsap (Agile): Release Early

Release Often

Marc de Oliveira (Waterfall): Get feedback on analysis

Get feedback on design

Get feedback on implementation

Showing Design Can cloud users' ability to focus on the

big picture (improving the business)

Page 10: Why Agile Development Is Bad Issues of complex Application Development ODTUG Kaleidoscope 2012 San Antonio, Texas, June 24-28 Marc de Oliveira, Simplify

Misconception 3:Welcome Changing Requests

Cary Millsap (Agile Manifesto): Welcome changing requirements even

late in the development

Marc de Oliveira (Waterfall): Even if they conflict with other

requirements?

It does not make sense to spend time working on outdated requirements

Salmon jumps … but the earlier you identify a problem the

cheaper it is to fix it

Page 11: Why Agile Development Is Bad Issues of complex Application Development ODTUG Kaleidoscope 2012 San Antonio, Texas, June 24-28 Marc de Oliveira, Simplify

Discover Defects Early

Analysis Design Implementation Test Post Release

1 3 510

100Cost to fix

Page 12: Why Agile Development Is Bad Issues of complex Application Development ODTUG Kaleidoscope 2012 San Antonio, Texas, June 24-28 Marc de Oliveira, Simplify

Problem 1:How or What?

Both are important: How: The activities to be supported

What: Things of interest to the business

Cary prioritizes How over What To focus on one problem area at a time

Data can be changed later if it is wrong

Marc prioritizes What over How As Data is more stable and reusable than

Process

Activities are easier to change

Page 13: Why Agile Development Is Bad Issues of complex Application Development ODTUG Kaleidoscope 2012 San Antonio, Texas, June 24-28 Marc de Oliveira, Simplify

Problem 2:The Product Owner

Agile methodology handles the issue of “understanding the business” by defining the role of a Product Owner

The Product Owner represents the collective requirements

understands the inter dependencies

knows how to prioritize requirements

Ie Scrum “outsources” the responsibility of having a consistent view of the business

Page 14: Why Agile Development Is Bad Issues of complex Application Development ODTUG Kaleidoscope 2012 San Antonio, Texas, June 24-28 Marc de Oliveira, Simplify

Example (1)

Application for educational organization

Priority 1: Students and their courses

Page 15: Why Agile Development Is Bad Issues of complex Application Development ODTUG Kaleidoscope 2012 San Antonio, Texas, June 24-28 Marc de Oliveira, Simplify

Example (2)

Then: Personal information, address etc

Then: Payments, grades, issue tracking

Page 16: Why Agile Development Is Bad Issues of complex Application Development ODTUG Kaleidoscope 2012 San Antonio, Texas, June 24-28 Marc de Oliveira, Simplify

Example (3)

Students may return and study more

Page 17: Why Agile Development Is Bad Issues of complex Application Development ODTUG Kaleidoscope 2012 San Antonio, Texas, June 24-28 Marc de Oliveira, Simplify

Example (4)

Then: HR management

Page 18: Why Agile Development Is Bad Issues of complex Application Development ODTUG Kaleidoscope 2012 San Antonio, Texas, June 24-28 Marc de Oliveira, Simplify

Example (5)

Many employees are former students It would be nice to know that earlier...

Page 19: Why Agile Development Is Bad Issues of complex Application Development ODTUG Kaleidoscope 2012 San Antonio, Texas, June 24-28 Marc de Oliveira, Simplify

Problem 3:Refacturing

Page 20: Why Agile Development Is Bad Issues of complex Application Development ODTUG Kaleidoscope 2012 San Antonio, Texas, June 24-28 Marc de Oliveira, Simplify

Agile – without refacturing

Page 21: Why Agile Development Is Bad Issues of complex Application Development ODTUG Kaleidoscope 2012 San Antonio, Texas, June 24-28 Marc de Oliveira, Simplify

Agile – with refacturing

Page 22: Why Agile Development Is Bad Issues of complex Application Development ODTUG Kaleidoscope 2012 San Antonio, Texas, June 24-28 Marc de Oliveira, Simplify

So In The End - Who Wins?

“Just Do It”or

“Don't Just Do It”

Page 23: Why Agile Development Is Bad Issues of complex Application Development ODTUG Kaleidoscope 2012 San Antonio, Texas, June 24-28 Marc de Oliveira, Simplify

Conclusion 1 (1)Understanding of the

Business Cary Millsap's methodology (Agile)

Start with the primary requirement

Discuss it with key users

Develop a prototype

Get acceptance

Repeat with next requirement

Page 24: Why Agile Development Is Bad Issues of complex Application Development ODTUG Kaleidoscope 2012 San Antonio, Texas, June 24-28 Marc de Oliveira, Simplify

Conclusion 1 (2) Understanding of the

Business Marc de Oliveira's methodology

(Waterfall) Identify all the things of interest (terms)

… and their relationships Consolidate conflicting understandings

Understand all essential activities … based on consolidated terminology Consolidate conflicting understandings

Design and implement processes to support the business

Page 25: Why Agile Development Is Bad Issues of complex Application Development ODTUG Kaleidoscope 2012 San Antonio, Texas, June 24-28 Marc de Oliveira, Simplify

Conclusion 2Agile is a Coding Methodology

Every Sprint must result in running code

“Working software is the primary measure of progress”, The Agile Manifesto

All requirement questions are deferred to the Product Owner

It is not part of Scrum methodology how the product owner establishes an understanding of the overall business requirements

Page 26: Why Agile Development Is Bad Issues of complex Application Development ODTUG Kaleidoscope 2012 San Antonio, Texas, June 24-28 Marc de Oliveira, Simplify

Conclusion 3 (1)Understanding vs Speed

We have to understand the business

to build the right system

to discover defects early

Conclusion: use Waterfall

We want to deliver faster Conclusion: use Agile

Is there a compromise?

Page 27: Why Agile Development Is Bad Issues of complex Application Development ODTUG Kaleidoscope 2012 San Antonio, Texas, June 24-28 Marc de Oliveira, Simplify

Conclusion 3 (2)Agile Waterfall Methodology

Strategy

Analysis

Design

Implementation

Page 28: Why Agile Development Is Bad Issues of complex Application Development ODTUG Kaleidoscope 2012 San Antonio, Texas, June 24-28 Marc de Oliveira, Simplify

Agile Waterfall

[email protected]

Agile Waterfall