3. Who is here today?
• Name
• Current role
• Who is your favourite artist of all time?
• Expectations from this workshop
4. Today…
• Learn about Agile & Scrum
• Lots of group exercises
• Please ask questions
• Have fun!
5. What we will cover
• Agile
• Scrum
• User Stories
• Agile Estimation
• Backlog Management
• Continuous Development
6. Learning Outcomes
At the end of today you will be able to:
• Describe agile, and how it differs from Scrum.
• Describe the basic rules of Scrum.
• Write and Evaluate User Stories.
• Describe Relative and Absolute Estimation
• Describe Story Points
• Play Planning Poker
• Play Fast Estimation
• Prioritise a Backlog, while considering Value and Risk.
• ...
7. Learning Outcomes (cont’d)
At the end of today you will also be able to:
• Describe how Sequential and Continuous Development differ.
• List some of the practices that are used in Continuous Development.
• Describe Technical Debt and list some elements of managing debt.
11. You Should!
• In the early 90’s
• Most software projects were failing
• But they were all succeeding
• What was different?
• ‘agile’
12. Very brief history of agile & Scrum
70 ‘s
Waterfall
created
Scrum
createdRate of Business Change
Accelerates
2013199390’s
Scrum
Dominate
Light weight
Methodologies
arise
2001
agile
Manifesto
created
The New New
Product
Development
Game
1986
14. Exercise - Presto Manifesto
1. Define a successful project?
2. Form teams.
3. List of ‘critical elements of successful projects’.
4. Reach team consensus & signs those that they agree with.
5. Review similarities between teams.
6. Review similarities to the agile manifesto.
15. Agile manifesto (just value statement)
Process and tools
Individuals and
interactions
over
Following a planResponding to change over
Comprehensive
documentation
Working software over
Contract negotiationCustomer collaboration over
Full Manifesto: http://agilemanifesto.org/
16. Why is Agile Hard?
• Values & Principles
• New practices
• Best learnt by doing
• Requires time to master
17. Domination of Scrum
0%
10%
20%
30%
40%
50%
60% DSDM
Agile Modeling
Agile Unified
Process
Other
Lean
FDD
XP
Don't Know
Kanban
Scrumban
Custom Hybrid
Scrum / XP Hybrid
Scrum
Source: Version One – 7th Annual State of Agile Survey
23. Responsibilities in Scrum
Scrum Master Product Owner Team Member
Adherence to rules Return on Investment Deliver
Whole team effectiveness What, Why How
27. Definition of Done
• Defines what gets to ‘Done’
• Used to ensure Quality
• Used to reduce debt
• Created by whole team
• Can be updated
• Automated Tests passing
• Code Reviewed
• Product Owner accepted
• Checked into mainline
• Tracking tool updated
• Deployed to Intg. Env.
e.g.
28. Sprint Commitments
• Product Owner: Won’t change the Sprint Backlog.
• Team: Deliver the Sprint Backlog.
• Scrum Master: Protect the team from outside influences.
Keep in mind we will learn through the sprint, and we
should deliver the most value that we can.
29. Exercise – match activities by role
• Divide the large paper into three equal sections: Team, SM, PO.
• Match up the activity cards to the section.
• NOTE: Some cards are duplicated.
• NOTE: Blue cards are for the Primary role, Pink for the Secondary role.
E.g. ‘Create Product Backlog Items’ – Blue (Primary) for PO, Pink
(Secondary) for Team.
30. “Scrum is free and offered in this guide,
Scrum’s roles, artifacts, events, and rules
are immutable and although
implementing only parts of Scrum is
possible, the result is not Scrum.”
Scrum Guide Oct 2011
http://www.scrum.org/Scrum-Guides
32. Mutable – some examples
Roles Ceremonies Artifacts Rules
Scrum Master also
contributes to
team
Planning involves
experts from other
teams
Not using User
Stories
T.D.D. mandated
for backend code.
Product Owner
across 2 teams
Standup uses
speaking token
Use a burn up
chart
Some team
capacity put aside
for defects
Demo done by diff.
team member
each week
No task board Co-location
Hold Retro in café. Using Use Cases
33. Co-location
• Not mandated in Scrum, however;
• Agile manifesto: 2 of 4 Values Statements and 1 Principle relate
to it.
• Generally accepted that it is a crucial success factor.
34. Co-location
Co-location results in:
• Significantly increased collaboration.
• Enhanced feeling of being in a team.
• Impediments being resolved faster.
• Reduces delays with the team.
• Overall Success!
35. Scrumbut
We do Scrum but ....
• We have two PO’s for our team.
• We need team X to finish each User Story.
• Retrospectives are a waste, so we don’t do them.
• Management keeps changing the Sprint Goals.
36. Success
What does a successful Scrum team look like?
• Delivering consistently.
• Regularly finishing their top priority stories first.
• Team actively managing Technical Debt.
• Collaborating extensively with PO.
• Try’s from Retrospectives result in change.
• Team rarely works overtime.
40. User Stories
• Why User Stories?
• Different Formats
• INVEST
• Vertical Slices
• Iterative and Incremental
41. Why use User Stories?
• Low overhead
• Encourage Collaboration
• Supportive of change
42. Format of User Stories
As a [USER]
I want [GOAL]
So that [BUSINESS BENEFIT]
43. Example User Story
As a Player who is new to Poker
I want to see tips pop up in game, that explain
good moves I missed out on making
So that I feel like I am learning and hence want to
keep playing
44. War Stories
• Stories about User Stories that have caused problems?
• What characteristics did those stories have?
45. What makes for a good User Story?
• Independent
• Negotiable
• Valuable
• Estimatable
• Small
• Testable
46. What is wrong with these Stories?
I want the phoenix animation to
be visually spectacular
As a regular bingo player
I want to be notified when I
have played for 30 minutes
So that I know when time is up
As a seasoned poker player
I want the tips on the flop to be
tested
As a normal roulette player
I want the roulette wheel
animation to glint at 60 degrees
from centre with a silver flash
on every second revolution
So that it seems more realistic
and engaging.
53. User Stories takeaways
Why: Low overhead, Support Change, Encourage Collaboration.
Format: As a USER, I want GOAL, so that BUSINESS BENEFIT.
INVEST: Independent, Negotiable, Valuable, Estimatable, Small,
Testable.
Splitting: Incremental & Iterative and Vertical Slices.
57. Human Capabilities for estimating
Roughly how long is this line?
Is this line, twice as long as the previous line?
58. What is Agile Estimation?
• Relative Estimation
• Uses team knowledge
• Focus on speed over accuracy
59. Story Points
• Represent Size of a Story
• Size = Effort, Complexity and Doubt
• Relative to each other. i.e. 2 is twice the size of 1
• Maths holds, i.e. 1 + 2 = 3
Effort
Doubt
Complexity
60. Story Points vs. Time
Relative Sizing (Story Points)
is more accurate over a large sample compared to
Time Estimation (Hours or Days)
Story Points are also quicker
Effort
Doubt
Complexity
61. Story Points do not equate to Time
Complexity
1pt
8pts
Duration for Grads = 5 days Duration for Seniors = 5 days
Duration for Seniors = 1 day Duration for Grads = 30 days
62. Planning Poker
• Facilitated by Scrum Master
• 1st time the team selects a Reference story.
• Reference Story is allocated 2 or 3 story points.
• All future stories are compared to this story.
63. Planning Poker Process
1. PO Explains the User Story to be estimated.
2. Team members select card and place face down.
3. Entire team reveals cards at same time.
4. Discuss high and low numbers.
5. Repeat steps 2..4 until consensus is reached.
65. Exercise - Estimating Eating Fruit
• Apple (Reference Story, 2 Story Points)
• Banana
• Orange
• Mango
• ½ Watermelon
• Pomegranate
• Peach
66. Exercise – Estimating Cooking Meals
• You are now the Meal Cooking team.
• We produce high quality meals from raw ingredients.
• There is a bakery next door so all bread products are supplied by them.
67. Agile Estimation takeaways
• Relative Estimation
• Uses team knowledge
• Focus on speed over accuracy
• Story Points: Effort + Complexity + Doubt
• Story Points != Time
• Planning Poker
• Fast Estimation
71. Ownership
• Everyone should feel ownership for the Product.
• Product Owner – is responsible for the backlog.
• Backlog is not locked down, anyone can add to it.
• Not a free for all.
• Product Owner considers all stakeholders, including the team.
72. Prioritise by Value
• To maximise ROI, should prioritise Value first.
• Need effective User Stories.
• PO assists the team by explaining the business value.
73. Prioritise by Risk Mitigation
• To reduce Product and Project risk, we need to tackle the unknowns.
• Team assists the Product Owner by explaining these risks.
• Technical Debt should also be considered
74. Combined result
1. Early: Reduce Product and Project Risk
2. Middle: Focus on Value
3. End: Trim the tail
76. Velocity
• Post Measure of delivery rate of the Team.
• Velocity = Sum of Story Points of User Stories that got to ‘Done’.
• Will fluctuate
• Average Velocity is useful guide
77. What happens with undone Stories?
• Do not count towards velocity.
• Carry over to next planning meeting, either included or dropped.
• Count towards velocity in the sprint that they are done.
• Velocity will fluctuate but will average out.
78. Product Backlog takeaways
• PO owns the backlog, but anyone can add to it
• Backlog prioritisation balances Value delivery with Risk mitigation
83. Continuous Development
• Scrum teams do a little of everything at once: Design, FE, BE, QA.
• Hence different approaches are needed
Sprint N Sprint N + 1 Sprint N + 2
84. Approaches for Continuous Development
• Iterative and Incremental User Stories
• Evolutionary design and architecture
• Management of Technical Debt
• Technical Practices
• Agile testing
86. Evolutionary Design & Architecture
• While some Design and Architecture will occur upfront
• It will also occur continuously throughout development
Evolutionary
Design &
Architecture
Continuous
Integration
Refactoring
Simple Design
87. Technical Debt
• What is Technical Debt?
• Who is responsible for Managing Technical Debt?
88. Technical Debt
• Team identify debt, raise User Story
• Write User Story in business terms
• Work with PO to prioritise the User Story
89. Technical Practices
• Version Control
• Coding Standards
• Code Reviews
• Refactoring
• Test Driven Development (TDD)
• Continuous Integration (CI)
• Simple Design
• Pair Programming
• Acceptance Test Driven Development (ATDD)
90. Traditional Testing vs. Agile testing
Conformance to
Requirements.
Identify issues.
Quality meets the
Customers needs.
Maximise Value.
91. Agile testing
• Quality Assurance is a whole team responsibility.
• Test Specialists will focus on testing, but everyone
should be involved.
• Consider Testing from the very beginning.
• Focus on Repeatable, Fully Automated, Self Reporting
Testing.
92.
93.
94. Continuous Development takeaways
• Game Design, UX, Code Design, Architecture all occur continuously.
• Rigorous Technical Practices are needed.
• We need to manage our Technical Debt.
• Quality assurance is everyone's responsibility.
98. Putting it all together
Agile Manifesto
Set of Values and Principles
You can be ‘agile’, you cannot do ‘agile’
Framework based on Scrum
Work and technology agnostic extensible framework that adheres to Agile Manifesto
You can do Scrum, if done well, you will be agile
Technical Practices
Code Reviews, TDD, CI, etc.
Make it possible to do Scrum
Other Practices
Co-location, User Stories, Story Points, etc.
Very effective extensions for Scrum
Organisational Management System
Rules, Practices, Portfolio Management, etc.
scaling of methodology, specific to your organisation
99. Summary of today
Agile manifesto: what is it, where it came from.
Scrum: roles, ceremonies, artefacts, rules.
User Stories: format, Acceptance, INVEST, Iterative & Incremental.
Agile Estimation: Story Points, Planning Poker, Fast Estimation
Backlog management: Ownership, Value, Risk.
Continuous Development: Design, UX, Practices, Testing, Tech.
Debt.
100. One thing you will take away
• Please take 2 minutes
• Write down one thing you will take away from today
• We will share them with the group
102. Other Available Workshops
Agile & Scrum
Workshop
Effective User Stories
Scrum
Master
Product
Owner
Software
Development
Workshops
Software Testing
Workshops
Agile Leadership
Workshop
Becoming a Technical
Leader
Notes de l'éditeur
ICE BREAKER
Sequential = Waterfall, V-model
Try to inject some humour… for example the red logo with the hat is his professional logo on his web site, would you trust that?
Maybe share an anecdotal story about one of the people. Say who they are.
From top left, anti clock wise
Jim Highsmith – Adaptive Systems Development
Kent Beck – TDD, extreme Programming
Ward Cunningham – Wiki, Fitnesse
Ken Shwaber – Scrum
Martin Fowler – extreme Programming
Ron Jefferies – Extreme Programming
Alistair Cocoburn - Crystal
In the 90’s and since they were delivering projects that delighted their customers, surrounded by IT projects failing left right and centre.
1970 – Winston Royce paper of software engineering published, later on people started to call it ‘waterfall’
80s onwards Rate of change increases significantly in business
1986 - Hirotaka Takeuchi and Ikujiro Nonaka – The new new product development game, published, it has many elements that are in Scrum.
90s rise of the ‘light weight methodologies’ (93 Scrum) http://en.wikipedia.org/wiki/Lightweight_methodology
Feb 2001, 17 software developers created the agile manifesto
2013 Domination of Scrum
This is why, managers get excited about ‘agile’, they have been sold on this value proposition. This is what managers are being sold on for agile.
You should know this slide inside and out.
Reduce risk by providing quick feedback. Feedback on features, team fit, technology, other potential issues
Visibility – tracking working software vs artefacts i.e.documents
Adaptability –
Business Value – validating working software by business people.
1. Define outcome of a successful project.
Games from http://tastycupcakes.org/2009/06/presto-manifesto/
Timing: 10 mins
Ingredients:
Whiteboards and/or flip-charts
Markers
Recipe:
Begin by defining what success on a software development project means. Is it only about being on time and on budget? What about customer satisfaction?Divide the participants in to groups and ask them to, based on their project experiences, come up with a list of criteria that they have noticed as critical elements on successful projects.Ask them to reach a consensus within their team and have each member sign off on the criteria they agree with.Look for patterns between each team’s list and then discuss. Compare each teams list with the list that the 17 signatories of the agile manifesto came up with.You will be surprised at the results, regardless of the participants experience with agile. You will rarely see any team come up with prescriptive practices and I have yet to come across a list that did not include customer collaboration, communication, and team dynamics.
Learning Points:
The agile manifesto is a set of factors that are considered common on successful projects.
These successful factors are not entirely new to our industry.
The agile manifesto does not prescribe specific practices, reaching a wide consensus on these would be very hard.
You should know this slide inside and out.
discuss what the problem is (not the right people involved, too many people etc) and try to find a solution that involves people and how they interact vs using a new tool without understanding the problem.
Tracking working software vs tracking documentation.
Internal vs external customer. Working together and starting early.
Respond to all kinds of changes e.g. team, feedback, tooling, +ve/-ev, solutions
Agile is a great idea, but hard to follow. Most people want a simple process / guide to follow.
Here you can see that Scrum is hugely popular compared to other agile methodologies.
Combining all of the Scrum hybrids it is even more dominate. Scrum is the simple framework that allows people to be agile, if they can follow it.
Finding the fun early, is crucial in games development.
Scrum done well, reduces crunch periods.
Finding the fun early, is crucial in games development.
Scrum done well, reduces crunch periods.
It is possible to be Scrum master and Team Member
It is NOT possible to be Product Owner and Scrum Master
It is NOT possible to be Product Owner and Team member
The conflicts of interest are just too great for the team to be truly successful.
NEED TO PRACTICE DRAWING DIAGRAM. Check video of Lisa Crispin.
Draw out the process on the whiteboard, answering questions as you go.
Image from: http://www.scrumprimer.org/overview
Roles: Scrum Master, Product Owner, Team Member
Ceremonies: Planning, Story Workshop, Stand up, Review, Retrospective
Artefacts: Backlog, Sprint Backlog, Taskboard, Burndown, Product Increment.
Additional: Definition of Done, Co-location
Please note, this is just an example Definition of Done, it is by no means a recommendation for what a DOD should be in GameSys.
Game on tastycupcakes.org: http://tastycupcakes.org/2014/01/scrum-roles-and-responsibilities-game/
Split the attendees into two groups of 3 to 8.
Each group gets a sheet of butchers paper with the three sections (Team, SM, PO). It is best to put these on the corners of the table so that more people can gain access.
Shuffle each deck of index cards and evenly spread them amongst each team.
ROUND 1: Give everyone 1 minute in SILENCE to place their cards without touching anyone elses cards. They will need to be neat as the cards will cover the paper.
ROUND 2: Give each team 5 minutes to review the place of cards, update them and agree.
ROUND 3: Get teams to switch sides, review each others place and discuss between teams.
What additional activities would you add?
Cards include (39 so far):
Prioritise Backlog
Talk to stakeholders
Make Product Backlog visible
Ensure quality x 3 (PSS)
Create Product Backlog items x 2 (PS)
Build
Design
Test
Deploy
Integrate
Attend Daily Stand up x 3
Attend Sprint Planning x 3
Attend Sprint Review x 3
Attend Backlog Grooming x 3
Attend Sprint Retrospective x 3 (PPS)
Ensure Scrum is followed
Coach team
Facilitate Scrum events
Resolve technical impediments
Resolve organisational impediments
Improve process
Improve technical practices
Track sprint progress
Track release progress
Get them all to read this quote.
What are the impacts of each of these Scrum buts?
Finding the fun early, is crucial in games development.
Scrum done well, reduces crunch periods.
You can use whatever format you like for User Stories, they are not locked in stone.
However this format has several key benefits, that make it worthwhile.
1. We can confirm that the User will receive the benefit (link ‘as a’ line to the ‘so that’ line).
2. We can confirm that the output has a good chance of producing the benefit (link the ‘I want’ line to the ‘so that’ line).
Hence we stand a better chance of making an impact.
Who has used User Stories?
Do you have any stories about User Stories that were tough or painful to work on?
Which INVEST properties did they miss out on?
INVEST came from Bill Wake
For the Team to take into a Sprint
Aim for as many as possible
Compromise
Blue – So that, just repeats the I want to. It is actually a regulation in some countries to inform the user of their play time.
Green – this is a phase ‘testing’, so it is highly dependent.
Purple – user is missing, business benefit is missing.
Orange – non negotiable, how do we know that the most realistic result will come from the colour silver, at that angle, etc.
This is how many people are used to working.
The product is split into architecture layers / components, with teams formed around those components.
Our product owner wants some functionality for the user. (I point to the top part of Story D).
In this situation the work is split into four user stories, 1 per component/team.
The first team starts work on Story A, they build and unit test their work, mark it as done, and let the next team know. (I point out a circle inside Story A).
The next team starts work on Story B, they build and unit test their work, integration test their work with Story A, find some mistakes in A and get that team to fix them. (I point out an elipse, across story B and Story A)
Repeat for C and D.
Over all there is a lot of dependencies, a lot of retesting, waiting and uncertainty.
Some companies may be set up so that there are only two teams/components, however there is still dependencies, delays etc.
In this situation we have the same architectural layers, however now our teams are cross functional.
Again our Product Owner wants some functionality of the User Interface for the user (point to the top)
This time, the work is split up into vertical slices by functionality.
i.e. We deliver a small piece of functionality, Story A, where the team builds and tests all components at once.
Then they move onto building the next slice.
This is a vertical slice and it is what we want ALL of our user stories to be.
Non functional aspects include things such as performance, scalability, visual aspects, etc.
I got the drawing from the web, (not sure where from, so Gamesys cannot claim copyright over it).
You can also talk about increasing Fidelity between the three stages.
The team is building some parts at low fidelity, than adding more bits at low fidelity while increasing the fidelity of others.
This allows for LOTS of fast feedback.
Finding the fun early, is crucial in games development.
Scrum done well, reduces crunch periods.
Everyone put up their hand, when they know roughly how many centimetres the line is?
Everyone put up their hand, when they know if the second line?
The second question was answered much faster, because humans are naturally good at Relative Estimation, yet we are naturally poor at absolute estimation.
Agile estimation, uses relative estimation techniques.
It also leverages the knowledge of the whole team, (devs, testers, business, designers)
Lastly we focus on speed over accuracy, we just need the estimate to be accurate enough to prioritise and plan our work.
Effort – Raw effort / grunt work. I.e. Making a simple parameter change to hundreds of similar method calls.
Complexity – Difficulty, hard algorithms, complex logic extra, abstract concepts.
Doubt – Uncertainty around how will we build it or what it is that we need to build.
If consensus is not coming, pick the number selected by the majority of participants. Do not average the numbers.
Hand out Planning Poker cards to everyone and explain to them that they are the Fruit eating team. You are the Scrum master and Product Owner (conflicted I know)
Set Apple as the Reference Story with 2 Story points.
Ask the team how they would eat the apple, making notes on the board.
That is now their reference.
Move onto estimating each piece of fruit in order. Each time asking how they will eat it prior to estimating.
Definition of Done (this can be revealed bit by bit through the exercise)
80% of flesh eaten
All other remains in the bin
Kitchen and utensils are clean.
Team hands and face are clean.
It took us about 20 minutes to estimate 5 pieces of fruit, we are now going to estimate cooking 26 meals in about 15 minutes. We are going to use Fast Estimation.
http://www.journey-to-better.com/2012/05/fast-estimation.html
It took us about 20 minutes to estimate 5 pieces of fruit, we are now going to estimate cooking 26 meals in about 15 minutes. We are going to use Fast Estimation.
http://www.journey-to-better.com/2012/05/fast-estimation.html
Finding the fun early, is crucial in games development.
Scrum done well, reduces crunch periods.
Draw graph (Value vs. Time)
Line 1: consistent delivery of value
Line 2: emphasising value first.
Add to graph
Line 3: reducing risk / uncertainty first
Split the attendees into two teams
Hand out the index cards with the User Stories written out, to each team.
Explain the value, risk and story point scales.
In 5 minutes get the teams to order their backlog.
Now switch sides and compare ordering.
Finding the fun early, is crucial in games development.
Scrum done well, reduces crunch periods.
In sequential development, work is divided up into phase (you can see here as red, green, light blue, dark blue). They are mostly carried out in a sequential order with some overlap between each phase.
FE – Front end development, BE – backend development, QA – quality assurance /testing.
As you can see this is more complex than sequential development, yet delivers completed work each sprint.
Curves from Mountain Goat Software – redistributable introduction to scrum.
We will discuss each of these approaches on the coming slides
Linked tightly to Iterative & Incremental User Stories, Refactoring, Simple Design, Continuous Integration
Everyone is responsible for some element of managing technical debt.
These Technical practices (most of them comes from eXtreme Programming) are needed for us to have any hope of apply continuous development.
Explain each practice.
Simple Design – also know as Just in time Design. Only design for what you are working on now.
Collective Code Ownership (from XP) was left off, because Gamesys does not have a strong push for it.
Ask the attendees for examples from each quadrant, helping them out as need be. The full set is revealed on the next slide.
Credit: http://lisacrispin.com/wp-content/uploads/2011/11/Agile-Testing-Quadrants.png