adopting scrum
Post on 17-Oct-2014
10.124 views
DESCRIPTION
Adopting ScrumTRANSCRIPT
Agile Software Development:Adopting SCRUM
© SCRUMguideswww.scrumguides.com
Alexey Krivitsky, Tim Yevgrashyn
A short version of a two-day class
Details are available at www.scrumguides.com
Lviv, 8 Feb 2008
Agile Software Development: Adopting SCRUM ©SCRUMguides2
Who We Are?
Ukrainian Agile communitywww.agileukraine.org
SCRUM trainings and coachingwww.scrumguides.com
SCRUM Certifications (CSM)www.scrum.com.ua
Agile Software Development: Adopting SCRUM ©SCRUMguides3
Our Ground Rules: Can we all agree on this please?
No Laptopsyes we know how hard it is … ☺
Cell phones on silent modeif you need to talk, please leave the class for a whileBe active, participateuse our knowledge and your time to maximize your returns
Don’t interrupt each otherone dialog per time
Learn by asking questionswe promise to address all your questions
Thank You!
Agile Software Development: Adopting SCRUM ©SCRUMguides5
What’s in it for you?
Who of you has been using SCRUM?
Who of you is going to use SCRUM?
Who of you is never going to use it? :)
Agile Software Development: Adopting SCRUM ©SCRUMguides7
Agenda
Why AgileWhat is SCRUMHow to adopt Agile with SCRUMQ/A
Agile Software Development: Adopting SCRUM ©SCRUMguides9
How long are you in the business?
Agile Software Development: Adopting SCRUM ©SCRUMguides10
30 years ago (in the 70s)…
To know binary code, assembler languagesTo solve math tasks…
To look smart
Agile Software Development: Adopting SCRUM ©SCRUMguides11
10-15 years ago (in the 90s)…
To be good at documenting requirementsTo use templates (like the ones from RUP)To try to predict the future by drawing Gantt charts, project work-breakdown structures (WBS)To model and talk UML
To look stable
Agile Software Development: Adopting SCRUM ©SCRUMguides12
Today
To make quick and regular releases of software that solves business challengesTo be able to adapt to ever-changing business context30 day is too long now
To be dynamic and flexible
Agile Software Development: Adopting SCRUM ©SCRUMguides13
It is only going faster…
Competition on the software market is growingBusiness needs of the clients are becoming more and more complexTheir expectations of the products’ and services’ qualities are expanding
Not everyone survives. How can we?
Agile Software Development: Adopting SCRUM ©SCRUMguides15
Iterative and Incremental Approach: Shortening Time-to-Market
From Michael Vizdos’s “CSM presentation”
Agile Software Development: Adopting SCRUM ©SCRUMguides16
Iterative and Incremental Approach: Reducing Risks of Delays
From Henrik Kniberg’s “Scrum Intro”
Agile Software Development: Adopting SCRUM ©SCRUMguides17
Sequential vs. overlapping development
Rather than doing all of one thing at a time...
...Scrum teams do a little of everything all the time
Requirements Design Code Test
Agile Software Development: Adopting SCRUM ©SCRUMguides19
The Agile Manifesto
Individuals and interactions over processes and toolsWorking software over comprehensive documentationCustomer collaboration over contract negotiationResponding 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.
http://agilemanifesto.org/
See also the Declaration of Interdependence, http://pmdoi.org/
Agile Software Development: Adopting SCRUM ©SCRUMguides21
In another words…
More focused product development through tight cooperation with the clients
Better products
Ongoing project steering throughout the project lifecycle
Happier clients
Self-managing teams that are empowered to solve the project challenges
Greater teams
Agile Software Development: Adopting SCRUM ©SCRUMguides25
Agenda
Why AgileWhat is SCRUMHow to adopt Agile with SCRUMQ/A
Agile Software Development: Adopting SCRUM ©SCRUMguides26
SCRUM in 100 words
SCRUM is a set of rules that are based on the Agile principles and are designed to assist the customers and the team to build constructive relationship.
SCRUM is an agile process that allows us to focus on delivering the highest business value in the shortest time (MikeCohn).
Every two weeks to a month anyone can see real working software and decide to release it as is or continue to enhance it for another sprint (from SCRUM Framework).
SCRUM is about common sense (Ken Schwaber).
Agile Software Development: Adopting SCRUM ©SCRUMguides27
Jeff Sutherland– Initial scrums at Easel Corp in 1993– IDX and 500+ people doing SCRUM
Ken Schwaber– ADM– SCRUM presented at OOPSLA 96
with Sutherland– Author of three books on SCRUM
Mike Beedle– SCRUM patterns in PLOPD4
Ken Schwaber and Mike Cohn– Co-founded SCRUM Alliance in 2002,
initially within the Agile Alliance
Origins of SCRUM
Agile Software Development: Adopting SCRUM ©SCRUMguides28
Popularity of SCRUMIt has been used by:
IntuitNielsen MediaFirst American Real EstateHigh Moon StudiosIpswitchJohn DeereLexis NexisSabreSalesforce.comTime WarnerTurner BroadcastingOce
MicrosoftYahoo!GoogleElectronic ArtsHigh Moon StudiosLockheed MartinPhilipsSiemensNokiaCapital OneBBC
Taken from Mike Cohn’s presentation on SCRUM
Agile Software Development: Adopting SCRUM ©SCRUMguides29
Applicability of SCRUMIt has been used for:
FDA-approved, life-critical systemsSatellite-control softwareWebsitesHandheld softwareMobile phonesNetwork switching applicationsISV applicationsSome of the largest applications in use
Commercial softwareIn-house developmentContract developmentFixed-price projectsFinancial applicationsISO 9001-certified applicationsEmbedded systems24x7 systems with 99.999% uptime
requirementsVideo game development
Taken from Mike Cohn’s presentation on SCRUM
Agile Software Development: Adopting SCRUM ©SCRUMguides30
CSMs:– 12’000 CSMs by Q1 of 2007– Increase in 1’500 CSMs each quarter– 221 CSM class is planned already for 2008
Popularity of SCRUM vs. XP, DSDM2nd Annual “State of Agile Development” survey 2007:
– SCRUM – 37%, – Hybrid XP/SCRUM- 23%, – XP = 12%, – DSDM – 5%
Some Worldwide Statistics
Agile Software Development: Adopting SCRUM ©SCRUMguides31
SCRUM evangelists believe that the problem we face has nothing to do with process and technology, but with people.SCRUM and Agile are based on the hypothesis that there is no meta-solution for software development. Just a framework within which we will inspect and adapt.This is very frustrating to those looking for procedures and final answers
SCRUM is not a Silver Bullet
Agile Software Development: Adopting SCRUM ©SCRUMguides32
What is SCRUM?
An Agile Project Management frameworkA wrapper for existing engineering practicesA team-based approach (focus on self-organizing teams)Handles conflicting interests and needsImproves communication and cooperationEarly detection and removal of obstaclesIterative feature-driven planning activitiesProduces potentially shippable functionality at each iteration of 2-4 weeksDisciplined approach
Agile Software Development: Adopting SCRUM ©SCRUMguides33
SCRUM in Details
This part uncovers all SCRUM concepts in details:
RolesArtifactsMetricsCeremonies
Agile Software Development: Adopting SCRUM ©SCRUMguides34
Terminology used in SCRUM
ScrumMaster (SM) = Process OwnerProduct Owner (PO) = Customer Rep.Sprint = IterationProduct Backlog (PB) = Inventory of RequirementsSprint Backlog (SP) = Task List
Agile Software Development: Adopting SCRUM ©SCRUMguides35
The Framework
Agile Software Development: Adopting SCRUM ©SCRUMguides38
Agenda
Why AgileWhat is SCRUMHow to adopt Agile with SCRUMQ/A
Agile Software Development: Adopting SCRUM ©SCRUMguides39
What do we want to achieve?
Adopt agile in the project?
Meet the project goals effectively!
Thanks to Askhat Urazbaev from Agile Russia for this clear slide
Agile Software Development: Adopting SCRUM ©SCRUMguides40
Steps to adopt SCRUM
1. Find Product Owner
2. Build Product Backlog
3. Define DONE criteria
4. Build Sprint Backlog
5. Sprint!
6. Learn and adapt
Agile Software Development: Adopting SCRUM ©SCRUMguides41
(1) Find a Product Owner
There should be only one PO
The teams should support the decision makers with all possible means of information that cam help them to make right decisions.
So what does “business” need to know?
Agile Software Development: Adopting SCRUM ©SCRUMguides42
(2) Build a Product BacklogWork with User Stories
Our plans are based on users’ needs of systems that we are building.
We know the needs are likely to be changing as we will be proceeding.
It will add risks to our projects. The later the change occur the higher the risks will be (more to rework).
That’s why we want the changes to occur as early as possible, and as much as needed!
Write the users’ needs in a form: As a <user> I can <do> so that <value>.
We have a dedicated module on user stories and estimates.
Agile Software Development: Adopting SCRUM ©SCRUMguides43
Example of a Product Backlog
Sprint Feature Comments Estimate
sprint i User can see the list of categories and productsEach product has a thumbnail, name, description and price 5
User can see which products are out of stock 2
User can put any in-stock product item to the basket Check for available quantity 3
User can see which products are in his basketBasket content is preserved between sessions 3
sprint (i+1) User can delete a product item from the basket 1
User can buy all products from his basket 5
User can pay with invoice Works only for local customers 8…sprint n …
Agile Software Development: Adopting SCRUM ©SCRUMguides44
Granularity of Planning Details
From Henrik Kniberg’s “Scrum Introduction”
Agile Software Development: Adopting SCRUM ©SCRUMguides45
(3) Define “Done” criteriaWhat do you mean when you say you’re done?
It is very important for the team and the client to agree upon what “done” actually means.As the team’s maturity grows the “doneness” expands.
What “done” means to you? Does you “done” mean “live”?What isthe shortest time within which you can “do” a meaningful minimal set of stories?
Agile Software Development: Adopting SCRUM ©SCRUMguides46
(4) Build the Sprint Backlog
Feature Tasks Responsible Mon Tue Wed Thu FriUser can see the list of categories and products Implement layout VM 8 4 3 0 0
Design DB TY 16 12 10 8 4
Implement API TY 6 4 4 4 2
Implement unit-tests TY 2 2 2 2 2
Import data from Xserver AK 4 4 4 4 4User can see which products are out of stock Implement layout VM 3 3 1 1 1
Add field to products table TY 1 1 1 1 1Import data from Xserver TY 1 1 1 2 2
Implement API AK 2 1 1 1 1
Implement unit-tests AK 1 2 2 2 2Refactor Product class AK 3 2
SUM 44 34 32 27 19
Remained Estimate (hours)
Agile Software Development: Adopting SCRUM ©SCRUMguides47
(5) Sprint!Daily Scrums - synchronization points
From Henrik Kniberg’s“What is SCRUM” http://crisp.se/
Agile Software Development: Adopting SCRUM ©SCRUMguides48
(5) Sprint! Team’s visual tool
From Mike Cohn’s “Task Boards”, http://www.mountaingoatsoftware.com/
Agile Software Development: Adopting SCRUM ©SCRUMguides50
(5) Sprint!
Sprint Burndown
44 4336
2721
1815
115
00
10
20
30
40
50
1 2 3 4 5 6 7 8 9 10
Days
Estim
ates
Burndown chart is a very simple and powerful visualization tool you can use in your progress. Daily it tells you where you are:
Agile Software Development: Adopting SCRUM ©SCRUMguides51
(5) Sprint! The Task Board after the i-th meeting …
From Henrik Kniberg’s “What is SCRUM”http://crisp.se/
Agile Software Development: Adopting SCRUM ©SCRUMguides52
(5) Sprint! A word on visibility
Sprint Burndown
22
128
3
4441 41 39 39
05
101520253035404550
Mon Tue Wed Thu Fri
Days
Estim
ates
Agile Software Development: Adopting SCRUM ©SCRUMguides53
(6) Learn and Adapt
• Sprint review• demo working software
• get feedback
• Sprint retrospective• what went well
• what didn’t
• what will the team do differently next sprint
• Cook until you’re done :)
Agile Software Development: Adopting SCRUM ©SCRUMguides54
Now. What’s in it for you? :)
Who of you has been using SCRUM?
Who of you is going to use SCRUM?
Who of you is never going to use it?
Agile Software Development: Adopting SCRUM ©SCRUMguides55
Three things that can derail
Agile methods are easy to misunderstandThe methods exist in order to enable the philosophyAgile practices are like any other practices; they’re learned through example, application, and training
It’s easy to think you’re doing Agile right, and be wrongWithout direction, a team told to throw away its waterfall method will simply devolve into "code and fix."
Agile methods make value visibleCan that be a bad thing?If someone in an Agile Project isn’t contributing, the fact will become obvious
Taken from presentation of Serhiy Yevtushenkodone on one of the Gathering of Agile Ukraine
Agile Software Development: Adopting SCRUM ©SCRUMguides56
A sure way to get it wrong
"Big bang“, massive, world-shaking change without experimentationExpecting to have your cake and eat it too:
All features, on time, on budget, on schedule, re-gardless of how realistic that schedule is
Iterative development without automated tests"Iterations" that deliver incomplete work products
For instance, software that isn’t ready to release to the customer
Agile development while keeping the developers and the testers separate Testing becomes an afterthought a verification activity
Implementation of Agile techniques without a belief in the core philosophies Responding to change and not planning everything up front
Taken from presentation of Serhiy Yevtushenkodone on one of the Gathering of Agile Ukraine
Agile Software Development: Adopting SCRUM ©SCRUMguides57
We can help you adopt SCRUM
Order a two-day training for your team:http://www.scrumguides.com/
Agile Software Development: Adopting SCRUM ©SCRUMguides58
We Welcome Everyone to join our Discussions http://groups.google.com/group/agile-ukraine/
Agile Software Development: Adopting SCRUM ©SCRUMguides59
Questions?
Agile Software Development: Adopting SCRUM ©SCRUMguides60
Thank you!