1 / 64

INNOV-9: Adventures in Development Methodologies

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

gazit
Télécharger la présentation

INNOV-9: Adventures in Development Methodologies

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. INNOV-9: Adventures in Development Methodologies there’s no subtitle like a good subtitle Gus Björklund Wizard, Progress Software Corporation

  2. 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

  3. 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

  4. 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

  5. INNOV-9: Adventures in Development Methodologies

  6. 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

  7. Topics History Failures Agile Methods Results More Important Things Call to Action INNOV-9: Adventures in Development Methodologies

  8. 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

  9. 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

  10. Programs got bigger.Chaos ensued INNOV-9: Adventures in Development Methodologies

  11. 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

  12. Fred Brooks: “The Mythical Man Month” INNOV-9: Adventures in Development Methodologies

  13. Harlan Mills: Top-Down Programming INNOV-9: Adventures in Development Methodologies

  14. Edsger Dijkstra: “Goto considered harmful” INNOV-9: Adventures in Development Methodologies

  15. 1970: Winston Royce: The “Waterfall Model” which became US DoD STD-2167and other standards INNOV-9: Adventures in Development Methodologies

  16. Requirements Design Coding Integration Test / Debug Installation Analysis Maintenance The “waterfall model” INNOV-9: Adventures in Development Methodologies

  17. Order was restored. INNOV-9: Adventures in Development Methodologies

  18. 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

  19. Back to our regularly scheduled program INNOV-9: Adventures in Development Methodologies

  20. Order was restored. INNOV-9: Adventures in Development Methodologies

  21. 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

  22. 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

  23. 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

  24. 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

  25. Why Is Software Development So Hard? INNOV-9: Adventures in Development Methodologies

  26. Common Causes “Why Software Fails”, Robert N. Charette. IEEE Spectrum INNOV-9: Adventures in Development Methodologies

  27. How Can We Make It Less Hard? INNOV-9: Adventures in Development Methodologies

  28. QUIZ: What is the 1 most important thing we need in developing software? INNOV-9: Adventures in Development Methodologies

  29. How do we avoid failureslike the ones that we all know about? INNOV-9: Adventures in Development Methodologies

  30. Agile development methods to the rescue! INNOV-9: Adventures in Development Methodologies

  31. 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

  32. 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

  33. 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

  34. How are agile methods different? • Emphasizes direct communication • Focuses on working software • Raises the level of skill INNOV-9: Adventures in Development Methodologies

  35. Agile approaches • Chief programmer teams • XP • Scrum • Gus’s method INNOV-9: Adventures in Development Methodologies

  36. 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

  37. Agile approaches • Chief programmer teams • XP • Scrum • Gus’s method INNOV-9: Adventures in Development Methodologies

  38. Extreme Programming (XP) XP Values: • Communication • Simplicity • Feedback • Courage • Respect INNOV-9: Adventures in Development Methodologies

  39. 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

  40. 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

  41. 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

  42. Agile approaches • Chief programmer teams • XP • Scrum • Gus’s method INNOV-9: Adventures in Development Methodologies

  43. Scrum Summary • Timebox everything • Work from “backlogs” • Product backlog • Sprint backlog • Short cycles • Small teams INNOV-9: Adventures in Development Methodologies

  44. 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

  45. 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

  46. Product backlog Source: “Scrum and XP from the Trenches”, Henrik Kniberg INNOV-9: Adventures in Development Methodologies

  47. Scrum: sprints • Plan • Develop • Wrap • Review • Adjust INNOV-9: Adventures in Development Methodologies

  48. 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

  49. 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

  50. Agile approaches • Chief programmer teams • XP • Scrum • Gus’s method INNOV-9: Adventures in Development Methodologies

More Related