Development Methodologies

advertisement
INNOV-9: Adventures in Development
Methodologies
there’s no subtitle like a good subtitle
Gus Björklund
Wizard, Progress Software Corporation
Adobe’s (old) Development Process
PhotoShop development
 Waterfall method
•
•
•
•
•
•
•
2
Specify desired features, set ship date
Work on features to “feature complete” date
Fix bugs
Ship beta
Revise features based on beta tests
Fix more bugs
Release
INNOV-9: Adventures in Development Methodologies
© 2007 Progress Software Corporation
the Klingon way
What is this talk of 'release'? Klingons do not make
software 'releases'. Our software 'escapes' leaving a
bloody trail of designers and quality assurance
people in its wake.
Our users will know fear and cower before our
software! Ship it! Ship it and let them flee like the
dogs they are!
3
INNOV-9: Adventures in Development Methodologies
© 2007 Progress Software Corporation
Adobe’s results
PhotoShop development
 Death-march to get features in by date
• work nights and weekends as deadline looms
 Lots of bugs at feature complete
 Fix worst bugs before beta ship
 No time to revise features based on feedback
 Death-march to get enough bugs fixed by
final freeze date
• work nights and weekends as deadline looms
 Buggy product
reference: blogs.adobe.com
4
INNOV-9: Adventures in Development Methodologies
© 2007 Progress Software Corporation
5
INNOV-9: Adventures in Development Methodologies
© 2007 Progress Software Corporation
This Just In …
“The digital signs along the 98 B-line between
downtown Vancouver and Richmond are supposed to
let people waiting at the bus stop know when the next
bus will arrive.
The signs, which are linked to a GPS system on
the buses, haven't been working for the past week,
freezing up and requiring frequent reboots.
...
Siemens has basically thrown up its hands and
say they can't make it work.”
CBC News, March 8, 2007
6
INNOV-9: Adventures in Development Methodologies
© 2007 Progress Software Corporation
Topics
History
Failures
Agile Methods
Results
More Important Things
Call to Action
7
INNOV-9: Adventures in Development Methodologies
© 2007 Progress Software Corporation
A Bit of History
“Those who fail to learn the lessons
history teaches are doomed to repeat the
mistakes of the past.”
8
INNOV-9: Adventures in Development Methodologies
© 2007 Progress Software Corporation
Early days of programming: “Cut and Try”
 code some
 test some
 fix
 code some more
 test, fix
 lather, rinse, repeat
9
INNOV-9: Adventures in Development Methodologies
© 2007 Progress Software Corporation
Programs got bigger.
Chaos ensued
10 INNOV-9: Adventures in Development Methodologies
© 2007 Progress Software Corporation
COBOL was invented.
Business people could create their own
applications and programmers were no longer
needed.
order was restored.
11 INNOV-9: Adventures in Development Methodologies
© 2007 Progress Software Corporation
Fred Brooks: “The Mythical Man Month”
12 INNOV-9: Adventures in Development Methodologies
© 2007 Progress Software Corporation
Harlan Mills: Top-Down Programming
13 INNOV-9: Adventures in Development Methodologies
© 2007 Progress Software Corporation
Edsger Dijkstra: “Goto considered harmful”
14 INNOV-9: Adventures in Development Methodologies
© 2007 Progress Software Corporation
1970: Winston Royce: The “Waterfall Model”
which became US DoD STD-2167
and other standards
15 INNOV-9: Adventures in Development Methodologies
© 2007 Progress Software Corporation
The “waterfall model”
Requirements
Analysis
Design
Coding
Integration
Test / Debug
Installation
Maintenance
16 INNOV-9: Adventures in Development Methodologies
© 2007 Progress Software Corporation
Order was restored.
17 INNOV-9: Adventures in Development Methodologies
© 2007 Progress Software Corporation
Digression: A Survey
 Who uses a formal development process?
 Who uses waterfall?
 Who uses DOD-2167?
 Who uses something else?
18 INNOV-9: Adventures in Development Methodologies
© 2007 Progress Software Corporation
Back to our regularly scheduled program
19 INNOV-9: Adventures in Development Methodologies
© 2007 Progress Software Corporation
Order was restored.
20 INNOV-9: Adventures in Development Methodologies
© 2007 Progress Software Corporation
Waterfall assumes that
 A reasonably well defined set of requirements



if we take the time to understand them
Change will be small and manageable
Integration will go well
The schedule can be met
21 INNOV-9: Adventures in Development Methodologies
© 2007 Progress Software Corporation
Waterfall assumes that
 A reasonably well defined set of requirements



if we take the time to understand them
Change will be small and manageable
Integration will go well
The schedule can be met
22 INNOV-9: Adventures in Development Methodologies
© 2007 Progress Software Corporation
Development “Failures”










1960-1964: OS/360
1981-1994: US Air traffic control system
1995: Denver airport baggage handling system
2000-2005: MS SQL Server 2005
1988: Dbase IV
1994: Progress Version 7
2004: Sainsbury PLC supply chain system
2007: TurboTax online tax filing
2001-2007: Vista
Many, many more.
23 INNOV-9: Adventures in Development Methodologies
© 2007 Progress Software Corporation
Facts
 $ 89 Billion spent on cancelled software


projects
$ 59 Billion more on cost overruns
Of the challenged or cancelled projects, the
average project
• was 189 % over budget
• was 222 % behind schedule
• had 61 % of planned features delivered
That was in 1994. The situation has not improved.
source: Standish Group CHAOS Chronicles
24 INNOV-9: Adventures in Development Methodologies
© 2007 Progress Software Corporation
Why Is Software Development So Hard?
25 INNOV-9: Adventures in Development Methodologies
© 2007 Progress Software Corporation
Common Causes
1. Unrealistic or unarticulated
project goals
7. Use of immature technology
2. Inaccurate estimates of
needed resources
8. Inability to handle the project’s
complexity
3. Badly defined system
requirements
9. Sloppy development practices
4. Poor reporting of project’s
status
10. Poor project management
5. Unmanaged risks
11. Stakeholder politics
6. Poor communication among
customers, developers, and
users
12. Commercial pressures
“Why Software Fails”, Robert N. Charette. IEEE Spectrum
26 INNOV-9: Adventures in Development Methodologies
© 2007 Progress Software Corporation
How Can We Make It Less Hard?
27 INNOV-9: Adventures in Development Methodologies
© 2007 Progress Software Corporation
QUIZ:
What is the 1 most important thing
we need in developing software?
28 INNOV-9: Adventures in Development Methodologies
© 2007 Progress Software Corporation
How do we avoid failures
like the ones that we all know about?
29 INNOV-9: Adventures in Development Methodologies
© 2007 Progress Software Corporation
Agile development methods to the rescue!
30 INNOV-9: Adventures in Development Methodologies
© 2007 Progress Software Corporation
The Manifesto for Agile Software Development,
17 anarchists agree
by Kent Beck, Mike Beedle, Arie van Bennekum,
Alistair Cockburn, Ward Cunningham, Martin
Fowler, James Grenning, Jim Highsmith, Andrew
Hunt, Ron Jeffries, Jon Kern, Brian Marick,
Robert C. Martin, Steve Mellor, Ken Schwaber,
Jeff Sutherland, Dave Thomas
Feb 13, 2001
31 INNOV-9: Adventures in Development Methodologies
© 2007 Progress Software Corporation
Agile manifesto: We follow the following
principles:












Our highest priority is to satisfy the customer through early and continuous
delivery of valuable software.
Welcome changing requirements, even late in development. Agile processes
harness change for the customer's competitive advantage.
Deliver working software frequently, from a couple of weeks to a couple of
months, with a preference to the shorter timescale.
Business people and developers work together daily throughout the project.
Build projects around motivated individuals. Give them the environment and
support they need, and trust them to get the job done.
The most efficient and effective method of conveying information to and within a
development team is face-to-face conversation.
Working software is the primary measure of progress.
Agile processes promote sustainable development. The sponsors, developers
and users should be able to maintain a constant pace indefinitely.
Continuous attention to technical excellence and good design enhances agility.
Simplicity—the art of maximizing the amount of work not done—is essential.
The best architectures, requirements and designs emerge from self-organizing
teams.
At regular intervals, the team reflects on how to become more effective, then
tunes and adjusts its behavior accordingly.
32 INNOV-9: Adventures in Development Methodologies
© 2007 Progress Software Corporation
Agile Manifesto - values
We are uncovering better ways of developing software by doing it and
helping others do it. Through this work we have come to value:
 Individuals and interactions over processes



and tools.
Working software over comprehensive
documentation.
Customer collaboration over contract
negotiation.
Responding to change over following a plan.
That is, while we value the items on the right, we value the items on the left
more.
33 INNOV-9: Adventures in Development Methodologies
© 2007 Progress Software Corporation
How are agile methods different?
 Emphasizes direct communication
 Focuses on working software
 Raises the level of skill
34 INNOV-9: Adventures in Development Methodologies
© 2007 Progress Software Corporation
Agile approaches
 Chief programmer teams
 XP
 Scrum
 Gus’s method
35 INNOV-9: Adventures in Development Methodologies
© 2007 Progress Software Corporation
Chief programmer teams
An old idea that shouldn’t be forgotten
 Team consists of
• Chief programmer
• Backup chief programmer
• Librarian
•
•
•
•
Programmers
Project administrator
Toolsmith
Testers
F.T. Baker, IBM, late 60’s
36 INNOV-9: Adventures in Development Methodologies
© 2007 Progress Software Corporation
Agile approaches
 Chief programmer teams
 XP
 Scrum
 Gus’s method
37 INNOV-9: Adventures in Development Methodologies
© 2007 Progress Software Corporation
Extreme Programming (XP)
XP Values:
 Communication
 Simplicity
 Feedback
 Courage
 Respect
38 INNOV-9: Adventures in Development Methodologies
© 2007 Progress Software Corporation
XP Summarised


Team of 5 to 10 work at one location with customer
representation
Development occurs in frequent iterations
• each is releasable
• each delivers more functionality

Requirements specified as “user stories”
• each is a chunk of functionality user needs


Programmers work in pairs
Requirements, architecture, and design emerge over
the course of the project
39 INNOV-9: Adventures in Development Methodologies
© 2007 Progress Software Corporation
XP Summarised
 In an iteration
• Write automated tests first
• Coding, by pairs of programmers
– follow strict coding standards
– complete when
 all tests pass
 programmers can’t think of any more needed tests
• Refactor
• Demo
40 INNOV-9: Adventures in Development Methodologies
© 2007 Progress Software Corporation
XP works best for
 New or prototype technology
• requirements change frequently
 Research projects
• goal is knowledge gained, not product
 Smaller projects
41 INNOV-9: Adventures in Development Methodologies
© 2007 Progress Software Corporation
Agile approaches
 Chief programmer teams
 XP
 Scrum
 Gus’s method
42 INNOV-9: Adventures in Development Methodologies
© 2007 Progress Software Corporation
Scrum Summary
 Timebox everything
 Work from “backlogs”
• Product backlog
• Sprint backlog
 Short cycles
 Small teams
43 INNOV-9: Adventures in Development Methodologies
© 2007 Progress Software Corporation
Scrum: Teams
 Team of 5 to 9 people
 One member serves as “Scrum Master” to
•
•
•
•
Facilitate meetings
Manage outside interference
Record decisions, track action items
Keep everyone informed
44 INNOV-9: Adventures in Development Methodologies
© 2007 Progress Software Corporation
Scrum: phases
 Review release plans
 Distribution, review and adjustment of product



standards
“Sprints” lasting about 4 weeks
Repeat as many times as necessary
Closure
45 INNOV-9: Adventures in Development Methodologies
© 2007 Progress Software Corporation
Product backlog
ID
Name
Imp
Est
How to demo
Notes
1
Deposit
30
5
Log in, open deposit page,
deposit €10, go to my balance
page and check that it has
increased by €10.
Need UML
sequence
diagram. No
need to worry
about
encryption for
now.
2
See your own
transaction
summary
10
9
Log in, click on “transactions”.
Do a deposit. Go back to
transactions, verify the new
transaction shows up
Use paging to
avoid large
queries.
Design similar
to view users
page
Source: “Scrum and XP from the Trenches”, Henrik Kniberg
46 INNOV-9: Adventures in Development Methodologies
© 2007 Progress Software Corporation
Scrum: sprints
 Plan
 Develop
 Wrap
 Review
 Adjust
47 INNOV-9: Adventures in Development Methodologies
© 2007 Progress Software Corporation
Scrum: Team meetings
 Daily, always at same time
 15 minutes
 3 questions only, by Scrum master
• What have you done since last meeting?
• What impedes your work?
• What will you do by next meeting?
 Follow-up meetings held after, if needed
48 INNOV-9: Adventures in Development Methodologies
© 2007 Progress Software Corporation
Scrum: advantages








Product becomes series of manageable chunks
Progress made, even if requirements not stable
Everything visible to everyone
Communication improves
Success shared along the way
Customers see how product actually works
Strong customer relationships develop
Culture created where everyone expects project to
succeed
49 INNOV-9: Adventures in Development Methodologies
© 2007 Progress Software Corporation
Agile approaches
 Chief programmer teams
 XP
 Scrum
 Gus’s method
50 INNOV-9: Adventures in Development Methodologies
© 2007 Progress Software Corporation
Gus’ Method
 Think
 Think more
 Think still more
 Write code
 Test, fix
 Write code again, test
 Write code again, test
 Doc
Not recommended for general use. Works for me.
51 INNOV-9: Adventures in Development Methodologies
© 2007 Progress Software Corporation
Adobe’s Recent Experience
with a new development process
52 INNOV-9: Adventures in Development Methodologies
© 2007 Progress Software Corporation
Adobe: the new process
PhotoShop CS3
 Incremental development
• Work on a few features at a time, finish them
before moving on
 Any dev with 20 bugs can’t work on features
 Only complete features can be merged
 Ready to ship within short notice
• some features may not be there
• everything that is there is complete and works
 More beta cycles
53 INNOV-9: Adventures in Development Methodologies
© 2007 Progress Software Corporation
Adobe: results with new dev process
PhotoShop CS3
 Higher quality
• Fewer bugs overall
• Fewer bugs in mid cycle
• Much more useful (and earlier) beta cycles
 More predictable dev cycles
 Can demo product at almost any stage
 No more nights and weekends
54 INNOV-9: Adventures in Development Methodologies
© 2007 Progress Software Corporation
The question I know
you are all wanting to ask:
55 INNOV-9: Adventures in Development Methodologies
© 2007 Progress Software Corporation
Does this stuff actually work?
 Yes. Agile methods succeed at
• Fidelity, VA Software, Medtronic, Adobe, IBM,
Sapient, Yahoo, SAP, BMC Software,
Symantec, Verizon, Microsoft, others
 Results can be excellent
 Agile scales
 Agile methods will NOT solve every problem.
56 INNOV-9: Adventures in Development Methodologies
© 2007 Progress Software Corporation
Agile Works
Standish Group:
16 percent of waterfall projects succeed
41 percent of agile projects succeed !!!
(2006 Chaos report)
Forrester:
Agile works.
17% of companies using agile.
(2006 Agile Adoption Survey)
57 INNOV-9: Adventures in Development Methodologies
© 2007 Progress Software Corporation
Agile Development Myths
 No process
 No documentation
 Only works for small projects
 Only works for small teams
 Chaotic
58 INNOV-9: Adventures in Development Methodologies
© 2007 Progress Software Corporation
Agile Development Myths
 No process
 No documentation
 Only works for small projects
 Only works for small teams
 Chaotic
59 INNOV-9: Adventures in Development Methodologies
© 2007 Progress Software Corporation
There’s something else to consider …
"A great lathe operator commands several
times the wage of an average lathe operator,
but a great writer of software code is worth
10,000 times the price of an average
software writer.”
Bill Gates
60 INNOV-9: Adventures in Development Methodologies
© 2007 Progress Software Corporation
Methodology/process isn’t everything
People are the most important thing
 Huge difference between best and worst
• 10 x and more variance in productivity
• 10 x and more variance in quality
 Motivation
 Experience
 Work environment
• Top performers have quiet work area and few
interruptions
http://www.stevemcconnell.com/ieeesoftware/eic14.htm
61 INNOV-9: Adventures in Development Methodologies
© 2007 Progress Software Corporation
Call to Action
 Try something on a small scale first
• Share your stories
 A given methodology may not suit your or



your development teams
Adapt to suit your needs
Adapt and adopt, based on your results
Read this:
“Scrum and XP from the Trenches”, Henrik Kniberg
www.crisp.se/henrik.kniberg/ScrumAndXpFromTheTrenches.pdf
62 INNOV-9: Adventures in Development Methodologies
© 2007 Progress Software Corporation
Homework



Books
• “The Mythical Man Month”, Fred Brooks
• “Scaling Software Agility”, Dean Leffingwell
• “Agile Software Development”, Alistair Cockburn
Paper
• “Chief Programmer Team Management of Production
Programming”, F.T. Baker, IBM Systems Journal, Vol 11,
No 1, 1972
Wikipedia articles (www.wikipedia.org)
•
•
•
•
Agile software development
Waterfall Method
Extreme Programming
Software development process
63 INNOV-9: Adventures in Development Methodologies
© 2007 Progress Software Corporation
Answers
64 INNOV-9: Adventures in Development Methodologies
© 2007 Progress Software Corporation
Download