Sei sulla pagina 1di 48

An Introduction

to Agile / Scrum

Mountain Goat Software,


LLC

Agile, what is Agile?


1. A specific set of values and principles, as
expressed in the Agile Manifesto.
2. a group of software development methods
in which requirements and solutions evolve
through collaboration between selforganizing, cross-functional teams. It
promotes adaptive planning, Incremental /
Iterative development, early delivery,
continuous improvement, and encourages
rapid and flexible response to change
Mountain Goat Software,
LLC

The Agile Manifesto


Values of Agile
Individuals
Individuals and
and
interactions
interactions

over

Process
Process and
and tools
tools

Working
Working software
software

over

Comprehensive
Comprehensive
documentation
documentation

Customer
Customer
collaboration
collaboration

over

Contract
Contract
negotiation
negotiation

Responding
Responding to
to
change
change

over

Following
Following aa plan
plan

Source:
www.agilemanifesto.org
Mountain Goat Software,
LLC

The Agile Principles


1. Our highest priority is to satisfy the customer through early and
continuous delivery of valuable software.
2. Welcome changing requirements, even late in development. Agile
processes harness change for the customer's competitive advantage.
3. Deliver working software frequently, from a couple of weeks to a
couple of months, with a preference to the shorter time scale
4. Business people and developers must work together daily
throughout the project.
5. Build projects around motivated individuals. Give them the
environment and support they need, and trust them to get the job
done.
6. Face-to-face conversation is the best form of communication (colocation)
Mountain Goat Software,
LLC

Source: www.agilemanifesto.org

The Agile Principles


7. Working software is the primary measure of progress.
8. Sustainable development, able to maintain a constant pace
9. Continuous attention to technical excellence and good design enhances
agility.
10. Simplicity the art of maximizing the amount of work not done is
essential.
11. The best architectures, requirements, and designs emerge from selforganizing teams.
12. At regular intervals, the team reflects on how to become more effective,
then tunes and adjusts its behavior accordingly. Inspect and Adapt

Mountain Goat Software,


LLC

Source: www.agilemanifesto.org

1
2

4
1
1

1
2

10

Mountain Goat Software,


LLC

Mountain Goat Software,


LLC

Scrum

Mountain Goat Software,


LLC

Not So Agile Layers =


Horizontal

Mountain Goat Software,


LLC

Agile = Vertical Slice

Mountain Goat Software,


LLC

Agile = Vertical Slice

Mountain Goat Software,


LLC

Agile = Vertical Slice

Mountain Goat Software,


LLC

Scrum Framework
An iterative and incremental approach to developing
products and managing work.
Scrum is a way for teams to work together to develop a
product. Product development occurs in small pieces,
with each piece building upon previously created
pieces. Building products one small piece at a time
encourages creativity and enables teams to respond to
feedback and change, to build exactly and only what is
needed.

Mountain Goat Software,


LLC

Characteristics of Scrum

Self-organizing teams
Product progresses in a series of short

length sprints / Iterations (2 to 4


weeks long)
Requirements are captured as items in a
list Product Backlog
PBI / User
Stories
No specific engineering practices
prescribed
One of the agile processes
Mountain Goat Software,
LLC

Characteristics of Scrum

Mountain Goat Software,


LLC

Sequential vs. overlapping development

Requirements

Design

Code

Test

Rather than doing all


of one thing at a
time...
...Scrum teams do a
little of everything all
the time

Source: The New New Product Development Game by


Takeuchi and Nonaka. Harvard Business Review, January
1986.

Mountain Goat Software,


LLC

Scrum framework
Roles

Product

owner
ScrumMasterMeetings
Team
Sprint planning
Sprint review
Sprint
retrospective
Daily scrum
Artifact
meeting
sProduct backlog

Sprint backlog
Burndown charts
Mountain Goat Software,
LLC

Scrum framework
Roles

Product owner
ScrumMaster
Development Meetings
Team

Sprint planning
Sprint review
Sprint

retrospective
Daily scrum
Artifacts
meeting
Product backlog
Sprint backlog
Burndown charts
Mountain Goat Software,
LLC

Product owner
Define the features of the product
Decide on release date and content
Be responsible for the profitability of the

product (ROI)
Prioritize features according to market value
Adjust features and priority every iteration,
as needed
Accept or reject work results
Mountain Goat Software,
LLC

The ScrumMaster

Responsible to enforce Scrum values


and practices

Removes impediments
Ensure that the team is fully
functional and productive

Enable close cooperation across all


roles and functions

Shield the team from external


interferences

Mountain Goat Software,


LLC

The Development team

Typically 7 +/- 2 people


Cross-functional:

Programmers, testers, user

experience, BAs, designers, etc.

Members should be full-time (100%


dedicated)

May be exceptions (e.g., database


administrator)

Mountain Goat Software,


LLC

The Development team

Teams are self-organizing

Ideally, no titles but rarely a possibility

Membership should change only


between sprints

Mountain Goat Software,


LLC

Scrum framework
Roles

Product

Refinemen
t/
grooming

owner
ScrumMasterMeetings
Dev. Team
Sprint planning
Daily scrum
meeting
Sprint review
Sprint Artifacts
retrospective
Product backlog
Sprint backlog
Burndown charts
Mountain Goat Software,
LLC

Sprints

Scrum projects make progress in a

series of sprints / Iterations


Typical duration is 24 weeks or a
calendar month at most. Short Sprints
Iterations are preferred most common 2
weeks.
A constant duration leads to a better
rhythm
Product is designed, coded, and tested
during the sprint
Mountain Goat Software,
LLC

Sprint / Scrum Meetings


Sprint

Mountain Goat Software,


LLC

Sprint Planning meeting


Team
Team
capacity
capacity
Product
Product
backlog
backlog
Business
Business
conditions
conditions

Sprint planning
meeting

Sprint
Analyze and evaluate
prioritization
product backlog
Select sprint goal
Sprint planning

Decide how to achieve


Current
Current
product
product
Technolog
Technolog
yy

Sprint
Sprint
goal
goal

sprint goal (design)


Create sprint backlog
(tasks) from product
backlog items (user stories /
features)
Estimate sprint backlog in
hours

Mountain Goat Software,


LLC

Sprint
Sprint
backlo
backlo
g
g

Sprint planning
Team selects items from the product

backlog they can commit to completing


Sprint backlog is created

Tasks are identified and each is estimated (1-16

hours)
Collaboratively, not done alone by the
ScrumMaster

High-level design is considered


As
As aa vacation
vacation
planner,
planner, II want
want to
to
see
see photos
photos of
of the
the
hotels.
hotels.

Mountain Goat Software,


LLC

Code the middle tier (8 hours)


Code the user interface (4)
Write test fixtures (4)
Code the foo class (6)
Update performance tests (4)

No changes during a sprint

Change

Plan sprint durations around how long you


can commit to keeping change out of the
sprint

Mountain Goat Software,


LLC

The Daily scrum

Stand up meeting

Daily, same time


15-minutes
Everybody Stand-up

Not for problem solving

Only team members, ScrumMaster,


product owner, can talk
To plan the work day.

Helps avoid other unnecessary


meetings

Mountain Goat Software,


LLC

Everyone answers 3 questions

What Did I accomplish


yesterday?

What Do I plan to finish today?


Is there any impediment

keeping me to progress in my
task?
These are not status for the
ScrumMaster, PO nor the Managers

Mountain Goat Software,


LLC

Why the Daily Stand UP

Every day, the Development Team should understand


(PLAN) how it intends to work together as a selforganizing team to accomplish the Sprint Goal and
create the anticipated Increment by the end of the
Sprint.

The Development Team uses it to inspect progress

toward the Sprint Goal and to inspect how progress is


trending toward completing the work in the Sprint
Backlog.

These meeting is not a status for the ScrumMaster


nor the Managers, Project Mangers.

Mountain Goat Software,


LLC

The Sprint review

Team presents what it accomplished


during the sprint

Typically takes the form of a demo of


new features or underlying
architecture

Informal

2-hour prep time rule


No slides

Whole team participates


Mountain Goat Software,
LLC

The Sprint review

Mountain Goat Software,


LLC

Retrospective

A n inspect-and-adapt

activity performed at the


end of every sprint for the
Scrum team to review its
process and to identify
opportunities to improve it.

Mountain Goat Software,


LLC

Sprint retrospective

Periodically take a look at what is and


is not working
Done at the end of every sprint
Whole team participates

ScrumMaster (Facilitate the meeting)


Product owner
Team

Mountain Goat Software,


LLC

Sprint retrospective

Periodically take a look at what is and


is not working
Done at the end of every sprint
Whole team participates

ScrumMaster (Facilitate the meeting)


Product owner
Team

Mountain Goat Software,


LLC

Scrum framework
Roles

Product

owner
ScrumMasterCeremonies
Team
Sprint planning
Sprint review
Sprint
retrospective
Daily scrum
Artifacts
meeting
Product backlog
Sprint backlog
Burndown charts
Mountain Goat Software,
LLC

Product backlog
A list of all desired

Product
Product
backlog
backlog
Mountain Goat Software,
LLC

work (User Stories or


PBIs) on the project
Ideally expressed such
that each item has
value to the users or
customers of the
product
Prioritized by the
product owner
Reprioritized at the
start of each sprint

A sample product backlog


Backlog item

Estimate

Allow a guest to make a reservation


As a guest, I want to cancel a
reservation.
As a guest, I want to change the
dates of a reservation.
As a hotel employee, I can run
RevPAR reports (revenue-peravailable-room)
Improve exception handling
...
...

Mountain Goat Software,


LLC

5
3
8
8
30
50

A sprint backlog
Tasks
Tasks

Code the user


interface
Code the middle tier
Test the middle tier
Write online help
Write the foo class
Add error logging

Mountain Goat Software,


LLC

Mon
Mon Tues
Tues Wed
Wed Thur
Thur Fri
Fri
8

16

12

10

16

16

11

12
8

Managing the sprint backlog


Individuals sign up for work of their own
choosing
Work is never assigned

Estimated work remaining is updated


daily

Any team member can add, delete or


change the sprint backlog

Work for the sprint emerges


Mountain Goat Software,
LLC

Managing the sprint backlog


If work is unclear, define a sprint backlog
item with a larger amount of time and
break it down later

Update work remaining as more becomes


known

Mountain Goat Software,


LLC

Tasks
Tasks

Code the user


interface
Code the middle tier
Test the middle tier
Write online help

Mon
Mon Tues
Tues Wed
Wed Thur
Thur Fri
Fri
8
16
8
12

4
12
16

8
10
16

7
11

50

Hours

40
30
20
10
0

Mon

Mountain Goat Software,


LLC

Tue

Wed

Thu

Fri

Hours

A sprint burndown chart

Mountain Goat Software,


LLC

Incrementing builds a bit at a


time
Incrementally add software a time.
Each increment adds more software
=> sort of like adding bricks to a
wall. After lots of increments, you've
got a big wall.

Mountain Goat Software,


LLC

iterating builds a rough version,


validates it, then slowly builds up
quality
Iterating allows you
to move from vague
idea to realization

Mountain Goat Software,


LLC

Scaling through the Scrum of


scrums

Mountain Goat Software,


LLC

Copyright notice

You are free:

to Shareto copy, distribute and and transmit the


work

to Remixto adapt the work


Under the following conditions
Attribution. You must attribute the work in the

manner specified by the author or licensor (but not


in any way that suggests that they endorse you or
your use of the work).

Nothing in this license impairs or

restricts the authors moral rights.

Mountain
Goat Software,
For more
information see

LLC

Potrebbero piacerti anche