820 likes | 1.21k Views
Agile Software Development using Scrum. Derek Mathieson Group Leader Advanced Information System CERN – Geneva, Switzerland. Agenda. Traditional Software Development What is Agile? The Agile Manifesto Agile Methods SCRUM SCRUM @ CERN. Traditional Development. Waterfall Model.
E N D
Agile Software Development using Scrum Derek MathiesonGroup LeaderAdvanced Information System CERN – Geneva, Switzerland
Agenda • Traditional Software Development • What is Agile? • The Agile Manifesto • Agile Methods • SCRUM • SCRUM @ CERN
Waterfall Model Requirements Design Implementation Verification Maintenance Time
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’
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, relatively 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
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)
The Iron Triangle Scope Traditional Development PickTwo Quality Schedule
Software Delivery The Chaos ReportStandish Group (1995)
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
The Iron Triangle Scope Traditional Development PickTwo Agile Development Quality Schedule
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
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 • 3 Project Associates • 1 Fellows • 1 or 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”