Presentation is loading. Please wait.

Presentation is loading. Please wait.

Criticalspan.com Agile Software Development Chris Platner 27-Jan-2010.

Similar presentations


Presentation on theme: "Criticalspan.com Agile Software Development Chris Platner 27-Jan-2010."— Presentation transcript:

1 criticalspan.com Agile Software Development Chris Platner 27-Jan-2010

2 criticalspan.com Who am I? ›14 years at Serena, a maker of Application Lifecycle Management Tools ›Worked with 2 co-inventors of Scrum ›Principal at Critical Span, a software consulting firm 2 27-Jan-2010

3 criticalspan.com Outline ›Do I really need process? ›Common Processes Overview ›Agile Scrum –Activities –Roles –Best Practices 27-Jan-2010 3

4 criticalspan.com Who cares about Process? 4 if (you_write_software) { you_have_a_software_process = true; } 27-Jan-2010

5 criticalspan.com The Main Goal ›The main goal should always be to deliver quality, tested software that satisfies the customer, and do it in a sustainable manner 27-Jan-2010 5

6 criticalspan.com Okay, What Processes Are There? ›Chaotic –None* ›Planned –Waterfall ›Iterative –Agile ›and many more… –Capability Maturity Model – Integrated (CMMI) –Extreme Programming (XP) –Crystal –RUP –Spiral –etc. 6 27-Jan-2010

7 criticalspan.com We Don’t Need No Stinkin’ Process 7 27-Jan-2010

8 criticalspan.com We Don’t Need No Stinkin’ Process ›Q: Let’s just Code Like %$#&*!! ›A: Yes, but… –Bug fixing is almost always postponed until the end –Software is often very late, low quality, or both –Delivered software is often difficult to maintain –Requires lots of ‘commitment’, and is not sustainable 8 27-Jan-2010

9 criticalspan.com Waterfall 9 Requirements Design Coding Integration Testing Installation Operation/ Maintenance 27-Jan-2010

10 criticalspan.com Waterfall ›Q: Let’s figure out everything before we start coding! ›A: Not Likely… –Users’ requirements change over time – “That’s just what I asked for, but not what I want” –Strict waterfall doesn’t allow feedback after passing to next phase. Learning in later phases can’t easily be passed back to earlier ones. 10 27-Jan-2010

11 criticalspan.com Agile –An iterative process –Short iterations –Emphasis on interaction with a customer –Practices TDD Pair Programming Continuous Integration 27-Jan-2010 11

12 criticalspan.com Agile ›Manifesto for Agile Software Development –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 there is value in the items on the right, we value the items on the left more. 27-Jan-2010 12 from http://agilemanifesto.org/http://agilemanifesto.org/

13 criticalspan.com Agile Scrum ›Scrum is one way of realizing Agile –Daily Scrum meetings –2-4 week iterations called sprints –Relies heavily on smart, flexible people –Self-organizing teams –Sustainable –Always have a shippable product 27-Jan-2010 13

14 criticalspan.com Who uses Scrum? ›Independent Software Vendors (ISVs) ›Fortune 100 companies ›Small startups ›Internal development ›Contract development ›Companies using Scrum –Adobe, Amdocs, F5 Networks, General Electric, HP, Intel, Intuit, LexisNexis, Microsoft, Motorola, Oracle, Serena, Siemens, Sun Microsystems 27-Jan-2010 14

15 criticalspan.com What has Scrum been used for? ›FDA-approved, life-critical software for x-rays and MRIs ›Enterprise workflow systems ›Financial payment applications ›Biotech ›Call center systems ›Tunable laser subsystems for fiber optic networks ›Application development environments ›24x7 with 99.99999% uptime requirements ›Multi-terabyte database applications ›Media-neutral magazine products ›Web news products 27-Jan-2010 15

16 criticalspan.com Where Did Scrum Come From? ›Jeff Sutherland, John Scumniotales, and Jeff McKenna –Initial Scrums at Easel Corp in 1993 ›Ken Schwaber –ADM ›Initial definitions of Scrum at OOPSLA 96 with Sutherland 27-Jan-2010 16

17 criticalspan.com Agile Scrum Overview ›Roles ›Activities/Rhythms ›Artifacts 27-Jan-2010 17

18 criticalspan.com Agile Scrum Overview 18 27-Jan-2010

19 criticalspan.com Primary Roles ›The Team –Does the work of designing, implementing, testing ›Scrum Master –Runs the Scrum meetings ›Product Owner –Represents the customer ›Pigs –The Team, Scrum Master ›Chickens –Product Owner, Customers, Managers 27-Jan-2010 19

20 criticalspan.com Chickens and Pigs 27-Jan-2010 20

21 criticalspan.com The Team, Illustrated ›Short video on teamwork from the IT Crowd: http://www.youtube.com/watch?v=pGFGD5pj03M http://www.youtube.com/watch?v=pGFGD5pj03M 27-Jan-2010 21

22 criticalspan.com The Team ›Typically 5-10 people ›Cross-functional –Programmers, QA, UI Designers, etc. ›Teams are self-organizing –Primary focus is to meet sprint goals ›Membership can change only between sprints 27-Jan-2010 22

23 criticalspan.com The Scrum Master ›Represents management to the project ›Typically filled by a Project Manager or Team Leader ›Responsible for enacting Scrum values and practices ›Main job is to remove impediments 27-Jan-2010 23

24 criticalspan.com The Product Owner ›Represents the customer ›Makes sure the ‘Right Things’ are in the backlog ›Writes and prioritizes User Stories 27-Jan-2010 24

25 criticalspan.com Activities ›Story Time* ›Sprint Planning ›Sprinting ›Daily Scrum Meeting –3 questions ›Sprint Review –Quick demo of work completed ›Sprint Retrospective –Continuous Improvement 27-Jan-2010 25

26 criticalspan.com Story Time ›The Team reviews User Stories with the Product Owner ›Initial estimates of story size 27-Jan-2010 26

27 criticalspan.com Sprint Planning ›Select User Stories or items to be worked on for the next sprint –Often, the Sprint will have a Theme ›Highest priority items are taken from the Product Backlog and placed on the Sprint Backlog ›The Team votes on how long each item will take –Planning Poker –Can use either User Stories or Tasks ›Planning is over when The Team is satisfied with the results 27-Jan-2010 27

28 criticalspan.com Sprint ›Analogous to ‘iterations’ ›2-4 weeks ›Designing, coding, and testing occur during the sprint ›No changes can occur in a sprint 27-Jan-2010 28

29 criticalspan.com Daily Scrum ›Part of the daily rhythm ›Always starts on time, and lasts only 15 minutes (should be less) ›Only pigs can talk ›3 questions –What did you work on yesterday –What will you work on today –Any blocking issues* 27-Jan-2010 29

30 criticalspan.com Sprint Review ›Demo all the completed User Stories –Only complete, ‘approved’ stories are demonstrated ›Minimal preparation (and no faking) ›Participants –The Team –Customers –Management –Product Owner –Other engineers 27-Jan-2010 30

31 criticalspan.com Sprint Retrospective ›Review the last sprint ›What went well? ›What could be improved? ›Choose the improvements to make in the next sprint 27-Jan-2010 31

32 criticalspan.com Artifacts ›Product Backlog ›Sprint Backlog ›Burndown Chart 27-Jan-2010 32

33 criticalspan.com Product Backlog ›A list of User Stories to be delivered –May also contain Epics –Stories may be organized into themes ›Usually a combination of –User Stories (‘As a…’) –Can also contain tasks ›List is prioritized by the Product Owner –Typically a Product Manager, Marketing, Internal Customer, etc. 27-Jan-2010 33

34 criticalspan.com Product Backlog 27-Jan-2010 34

35 criticalspan.com Sprint Backlog ›A list of Tasks or User Stories that The Team has agreed to complete 27-Jan-2010 35

36 criticalspan.com Sprint Backlog 27-Jan-2010 36

37 criticalspan.com Burndown Chart ›Shows progress during the sprint 27-Jan-2010 37

38 criticalspan.com Other Important Things ›User Story ›Planning Poker ›The meaning of Done ›TDD ›Continuous Integration ›Velocity ›Spike ›Theme ›Epic ›Scalability 27-Jan-2010 38

39 criticalspan.com User Story ›A User Story is a requirement that is written in customer’s language ›Typical format is ‘As a [user/role], I want [goal/function], so that [reason]’ 27-Jan-2010 39

40 criticalspan.com Planning Poker ›Quick way to estimate relative task size –Sizes are chosen from Fibonacci numbers (i.e. 1, 2, 3, 5, 8, 13, etc.) ›Each Task or User Story is estimated by the team ›The Team must reach consensus on the relative sizes 27-Jan-2010 40

41 criticalspan.com The Meaning of Done ›Defining ‘done’ is critical: –Coded –Tested (unit and functional) –Reviewed –(possibly) Documented 27-Jan-2010 41

42 criticalspan.com TDD ›Test Driven Development –Writing Tests will improve the design and stability of the code –Only writing enough code to make a test pass reduces waste ›Process –Write a test –Run the (failing) test –Write some code –Run the (passing) test 27-Jan-2010 42

43 criticalspan.com TDD ›Use frameworks and mock objects ›Kinds of tests –Unit –Integration –Functional 27-Jan-2010 43

44 criticalspan.com Continuous Integration ›A set of practices around software builds –Commit often –Build and test each commit ›Tools: –Hudson –CruiseControl 27-Jan-2010 44

45 criticalspan.com Velocity ›The amount of work that a Team can handle in one sprint. ›Estimated from past performance 27-Jan-2010 45

46 criticalspan.com Spike ›A time-boxed period of research and development ›May be used for proof of concept ›No deliverable for a product 27-Jan-2010 46

47 criticalspan.com Theme ›A group of User Stories for related functionality 27-Jan-2010 47

48 criticalspan.com Epic ›A large User Story, especially one that is a lower priority, and has not been broken into more detailed, smaller User Stories 27-Jan-2010 48

49 criticalspan.com Scalability ›Typical Scrum team is 5-10 people ›Sutherland used Scrum in groups of 600+ ›Cohn used in groups 100+ 27-Jan-2010 49

50 criticalspan.com Where to go next? ›Agile Scrum –http://www.mountaingoatsoftware.com/scrum –http://www.controlchaos.com –Agile Software Development with Scrum (Ken Schwaber and Mike Beedle) –Agile Project Management with Scrum (Ken Schwaber and Mike Beedle) ›Agile in General –http://www.agilealliance.com 27-Jan-2010 50

51 criticalspan.com 51 Other References ›Ruminations on C++, Andrew Koenig, Barbara Moo, 1997 –Excellent discussion of why small projects are often successful, while larger ones are not. Read all of chapter 2. ›Agile Software Development, Alistair Cockburn, 2002 –Great introduction to agile development. ›Software Project Survival Guide, Steve McConnell, 1998 –If you want to be a manager, or understand managers, Steve’s books are must-have’s. ›Rapid Development – Taming Wild Software Schedules, Steve McConnell, 1996 ›Martin Fowler’s Writings – Many interesting articles on agile methodologies. See http://www.martinfowler.com, http://thoughtworks.com/library/newMethodology.pdfhttp://www.martinfowler.com http://thoughtworks.com/library/newMethodology.pdf 27-Jan-2010

52 criticalspan.com Thank You! ›Q&A 27-Jan-2010 52


Download ppt "Criticalspan.com Agile Software Development Chris Platner 27-Jan-2010."

Similar presentations


Ads by Google