640 likes | 774 Views
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 Specify desired features, set ship date
E N D
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 • 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
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! INNOV-9: Adventures in Development Methodologies
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 INNOV-9: Adventures in Development Methodologies
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 INNOV-9: Adventures in Development Methodologies
Topics History Failures Agile Methods Results More Important Things Call to Action INNOV-9: Adventures in Development Methodologies
A Bit of History “Those who fail to learn the lessons history teaches are doomed to repeat the mistakes of the past.” INNOV-9: Adventures in Development Methodologies
Early days of programming: “Cut and Try” • code some • test some • fix • code some more • test, fix • lather, rinse, repeat INNOV-9: Adventures in Development Methodologies
Programs got bigger.Chaos ensued INNOV-9: Adventures in Development Methodologies
COBOL was invented. Business people could create their own applications and programmers were no longer needed. order was restored. INNOV-9: Adventures in Development Methodologies
Fred Brooks: “The Mythical Man Month” INNOV-9: Adventures in Development Methodologies
Harlan Mills: Top-Down Programming INNOV-9: Adventures in Development Methodologies
Edsger Dijkstra: “Goto considered harmful” INNOV-9: Adventures in Development Methodologies
1970: Winston Royce: The “Waterfall Model” which became US DoD STD-2167and other standards INNOV-9: Adventures in Development Methodologies
Requirements Design Coding Integration Test / Debug Installation Analysis Maintenance The “waterfall model” INNOV-9: Adventures in Development Methodologies
Order was restored. INNOV-9: Adventures in Development Methodologies
Digression: A Survey • Who uses a formal development process? • Who uses waterfall? • Who uses DOD-2167? • Who uses something else? INNOV-9: Adventures in Development Methodologies
Back to our regularly scheduled program INNOV-9: Adventures in Development Methodologies
Order was restored. INNOV-9: Adventures in Development Methodologies
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 INNOV-9: Adventures in Development Methodologies
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 INNOV-9: Adventures in Development Methodologies
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. INNOV-9: Adventures in Development Methodologies
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 INNOV-9: Adventures in Development Methodologies
Why Is Software Development So Hard? INNOV-9: Adventures in Development Methodologies
Common Causes “Why Software Fails”, Robert N. Charette. IEEE Spectrum INNOV-9: Adventures in Development Methodologies
How Can We Make It Less Hard? INNOV-9: Adventures in Development Methodologies
QUIZ: What is the 1 most important thing we need in developing software? INNOV-9: Adventures in Development Methodologies
How do we avoid failureslike the ones that we all know about? INNOV-9: Adventures in Development Methodologies
Agile development methods to the rescue! INNOV-9: Adventures in Development Methodologies
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 INNOV-9: Adventures in Development Methodologies
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. INNOV-9: Adventures in Development Methodologies
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. INNOV-9: Adventures in Development Methodologies
How are agile methods different? • Emphasizes direct communication • Focuses on working software • Raises the level of skill INNOV-9: Adventures in Development Methodologies
Agile approaches • Chief programmer teams • XP • Scrum • Gus’s method INNOV-9: Adventures in Development Methodologies
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 INNOV-9: Adventures in Development Methodologies
Agile approaches • Chief programmer teams • XP • Scrum • Gus’s method INNOV-9: Adventures in Development Methodologies
Extreme Programming (XP) XP Values: • Communication • Simplicity • Feedback • Courage • Respect INNOV-9: Adventures in Development Methodologies
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 INNOV-9: Adventures in Development Methodologies
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 INNOV-9: Adventures in Development Methodologies
XP works best for • New or prototype technology • requirements change frequently • Research projects • goal is knowledge gained, not product • Smaller projects INNOV-9: Adventures in Development Methodologies
Agile approaches • Chief programmer teams • XP • Scrum • Gus’s method INNOV-9: Adventures in Development Methodologies
Scrum Summary • Timebox everything • Work from “backlogs” • Product backlog • Sprint backlog • Short cycles • Small teams INNOV-9: Adventures in Development Methodologies
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 INNOV-9: Adventures in Development Methodologies
Scrum: phases • Review release plans • Distribution, review and adjustment of product standards • “Sprints” lasting about 4 weeks • Repeat as many times as necessary • Closure INNOV-9: Adventures in Development Methodologies
Product backlog Source: “Scrum and XP from the Trenches”, Henrik Kniberg INNOV-9: Adventures in Development Methodologies
Scrum: sprints • Plan • Develop • Wrap • Review • Adjust INNOV-9: Adventures in Development Methodologies
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 INNOV-9: Adventures in Development Methodologies
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 INNOV-9: Adventures in Development Methodologies
Agile approaches • Chief programmer teams • XP • Scrum • Gus’s method INNOV-9: Adventures in Development Methodologies