Title: Agile 101
1Agile 101
- Overview and the Role of the Product Owner
Ross Hobbie
2Agenda
- Agile 101
- How We Got Here
- Agile Manifesto Principles
- Scrum
- Agile and Product Management The Role of the
Product Owner - Product Managers Role
- Requirements Process
- User Stories
- Questions?
NOTE Many ideas and concepts are borrowed from
Mike Cohn, Kent Beck, Ron Jeffries, Ward
Cunningham, Ken Schwaber, Kert Peterson, Laureen
Knudsen and Joe Little. Thanks for the help!
3Why IT Projects Fail
- Only 16.2 of software projects that are
completed on time and on-budget - 31.1 of projects will be cancelled before they
ever get completed - 52.7 of projects will cost 189 of their
original estimates - The average overrun is 222 of the original time
estimate - Top 3 factors that cause project challenges
- Lack of User Input
- Incomplete Requirements Specifications
- Changing Requirements Specifications
Statistics From the Standish CHAOS Report
4The 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.
http//agilemanifesto.org
5Principles of Agile
- Our highest priority is to satisfy the customer
through early and continuous delivery of valuable
software. - Welcome changing requirements, even late in
development. Agile processes harness change for
the customer's competitive advantage. - Deliver working software frequently, from a
couple of weeks to a couple of months, with a
preference to the shorter timescale. - Business people and developers must work together
daily throughout the project. - Build projects around motivated individuals. Give
them the environment and support they need, and
trust them to get the job done. - The most efficient and effective method of
conveying information to and within a development
team is face-to-face conversation.
http//agilemanifesto.org
6Principles of Agile
- Working software is the primary measure of
progress. - Agile processes promote sustainable development.
The sponsors, developers, and users should be
able to maintain a constant pace indefinitely. - Continuous attention to technical excellence and
good design enhances agility. - Simplicity--the art of maximizing the amount of
work not done--is essential. - The best architectures, requirements, and designs
emerge from self-organizing teams. - At regular intervals, the team reflects on how to
become more effective, then tunes and adjusts its
behavior accordingly.
http//agilemanifesto.org
7Scrum
- Scrum is an iterative, incremental process for
developing any product or managing any work.
Scrum accepts that the best designs and the
clearest requirements can rarely be fully defined
ahead of time and need to be allowed to emerge. - Scrum consists of a series of Sprints (a.k.a.
iteration) - Each Sprint is 2-4 weeks long in duration
- Each Sprint produces a working increment of
software - Between Sprints, all interested parties evaluate
progress - Between Sprints, all interested parties
reevaluate technical and business requirements - Work is reestablished and the team enters into
another Sprint
8Scrum Roles
- Product Owner
- Responsible for managing and prioritizing the
Product Backlog, and for accepting the software
at the end of each iteration - Scrum Master
- Responsible for shepherding the team, removing
impediments, keeping the process moving, and
socializing scrum to the greater organization - The Team
- Responsible for estimating size of backlog items,
committing to increments of deliverable software
and delivering it. Tracks own progress (with
Scrum Master). Is self-organizing but
accountable to the product owner for delivering
as promised.
9Scrum Roles
Product Owner
- Responsible for managing and prioritizing the
Product Backlog, and for accepting the software
at the end of each iteration
CONSTANT COLLABORATION AND COMMUNICATION ARE KEY
The Team
Scrum Master
Responsible for estimating size of backlog
items, committing to increments of deliverable
software and delivering it. Tracks own
progress (with Scrum Master). Is self-organizing
but accountable to the product owner for
delivering as promised.
- Responsible for shepherding the team, removing
impediments, keeping the process moving, and
socializing scrum to the greater organization
10Scrum Framework
11Product Backlog
- A prioritized list of features represented as
stories - Managed by Product Owner
- Priorities are driven by business value measured
in terms of ROI - cost of implementation
- revenue impact
- business risks
- technical dependencies
- Represented as stories
- A story is the smallest unit of functionality
that an user can benefit from - Some stories maybe technical in nature
(infrastructure type)
12Sprint Backlog
- A prioritized list of stories taken from the top
of the product backlog based on the teams
estimate of how much it can handle in an
iteration - Managed by Development Team
- Created at the start of an iteration/sprint
- Stories can be re-scoped during iteration
- Split into more narrowly focused stories
- A story can be de-scoped (move back to product
backlog) - New stories should not be added
13Scrum Meetings
- Estimation Meeting
- Team meets with product Owner to discuss Backlog
Items and assign a relative size value to each. - Planning Meeting
- Occurs at the start of each sprint (iteration).
Two parts. - 1. Product manager and team meet and agree the
next product increment. - 2. Team then determines the tasks for each
backlog item. - Daily Scrum Meetings
- Maximum 15 minutes. Team meets to update the
task chart and report on progress and
impediments. - Review
- Team meet with Product Owner at the end of the
sprint to demonstrate the working software from
the sprint. - Retrospective
- Team meets with Scrum Master to inspect and adapt
on their process.
14Estimation
- Prioritize Product Backlog
- Estimate Size of Product Backlog Items
- Ideal Days vs. Person Days
- Story Points/Relative Weighting
- Planning Poker (www.planningpoker.com)
- Team Velocity
- How much can team accomplish in one sprint
- Release Planning
- Total Backlog Points/Velocity Sprints
15Testing
- Early involvement
- An Agile project begins when testers convert
high-level requirements into testable
specifications. - Work as part of the development team
- The testers work with the developers to pick unit
test and acceptance test frameworks, and to test
the software in parallel with development. This
requires a shift in thinking. - Automate everything
- (wherever possible)
- Test early, test often
- Never leave the testing until the end
16Product Management
- Customer is a role, not a person
- Also known as Product Manager, Product Owner
- Proxy/advocate for the entire customer group
- You are the voice of the customer!
- Responsible for the Release Plan
- Responsible for managing the Product Backlog
- Determines business value priority on a regular
basis - Provides information to development team for
estimation purposes - Works with testers to produce clear, testable
user stories for each iteration - Inspects software regularly (e.g. runs acceptance
tests) and provides feedback to the development
team
17Requirements Process
Marketing/Customer Requirements
Use Cases / Epic User Stories
Product Backlog / User Stories
18User Stories
- User Story - A description of desired
functionality told from the perspective of the
user or customer. - Story-based development
- Story is a role-based description of a portion of
a requirement - Small enough to be implemented within an
iteration - Description provided by Product Owner, effort and
risk provided by developer - Acceptance conditions critical to the story
- Product Owner writes the acceptance criteria
- Lets the team know when they are done
- Keep stories from being design
- Encourage test driven development
- Enforce rapid feedback thus quality
- Enforce quality over time through automation
19User Story Format
- Three Cs Card, Conversation, Confirmation
- Each story has Business Value
- Communicates between all parties
- Not too small (gt 1 person day) Best 3-4 person
days - Not an epic (thus, lt 8 person days)
- Completion within One Iteration. Done!
- Functional Non-functional
- To be revised (modify, add)
20Format/Examples
- As a ltuser rolegt, I want ltgoalgt so that
ltreasongt. - Auto Dealership Website Examples
- As a user, I want to search inventory for
vehicles that match my criteria. - As a sales manager, I want to remove vehicles
from inventory that are no longer available. - As a user, I want to schedule a service
appointment. - As a service manager, I want to offer online
coupons.
21User Roles
- Broaden the scope from looking at one user
- Allows users to vary by
- What they use the software for
- How they use the software
- Background
- Familiarity with the software / computers
- Used extensively in usage-centered design
22Epic Stories / Themes
- As a user, I want to schedule a service
appointment. - EPIC - As a returning user, I want to login to the
service department website - As a user, I want to view recommended service for
my vehicle - As a user, I want to select an appointment date
and time for service - As the system, I want to send the user a
confirmation email once service is scheduled
23INVEST
INDEPENDENT
INVEST
NEGOTIABLE
VALUABLE
ESTIMABLE
SMALL
TESTABLE
24Why User Stories?
- Stories shift focus from writing to talking
- Stories are equally understandable by developers
and customers - Stories are the right size for testing
- Stories support participatory design
- Stories emphasize the users goals not the
systems attributes
25Resources
- Web Sites
- www.agilemanifesto.org
- www.scrumalliance.org
- www.controlchaos.com
- www.mountaingoatsoftware.com
- agileaustin.org
- Recommended Books
- User Stories Applied For Agile Software
Development - Mike Cohn
- Agile Project Management with Scrum
- Ken Schwaber
- Agile Estimating and Planning
- Mike Cohn
26Questions?
27Thank You PCA Sponsors!