“Something called agile” 1

“Something called agile”
1
Before we start…
• Paavo Pekkanen
• Graduated from EVTEK 2006
• Nokia
• Scrum master
• Today’s topics:
• Software development processes in general
• Scrum software development
• Roles
• Practices
• Artifacts
• Tools
• Values
2
Waterfall process
What’s wrong with waterfall?
Why can’t we use it?
If it’s not broken, don’t fix it!
But… Have you ever had any of these
problems?
- Things didn’t go exactly as planned?
- Delivered software wasn’t exactly what the
customer needed
- Delivering new features to your software takes
too much time
Well… Of course… But you
can’t avoid these problems,
can you?
You can, if you have the right tool for the right purpose.
Maybe you should try Scrum or some other agile method?
3
Lean, Agile, Scrum – what’s difference?
Lean – a
“philosophy” to
optimize
everything
Agile – a
project
management
methodology
4
Scrum,
Kanban & XP
– agile process
tools with lean
characteristics
“Scrum is not a silver bullet!”
5
Scrum in a nutshell
• Scrum defines:
• Set of practices
• Roles
• Split the work into short iterative
cycles - “sprints”
• Typical sprint length is 1-4 weeks
• Every sprint produces potentially
shippable product increment
• New releases are shipped frequently,
but with “small steps”
• Scrum doesn’t have to be about
software development
6
Project triangle – waterfall
Requirements
FIXED
Optimal project
Resources,
people
7
Time,
schedules
Project triangle – waterfall fail mode 1
Requirements
Consequence
Not enough people!
Optimal project
Resources,
people
8
Time,
schedules
Project triangle – waterfall fail mode 2
Too much
stuff to do!
Requirements
Consequence
Optimal project
Resources,
people
9
Time,
schedules
Project triangle – scrum
Requirements
Optimal project
Resources,
people
Time,
schedules
FIXED
10
Project triangle – scrum fail mode
Requirements
Consequence
Not enough
people
Optimal project
Resources,
people
11
Time,
schedules
“You can only pick two!”
Good
Cheap
12
Fast
Scrum roles
• Scrum defines four roles:
• Business owner
• Product owner
• Scrum master
• Team member
• NO project manager!
13
Scrum Roles
• Business owner
• “The boss”
• Supplies resources to the team
• Sets the direction of the business
14
Scrum Roles
• Product owner
• Sets the direction of the product
• Collects the new requirements from
all of the stakeholders
• Prioritizes the requirements
• “The voice of the customer” for the
development team
• Doesn’t have a permission to interfere
the daily development work
• Is NOT a manager of the team
15
Scrum Roles
• Scrum master
• Responsible for the scrum process
• Makes sure the Scrum principals are
obeyed
• Facilitates
• Takes care of the practical things
• “Servant leader“
• Removes impediments
• Anything which prevents or slows down the
working of the development team
• “A team’s bulldozer”
• Acts as a buffer between the development
team and the rest of the world
• Shields the team against any external
interference
• Keeps everything visible!
• Is NOT a manager of the team
16
Scrum Roles
• Development team (scrum team)
• Typical size: 5–9 people
• Responsible to deliver the product
increment
• Commits to the sprint goals agreed
with the product owner
• Self-organizing
• Cross-functional
• Protected against any external
interference
 Allowed to be concentrated to work
only on things it does the best –
delivering the product increment of
the current sprint
17
Question
Can one person have more than just one role?
18
Scrum Roles
• Avoid situation where one person has more than one role
• Sometimes it’s not possible
• Scrum master + product owner = conflicts of interest
• Scrum master + team member = no real scrum master
• Make sure everyone understands the roles
• Which responsibilities belong to each role
• Common mistakes which ARE NOT TRUE:
• Scrum master is the “Project manager”
• Product owner is the “Project manager”
• Product owner is responsible for the business
• Scrum master controls the requirements (user stories)
• Team members report to scrum master in daily meetings
19
Recap – any questions?
• Business owner
• “The boss”
• Product owner
• Manages the requirements
• Knows what the customer wants
• Scrum master
• Ensures the scrum principles are followed
• Ensures the development team is fully functional and productive
• Scrum team / Development team
• Organizes itself and its work
20
Scrum Practices – Sprint planning
• Product backlog
• Collection of “stuff” to be done “someday”
• Typically a list of requirement
specifications for new features
• Could include also “studies”, “issues”,
“bugs” or any work which takes the
development team’s time
• Single requirement is called PBI, Product
Backlog Item
• Anyone can add new items into the
product backlog
• Items must be prioritized
• “Features A, D and G are the most
important!”
• Product owner is responsible for the
priority order
• Requires close collaboration with all of the
stakeholders
• Priority must be updated frequently!
21
Scrum Practices – Sprint planning
• Sprint backlog
• A subset of the Product backlog
• List of the requirements for the current
sprint
• “These are the most important
requirements - today!”
• Content agreed together with the
product owner and the scrum team
• PO doesn’t have the power to decide
the content alone
• Scrum team has the power to “no,
that’s impossible”
• “What’s not in the backlog, doesn’t
exist”
• No one can ask the scrum team to do
anything outside the sprint content
22
Question
A big boss enters the development team’s room saying: “I have
a very important demo with a customer next week. I need you
to implement this sales statistics feature asap!” What
happens?
23
Scrum Practices – Sprint planning
• Product Backlog Item (PBI)
• Typically a requirement for a new
feature
• PBI must have
• A user story, which describes the
item
• An acceptance criteria, which defines
the Definition of Done (DoD)
• Additionally PBI can have
• Size estimation
• Story points
• Team votes the size
• Accuracy improves slowly
• Business value estimation
• “How much we want it?”
• “How much it hurts us to not to
have it”
24
MySQl daily backup and restoration mechanism
As a customer, I don’t want to lose my data if the MySQL
server crashes.
Acceptance criteria:
• There are automatic daily backups done for all the data in database
• Restoration scripts are manual
• After incident occurred, solved and servers running, data restoration
should be possible to do in 1 hour
• These new features are documented internally
• All these features have been tested and no open bugs remain
• Other parts of the system has not been broken by these modifications
Recap – any questions?
• Product backlog
• Collection of work to do
• Sprint backlog
• A subset of Product backlog
• Defines the goals for the current sprint
• Product Backlog Item (PBI)
• A feature requirement or any other work which takes time
25
Scrum Practices – Sprint planning
• Task list
• TODO list of everything one must do
during the sprint
• Tasks are created from the content of
the sprint backlog items
• Shows the status of the sprint
progress
• Keeps track of the daily development
work
26
Task list example – Beginning of the sprint
User story
Not started
Implement
the UI
As an end user, I
want to… blaa blaa
blaa… so that I can…
Write the
test cases
blaa blaa blaa
Run the test
cases
Task A
As an administrator,
I want to….
Task B
Task C
Task D
27
In progress
Done
Task list example – In the middle of the sprint
User story
Not started
In progress
Write the
test cases
As an end user, I
want to… blaa blaa
blaa… so that I can…
Implement
the UI
blaa blaa blaa
Run the test
cases
Task A
As an administrator,
I want to….
Task B
Task C
Task D
28
Done
Task list example – In the middle of the sprint
User story
As an end user, I
want to… blaa blaa
blaa… so that I can…
Not started
In progress
Run the test
cases
Done
Write the
test cases
Implement
the UI
blaa blaa blaa
Task A
As an administrator,
I want to….
Task B
Task C
Task D
29
Task list example – At the end of the sprint
User story
As an end user, I
want to… blaa blaa
blaa… so that I can…
Not started
In progress
Done
Write the
test cases
Implement
the UI
blaa blaa blaa
Run the test
cases
Task A
As an administrator,
I want to….
Task B
Task C
Task D
30
Task list example
31
Task list example
32
Task list example
33
Question
Who assigns the tasks for individual team members?
34
Scrum Practices – Sprint in action
• Daily Scrum
• Daily stand-up meeting for the team to
share information
• The meeting must be so short and
efficient that people don’t have to sit,
5 to 10 min
• Every team member is asked:
• What did you do yesterday?
• What will you do today?
• Do you have any impediments with
your work?
• When it’s not your turn to speak,
SHUT UP and listen!
• Scrum master makes sure the
discussion keeps on track
35
Question
A team starts to use the daily scrum practice, what will change?
36
Scrum Practices
• Sprint review meeting
• All the stakeholders are invited
• The scrum team demonstrates what
was built during the sprint
• Product owner declares whether the
acceptance criteria was met for each
item, or not
• Accepted items have permission to be
released
37
Question
What happens, if an item doesn’t meet the acceptance criteria?
38
Scrum Practices
• Retrospective meeting
• Feedback meeting after every sprint
• Facilitated by the scrum master
• The team considers
• “What did we do well”
• “What can we do better?”
• Translate to actions
• “Inspect and adapt”
39
Recap – any questions?
• Task list
• TODO list for the sprint
• Team members pick tasks for themselves
• Daily scrum
• Daily stand-up meeting to share information
• Kept short and efficient
• Sprint review
• Team demonstrates the outcome of the sprint to Product owner
• Retrospective meeting
• The scrum team analyzes their own process
40
How to write a user story
• Template: As a <some role>, I want <something>, so that <some value>
• Describes who wants, what wants and what for in one sentence
• Examples:
• “As an end user I want to be able to upload my picture to my profile page, so that my
profile page looks cool”
• “As a sales person, I want to see statistics of my performance in graphical charts, so that I
monitor my performance”
• “As an administrator, I want to have database backups, so that I won’t be in big trouble if
something unexpected happens”
• User story does not define any details of the implementation!
• Every user story needs a Definition of Done (acceptance criteria)
41
Definition of Done
• Definition of Done must describe exactly what “done” means
•
•
•
•
Product Owner must pay careful attention when defining the DoD
The scrum team must challenge the DoD, if necessary
“What’s not in DoD, is not needed”
Item is either “done” or “not done”
• Example:
• Story: Picture upload
•
•
•
•
•
•
•
end user can upload his/her picture from profile settings page
picture is shown on the left upper corner of the profile page
picture is scaled to fit the profile picture box on the profile page
functional tests are passed
regression tests are passed
design documents are updated
user's guide is updated
• Does not define any details of the implementation!
42
How to define tasks
• What’s a good size for a task?
• You don’t know before you try
• Some tips and hints:
• If completing the task takes more than you can do in one day, ask yourself: “Can I split this in two?”
• If it takes more time to write the tasks than doing the tasks, ask yourself: “Am I writing too small tasks?”
• BUT… If a very small task is critical and easy to forget, maybe it’s a good idea to put it on the task board
• Be clear on writing the task
• Any team member must understand what the task is about
• New tasks occur in every project
• Any team member can write new tasks when needed
• Leave some room for surprises
• Remember the team is self-organized, DON’T assign tasks to people
• If you pick a task, the rest of the team trust you really do that task
• You should finish the task before picking the next one
43
Task examples
• Story:
• Tasks:
• “As an end user I want to be able to upload my
picture to my profile page, so that my profile
page looks cool”
• Acceptance criteria (DoD):
• end user can upload his/her picture from profile
settings page
• picture is shown on the left upper corner of the
profile page
• picture is scaled to fit the profile picture box on
the profile page
• functional tests are passed
• Update DB structure (1h)
• Implement changes to “Profile settings” page
(3h)
• NOTE: Ask the product owner for picture size
limitations
• Implement changes to “Profile” page (3h)
• NOTE: picture goes to left upper corner
• NOTE: picture must be scaled to fit the picture
box
• Code review (4h)
• regression tests are passed
• Update design documents (1h)
• design documents are updated
• Update user’s guide (1h)
• user's guide is updated
• Write test cases (5h)
• Test case review (15h)
• Run functional test cases (4h)
• Run regression test cases (4h)
• TOTAL HOURS: 39
44
Question
What are your organization’s values?
45
Scrum Values
• Scrum has five values
• Commitment
Commitment
Focus
Be willing to commit to
a goal. Scrum
provides the tools for it.
Do your job. Focus all
your efforts and skills
on doing the work that
you’ve committed to
doing. Don’t worry
about anything else.
• Focus
• Openness
• Respect
Openness
• Courage
Scrum keeps
everything about a
project visible to
everyone.
• WARNING: If your team lacks these
values, you will most probably fail in
scrum implementation
Courage
Have the courage to
commit, to act, to be
open and to expect
respect.
46
Respect
Individuals are shaped
by their background
and their experiences.
It is important to
respect the different
people who comprise a
team.
The end
Thank you!
47