Agile Software Development using Scrum - PowerPoint PPT Presentation

agile software development using scrum n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Agile Software Development using Scrum PowerPoint Presentation
Download Presentation
Agile Software Development using Scrum

play fullscreen
1 / 82
Agile Software Development using Scrum
306 Views
Download Presentation
macha
Download Presentation

Agile Software Development using Scrum

- - - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

  1. Agile Software Development using Scrum Derek MathiesonGroup LeaderAdvanced Information System CERN – Geneva, Switzerland

  2. Agenda • Traditional Software Development • What is Agile? • The Agile Manifesto • Agile Methods • SCRUM • SCRUM @ CERN

  3. Traditional Development

  4. Waterfall Model Requirements Design Implementation Verification Maintenance Time

  5. Waterfall in Practice Safeguard - Ballistic Missile Defence System ‘By the time the 6-year anti-missile system project was completed, the new missiles were faster than the anti-missile missiles’

  6. Spiral Model C u m u l a t i v e c o s t 2 . I d e n t i f y a nd P r og r e s s 1 . D e t e rm i n e r e s o l v e r i s k s ob j e c t i v e s Operational R e v i e w R e q u i r e m e n t s Prototype 1 Prototype 2 Prototype p l a n C o n ce p t o f C o n c e p t o f D e t a i l e d r e q u i r e m e n t s o p e r a t i o n D r a f t R e q u i r e m e n t s d e s i g n C o d e V e r i f i c a t i o n D e v e l o p m e n t & V a l i d a t i o n p l a n I n t e g r a t i o n V e r i f i c a t i o n T e s t p l a n & V a l i d a t i o n T e s t I m p l e m e n t a t i o n 4 . P l a n t h e R e l e as e n e x t it e r a t i o n 3 . D e ve l op m e n t a nd T e s t

  7. Why Software Is Different? • Software is Complex • Technology Changes Rapidly • Requirements are Incomplete • Change is Considered Easy • Software Design is Research • Construction is Actually Design • Change is Inevitable

  8. Software is Complex “Computer programs are the most intricate, delicately balanced and finely interwoven of all the products of human industry to date” [James Gleick1992]

  9. Software is Complex

  10. Software is Complex

  11. Software is Complex

  12. Software is Complex

  13. Why Software Is Different? • Software is Complex • Technology Changes Rapidly • Requirements are Incomplete • Change is Considered Easy • Software Design is Research • Construction is Actually Design • Change is Inevitable

  14. Technology Changes Rapidly

  15. Requirements Are Incomplete

  16. An Experiment

  17. Project Description ‘Personal Transport Device’ • Usable outside • Weather proof. • Reasonably Strong • Usable for several years. • Stable, relatively easy to use • Probably 4 wheels?

  18. Implementation ?

  19. “Many projects fail because their developers fail to build the right thing” —Grady Booch

  20. Why Software Is Different? • Software is Complex • Technology Changes Rapidly • Requirements are Incomplete • Change is Considered Easy • Software Design is Research • Construction is Actually Design • Change is Inevitable

  21. Cost of Change Curve

  22. Why Software Is Different? • Software is Complex • Technology Changes Rapidly • Requirements are Incomplete • Change is Considered Easy • Software Design is Research • Construction is Actually Design • Change is Inevitable

  23. Introducing Agile Development

  24. What is Agile?

  25. What is Agile? Agile: • Having the faculty of quick motion; nimble, active, ready. • Agile software development: • A group of software development methodologies based on iterative and incremental development, where requirements and solutions evolve through collaboration between self-organizing, cross-functional teams. (Oxford English Dictionary) (Wikipedia)

  26. Why Agile?

  27. The Iron Triangle Scope Traditional Development PickTwo Quality Schedule

  28. Software Delivery The Chaos ReportStandish Group (1995)

  29. The Agile Manifesto (2001) • Early and continuous delivery of valuable software • Welcome Change • Deliver Often • Customers and developers must work together • Best possible people, tools and workplace • Emphasis on face-to-face communication • Working software is the best measure of progress • Constant sustainable progress • Focus on technical excellence and good design • Simplicity • Self-organizing teams • Regular reflection on improvements

  30. The 4 Agile Values • Individuals and interactions over processes and tools • Working software over comprehensive documentation • Customer collaboration over contract negotiation • Responding to change over following a plan

  31. The Iron Triangle Scope Traditional Development PickTwo Agile Development Quality Schedule

  32. Iterative Development • Regular releases to customer • ‘Time-boxing’ • Normally 2 – 6 weeks • Adjust design as the project progresses Analysis & Design Requirements Implementation Planning Initial Planning Deployment Evaluation Testing

  33. Agile Methods • Scrum • Feature Driven Development (FDD) • Lean • Extreme Programming (XP) • RUP • Kanban

  34. SCRUM

  35. What is SCRUM?

  36. What is SCRUM? • Scrum is a framework for iterative, incremental development using cross-functional, self-managing teams. It is built on industry best practices, lean thinking, and empirical process control. Ken Schwaber, 2006 co-creator of SCRUM

  37. Method Comparison Jeff Sutherland, ‘The Scrum Papers’ 2010 co-creator of SCRUM

  38. SCRUM in Pictures

  39. SCRUM in Practice

  40. EDH Statistics 3.00 25,000 60,000 2.50 Documents per month Distinct Users per month Signatures per month Ratio Signatures/Document 20,000 50,000 2.00 40,000 15,000 1.50 30,000 10,000 1.00 20,000 5,000 0.50 10,000 - - 0.00 • 14,500 active users • 25k Documents/month • 60k Signatures/month

  41. EDH Development Team • 4 Staff • 3 Project Associates • 1 Fellows • 1 or 2 Students (9 month contract) • 1.8 million lines of code • ~1000 3rd line support calls/year

  42. EDH Development B.C. Before SCRUM C. • B. • Constant Developer Interruptions • Low efficiency • Delivery was often late • Poor estimation – many unknowns • Scope Creep • Specification constantly changing • Everything is Free • Some features never used

  43. SCRUM Vocabulary • Product Owner • Product Backlog • Scrum Team • Sprint Planning • Scrum Master • Daily Scrum • Sprint Backlog • Sprint Review Meeting

  44. Chickens and Pigs... Involved Committed

  45. The Product Owner • Typically a Product Manager, Internal Customer, etc. • Responsible for: • Providing and maintain a prioritised “Product Backlog” • Responsive to questions during a sprint

  46. The Product Backlog • A list of all desired work on the project • Usually a combination of • story-based work: “let user search and replace” • task-based work: “improve exception handling” • Prioritised by the Product Owner • Priority should be (ideally) based on “Business Value” • “Cost” assigned by the Scrum Team

  47. The Scrum Team • Teams are self-organising • Cross-functional • QA, Programmers, UI Designers, Technical Writers, etc. • Assign Cost to each Item on the Product Backlog • Commit to the “Sprint Goal”

  48. Agile Estimation • Planning Poker

  49. The Scrum Master • Responsible for enacting Scrum values and practices (The Process) • Main job is to remove obstacles which affect the team • Typical obstacles could be: • My ____ broke and I need a new one. • I still haven't got the software I ordered. • I need help debugging a problem with ____. • I'm struggling to learn ____ and would like help. • The GL has asked me to work on something else "for a day or two."

  50. The Sprint Planning Meeting • Attended by: • Product Owner, Scrum Master, Scrum Team, and any interested and appropriate management or customer representatives. • Product Owner describes the highest priority features to the team. • Collectively the Scrum Team and the Product Owner define a “Sprint Goal”