800 likes | 1k Views
Agile Software Development using Scrum. Derek Mathieson Group Leader Advanced Information System CERN – Geneva, Switzerland. Speaker Background. Currently: Group Leader of AIS since January 2010 Previously: Section Leader EDH (2000) Software Developer at CERN (1994)
E N D
Agile Software Development using Scrum Derek MathiesonGroup LeaderAdvanced Information System CERN – Geneva, Switzerland
Speaker Background • Currently: • Group Leader of AIS since January 2010 • Previously: • Section Leader EDH (2000) • Software Developer at CERN (1994) • Software Developer at SSC in Texas (1992) • CERN Fellow (1990) • CERN Technical Student (1989) • Software Developer (1986) Frequently Asked Questions on WWW FREQUENTLY ASKED QUESTIONS ON W3 An FAQ list is really a cop-out from managed information. You should be able to find everything you want to know by browsing from the WWW project page, as everything should be arranged in a logical way. Here though are things which maybe didn't fit into the structure, with pointers to the answers which maybe did. Its an experiment, started May 92. The questioners are anonymous. I am just starting: how do I find out more?[1] How does www keep track of the available servers?[2] How does W3 compare with WAIS and Gopher[3] ? How do I create my own server[4] ? 1-10, Up, <RETURN> for more, Quit, or Help:
Agenda • Traditional Software Development • What is Agile? • The Agile Manifesto • Agile Methods • SCRUM • SCRUM @ CERN
Waterfall Model Requirements Design Implementation Verification Maintenance Time
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
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
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]
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
Project Description ‘Personal Transport Device’ • Usable outside • Weather proof. • Reasonably Strong • Usable for several years. • Stable, relativly easy to use • Probably 4 wheels?
“Many projects fail because their developers fail to build the right thing” —Grady Booch
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
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)
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
The Iron Triangle Scope Traditional Development PickTwo Quality Schedule
Software Delivery The Chaos ReportStandish Group (1995)
The Iron Triangle Scope Traditional Development PickTwo Agile Development Quality Schedule
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
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
Agile Methods • Scrum • Feature Driven Development (FDD) • Lean • Extreme Programming (XP) • RUP • Kanban
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
Method Comparison Jeff Sutherland, ‘The Scrum Papers’ 2010 co-creator of SCRUM
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
EDH Development Team • 4 Staff • 2 Project Associates • 2 Fellows • 2 Students (9 month contract) • 1.8 million lines of code • ~1000 3rd line support calls/year
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
SCRUM Vocabulary • Product Owner • Product Backlog • Scrum Team • Sprint Planning • Scrum Master • Daily Scrum • Sprint Backlog • Sprint Review Meeting
Chickens and Pigs... Involved Committed
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
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
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”
Agile Estimation • Planning Poker
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."
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”
The Sprint Goal • A short “theme” for the sprint: • The SCRUM Team commit to this goal. “Create Reports.” “Create Working Form.” “Implement Workflow.” “Implement Bulk Emailing.”
The “Sprint” • Fixed “Time-Box” (we chose 2 weeks) • Product is designed, coded, and tested during the sprint • Daily Scrum Meetings • Produce demonstratable, working, new functionality.