More Related Content
Similar to Agile Software Development With SCRUM (20)
More from Alexey Krivitsky (20)
Agile Software Development With SCRUM
- 2. Today’s Agenda
Opening: program overview, knowing each other
Understanding Agile and SCRUM
SCRUM simulation
Extra SCRUM topics
Concepts of Agile Planning
We will be having 10-minute breaks each 60-90 minutes.
Agile Software Development with
2 SCRUM ©SCRUMguides
- 3. About myself
Alexey Krivitsky
Software developer, Agile coach
Certified ScrumMaster
Certified Scrum Practitioner
http://www.linkedin.com/in/alexeykrivitsky
email: alexey@scrumguides.com
skype: alexeykrv
icq: 436-471-64
gsm: +380 50 358 92 12
Currently building up a training center
www.scrumguides.com
Agile Software Development with
3 SCRUM ©SCRUMguides
- 4. Our presence
Ukrainian Agile community
www.agileukraine.org
Join our Google discussion group
Ukrainian SCRUM portal
www.scrum.com.ua
Agile Software Development with
4 SCRUM ©SCRUMguides
- 5. Today’s Agenda
Opening: program overview, knowing each other
Understanding Agile and SCRUM
SCRUM simulation
Extra SCRUM topics
Concepts of Agile Planning
Agile Software Development with
5 SCRUM ©SCRUMguides
- 7. Project successes/failures
Have you been on a successful project?
Have you been on an unsuccessful project?
Agile Software Development with
8 SCRUM ©SCRUMguides
- 8. Agile might help you, let’s see…
Understanding Agile and SCRUM
Agile Software Development with
9 SCRUM ©SCRUMguides
- 9. The two approaches, two cultures
Predictive approach
Sees projects as predictive processes which results can be
foreseen (predicted) with acceptable probability after
reasonable planning and study efforts spent.
Adaptive approach
Questions predictability of projects due to their built-in
complexity. It puts stress on steering based on observations.
Agile Software Development with
10 SCRUM ©SCRUMguides
- 10. The predictive approach
Release
Design spec
Requirements spec
Order
C
D
Actual
need
P
P
R
Agile Software Development with
11 SCRUM ©SCRUMguides
- 11. The adaptive approach
When in the project we 100% know if we
on/off the track in terms of the time, scope,
costs…?
Vision
C
Actual need
Agile Software Development with
12 SCRUM ©SCRUMguides
- 12. The two approaches to project management
Predictive approach
Heavy-weight;
–
Process-oriented;
–
Plan-driven;
–
“Waterfall”.
–
Adaptive approach
Light-weight;
–
People-oriented;
–
Value-driven;
–
“Agile”.
–
Agile Software Development with
13 SCRUM ©SCRUMguides
- 14. The two approaches on the time scale
Which advantages/disadvantages of
the approaches you see? Agile Software Development with
15 SCRUM ©SCRUMguides
- 15. Agile and SCRUM
SCRUM – one of the Agile approaches.
It is a project framework, or a set of
recommendations by following which you can
increase the chance of successful ending of
your projects.
Agile Software Development with
16 SCRUM ©SCRUMguides
- 16. Agile Manifesto
We are uncovering better ways of developing
software by doing it and helping others do it.
Through this work we have come to value:
Individuals and interactions over processes and tools
Working software over comprehensive documentation
Customer collaboration over contract negotiation
Responding 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.
Agile Software Development with
17 SCRUM ©SCRUMguides
- 17. Main aspects of Agile
Agile Software Development with
19 SCRUM ©SCRUMguides
- 18. The main aspects of Agile
Team Work
Prioritization
Short cycles
Learn and Adapt
Agile Software Development with
20 SCRUM ©SCRUMguides
- 19. The main aspects of Agile: Team work
What is a team?
How to make good team?
Agile Software Development with
21 SCRUM ©SCRUMguides
- 20. Team work (cont.)
Exercise “an airplane factory”.
Agile Software Development with
22 SCRUM ©SCRUMguides
- 21. Team work (cont.)
What is a team?
Are you in a good team?
How to become a greater team?
How to evaluate and motivate people’s work
in a team?
Agile Software Development with
23 SCRUM ©SCRUMguides
- 22. Is here such a thing as “team work”?
Release
Design spec
Requirements spec
Order
C
D
Actual
need
P
P
R
Agile Software Development with
24 SCRUM ©SCRUMguides
- 23. A SCRUM team is
A cross-functional group of people
(5-9 members) responsible for managing
itself to develop the product.
Agile Software Development with
25 SCRUM ©SCRUMguides
- 24. The main aspects of Agile
Team Work
Prioritization
Short cycles
Learn and Adapt
Agile Software Development with
26 SCRUM ©SCRUMguides
- 25. Prioritization and Traditional approaches
An alternative tool to backlogs are
requirement specifications.
Agile Software Development with
27 SCRUM ©SCRUMguides
- 27. As a result …
As a result all requirements are the
“top priority”.
Which is basically the same as not having
the priorities at all.
Agile Software Development with
29 SCRUM ©SCRUMguides
- 28. And as a result …
Agile Software Development with
30 SCRUM ©SCRUMguides
- 29. What does it mean to us?
As a consequence: we can cut costs and
duration of our projects in 2/3!
Does it mean we (the teams) will earn less
money?
Agile Software Development with
31 SCRUM ©SCRUMguides
- 30. What about your projects?
Think about your current (recent) projects.
List 5-10 features that could have been
avoided or simplified by keeping the product
as good as it was.
What would be your % of rarely/never used
features?
Agile Software Development with
32 SCRUM ©SCRUMguides
- 31. Prioritize (cont.)
YAGNI - “You ain’t gonna need it”.
A strategy of postponing decisions until the last
possible moment.
Product backlog
Just-in-time requirements management tool.
Agile Software Development with
34 SCRUM ©SCRUMguides
- 32. The “menu” (Agile) approach
Product backlog is the project’s menu.
“Servants” help to make better decisions.
Agile Software Development with
35 SCRUM ©SCRUMguides
- 33. What saves our projects?
“The features that we manage to de-scope are
the savers of our projects” © Kent Beck
Agile Software Development with
36 SCRUM ©SCRUMguides
- 34. The main aspects of Agile
Team Work
Prioritization
Short cycles
Learn and Adapt
Agile Software Development with
37 SCRUM ©SCRUMguides
- 35. The main aspects of Agile: Short Cycles
The shorter the cycle the more efficient the process
We have more time to “play” with the product that
1.
we are developing;
The sooner we can catch a defect the easier it is to
2.
fix it;
The shorter the cycle (the smaller a batch of work)
3.
the less need we have in creating intermediate
artifacts.
Agile Software Development with
38 SCRUM ©SCRUMguides
- 36. Short Cycles (cont.)
“Fail fast” (с) Ken Schwaber
Agile Software Development with
39 SCRUM ©SCRUMguides
- 37. Iterative and Incremental approach
How do you eat an elephant?
-
One bite at a time!
-
Agile Software Development with
40 SCRUM ©SCRUMguides
- 38. Shorter Cycles = Faster Feedback
Daily meetings
1.
Code Reviews
2.
Release to end-users
3.
Iteration reviews
4.
Continuous integration
5.
Feedback from (onsite) clients
6.
Unit-testing
7.
(Automated) acceptance testing
8.
Pair programming
9.
Agile Software Development with
41 SCRUM ©SCRUMguides
- 39. Shorter Cycles = Faster Feedback (ordered)
Pair programming (immediate feedback)
Unit-testing (5-10 minutes)
Continuous integration (hourly)
Feedback from (onsite) clients (daily)
Daily meetings (daily)
Code Reviews (some days)
(Automated) acceptance testing (some days)
Iteration reviews (each second week)
Release to end-users (some weeks-months)
Agile Software Development with
42 SCRUM ©SCRUMguides
- 40. The main aspects of Agile
Team Work
Prioritization
Short cycles
Learn and Adapt
Agile Software Development with
43 SCRUM ©SCRUMguides
- 42. The main aspects of Agile: Learn and Adapt
As we work we learn lots of new things about
the product being developed, technologies
being used, our clients, ourselves.
By incorporating this information into daily
work we can become better day by day.
Agile Software Development with
45 SCRUM ©SCRUMguides
- 43. Visibility tools
In order to evolve the way we work we need to
keep everything visible to ourselves and our
clients
Tools that might help:
Sprint Burndown chart
Task boards
Wikis
Agile Software Development with
46 SCRUM ©SCRUMguides
- 44. The main aspects of Agile
Team Work
Prioritization
Short cycles
Learn and Adapt
Agile Software Development with
47 SCRUM ©SCRUMguides
- 45. Would SCRUM help in your case
Think about your current (recent) project.
List 3-5 main things that are (were)
preventing it from being more successful.
Can SCRUM help to avoid them?
Can SCRUM make them visible earlier?
How can SCRUM help you solve them?
Agile Software Development with
48 SCRUM ©SCRUMguides
- 46. Today’s Agenda
Opening: program overview, knowing each other
Understanding Agile and SCRUM
SCRUM simulation
Extra SCRUM topics
Concepts of Agile Planning
Agile Software Development with
49 SCRUM ©SCRUMguides
- 47. SCRUM in 59 minutes
Agile Software Development with
50 SCRUM ©SCRUMguides
- 48. Game structure
Planning
Choose a product and your PO
Help your PO to build up a PB
Help your PO to prioritize the PB items
Plan your first sprint
Sprinting
Day one - 7 min
Daily standup - 3 min
Day two - 7 min
Demonstration - 3 min (per a team)
Agile Software Development with
51 SCRUM ©SCRUMguides
- 49. Today’s Agenda
Opening: program overview, knowing each other
Understanding Agile and SCRUM
SCRUM simulation
Extra SCRUM topics
Concepts of Agile Planning
We will be having 10-minute breaks each 60-90 minutes.
Agile Software Development with
52 SCRUM ©SCRUMguides
- 50. SCRUM recap
Roles
The Team
–
ScrumMaster
–
Product Owner
–
Artifacts
Product Backlog
–
Sprint Backlog
–
Sprint/Release Burndown Chart
–
Meetings (ceremonies)
Sprint Planning
–
Daily Scrum (“Stand-Up”)
–
Sprint Review (Demo)
–
Retrospective
–
Agile Software Development with
53 SCRUM ©SCRUMguides
- 51. Today’s Agenda
Opening: program overview, knowing each other
Understanding Agile and SCRUM
SCRUM simulation
Summary of SCRUM concepts
Concepts of Agile Planning
Agile Software Development with
54 SCRUM ©SCRUMguides
- 52. Agile Planning
Requirements in SCRUM
Levels of Planning
Project Steering
Estimation Techniques
Agile Software Development with
55 SCRUM ©SCRUMguides
- 53. Requirements
What are the requirements to requirements?
Agile Software Development with
56 SCRUM ©SCRUMguides
- 54. What is important is …
That communications/negotiation happens
between the customer and the team.
User stories help deferring the details till later
They talk problems not solutions
They fit nicely as your Product Backlog items
Agile Software Development with
57 SCRUM ©SCRUMguides
- 55. User Story is…
User stories are simple, clear, brief
descriptions of functionality that will be
valuable to either a user or purchaser
of a product
Expressed in a form similar to:
As a <user> I can <do> so that <value>
Agile Software Development with
58 SCRUM ©SCRUMguides
- 56. Samples – Travel reservation system
As a vacation planner, I
As a user, I can reserve a
can see photos of the
hotel room.
hotels.
As a user, I can restrict
As a user, I can cancel a
searches so that I only see
reservation.
hotels with available rooms.
Agile Software Development with
59
59 SCRUM ©SCRUMguides
- 57. Details added in smaller substories
As a premium site member,
I can cancel a reservation
up to the last minute.
As a non-premium
As a user, I can member, I can cancel up to
cancel a 24 hours in advance.
reservation.
As a site visitor, I am
emailed a confirmation of
any cancelled reservation.
Agile Software Development with
60
60 SCRUM ©SCRUMguides
- 58. Details added as tests
High level tests are added to the story
Can be used to express additional details and expectations
–
As a user, I can cancel a reservation.
• Verify that a premium member can cancel the same day
without a fee.
• Verify that a non-premium member is charged 10% for a
same-day cancellation.
• Verify that an email confirmation is sent.
• Verify that the hotel is notified of any cancellation.
• Figure out what to do if the user’s card is expired.
Agile Software Development with
61
61 SCRUM ©SCRUMguides
- 59. From Mike Cohn’s “Agile Estimating and Planning”
Agile Software Development with
62 SCRUM ©SCRUMguides
- 60. Agile Planning
Requirements in SCRUM
Levels of Planning
Project Steering
Estimation Techniques Agile Software Development with
64 SCRUM ©SCRUMguides
- 61. The two levels of planning
Strategic level / Story level / product backlog
It is all about value. Hence the customers are at
–
better position to control this level.
It is the menu of a restaurant.
–
Tactical level / Task level / spring backlog
The tasks are defined in technical jargon. So the
–
teams control control this level.
It is the kitchen of a restaurant. Do you really want
–
to look inside? :)
Agile Software Development with
65 SCRUM ©SCRUMguides
- 62. From Mike Cohn’s “Planning Agile Projects”
Agile Software Development with
66 SCRUM ©SCRUMguides
- 63. Agile Planning
Requirements in SCRUM
Levels of Planning
Project Steering
Estimation Techniques Agile Software Development with
68 SCRUM ©SCRUMguides
- 64. Steering your Projects
“Ready? Fire! Aim… Aim… Aim… Aim…”
© Kent Beck, Martin Fowler
“Planning eXtreme Programming”
Agile Software Development with
69 SCRUM ©SCRUMguides
- 65. There are four main parameters to planning
Agile Software Development with
70 SCRUM ©SCRUMguides
- 66. Visualizing the time-scope relationship
Release Burndown
2000
1800 1785
1620
1600
1400
Estimations
1200
1000
800
713
600
512
400
324
228
200 175
155
0
1 2 3 4 5 6 7 8
Agile Software Development with
Sprints
71 SCRUM ©SCRUMguides
- 67. The Performance metric
Velocity – speed at which the team converts
pieces of requirements into a working
product during a single sprint.
Light and powerful metric.
Agile Software Development with
72 SCRUM ©SCRUMguides
- 68. From Mike Cohn’s “Agile Estimating and Planning”
Agile Software Development with
73 SCRUM ©SCRUMguides
- 69. Agile Planning
Requirements in SCRUM
Levels of Planning
Project Steering
Estimation Techniques
Agile Software Development with
74 SCRUM ©SCRUMguides
- 70. From Henrik Kniberg and Mike Cohn
A typical issue with estimations
Agile Software Development with
75 SCRUM ©SCRUMguides
- 71. Planning Poker. The Steps
Each estimator is given a deck of cards (1,2,3,5,8…)
A Product Owner reads a story
Estimators are for clarifications until everyone is ready to
estimate
Each estimator selects a card without showing it to the others
By command cards are got turned over
People with different estimates have discussions (limit with a
timer)
The round repeats until estimates converge
Agile Software Development with
76 SCRUM ©SCRUMguides
- 72. SCRUM and you
In your current (next) project which SCRUM
practices you think are the MUSTs?
Which you find hard to do?
Which you find impossible?
Which you find unnecessary?
Which can you start doing your next working
day?
Agile Software Development with
78 SCRUM ©SCRUMguides
- 74. My contacts
Alexey Krivitsky
Software developer, Agile coach
Certified ScrumMaster
Certified Scrum Practitioner
http://www.linkedin.com/in/alexeykrivitsky
email: alexey@scrumguides.com
skype: alexeykrv
icq: 436-471-64
gsm: +380 50 358 92 12
Currently building up a training center
www.scrumguides.com
Agile Software Development with
80 SCRUM ©SCRUMguides
- 75. Join our community!
Ukrainian Agile community
www.agileukraine.org
Join our Google discussion group
Ukrainian SCRUM portal
www.scrum.com.ua
Agile Software Development with
81 SCRUM ©SCRUMguides