Some problems are just hard, some people are just difficult.
These methods are not salvation.
- Craig Larman, Agile & Iterative Development, 2004
Built in instability
Team members are given the freedom to do research and creativity but at the same
time expected to produce to high standards.
Teams take on self organizing character where prior knowledge does not apply
Left to stew the process creates a dynamic order where team creates it own agenda,
takes risks and creates new concepts
Multi-learning
Subtle control
Transfer of learning
10 year study by the Standish Group. The Standish Group has boiled
down their research to the following list of factors that make software projects
successful. The factors, from their year 2000 study, are listed in order of
importance:
1. Executive Management Support (18)
2. Users Directly Involved (16)
3. Experienced Project Managers (14)
4. Clear Business Objectives (12)
5. Small Milestones (10)
6. Standard Software Infrastructure (8)
7. Firm Basic Requirements (6)
8. Formal Methodology (6)
9. Reliable Estimates (5)
10. Other (5)
Overview
Agile
Agile
Agile
Agile
Agile
Impetus
Background
Principles
Methods
Balance
Agile Impetus
People are more important than any process. Good people with a good
process will outperform good people with no process every time.
- Grady Booch Object Solutions: Managing The Object Oriented
Project, 1996
I found no interesting correlation in the projects that I studied among
process, language or tools and process success. A well functioning team
of adequate people will complete a project almost regardless of process
or technology theyre asked to use.
- Alistair Cockburn Agile Software Development, 2002
Response to Change
Discussion
Game of Chess
Command and Control vs. Empowered Teams
ASD Background
When did it all get started?
Adaptive/Predictive Scale
We are uncovering better ways of developing software by doing it and helping others do it.
Through this work we have come to value:
Kent Beck
Mike Beedle
Arie van Bennekum
Alistair Cockburn
Ward Cunningham
Martin Fowler
James Grenning
Jim Highsmith
Andrew Hunt
Ron Jeffries
Jon Kern
Brian Marick
Robert C. Martin
Steve Mellor
Ken Schwaber
Jeff Sutherland
Dave Thomas
http://www.agilemanifesto.org/
Key Principles
ASD Methods
How Do We Use Them?
Agile Methods
Face-to-Face Communication
Regular User/Customer Feedback
Time boxing
Daily Team Checkpoint
Deliver Highest Value First
Deliver Working Software, Early & Often
Agile Methods
Just-in-Time Stories
Relative Estimation & Story Points
Measure Velocity
Team Empowerment
Parallel Development and Testing
Daily Builds, Frequent Integration
Empirical Method (Iterate, Inspect, Adapt)
ASD Criteria
When is it right for us?
I have not failed. Ive just found 10,000 ways that wont
work.
- Thomas Edison
Risk Reduction
Agile Balance
Break
Scrum
Scrum
Scrum
Scrum
Scrum
Overview
Planning
Roles
Artifacts
Meetings
Scrum Overview
Developed in 1993
Scrum is one of several Agile Methodologies
Scrum is part of the Agile Alliance
Has been used on thousands of projects
Used internally by various Microsoft teams
Can manage projects of 2 - 3000 team members
Scrum Cycles
Program
2-n months
Project
2-n months
Release
2-6 months
Sprint
30 days
Daily Scrum
daily
This graph indicates the sharp decline in project success the longer a
project runs without shipping a release.
1-6 months seems to be the sweet spot.
Sprint 1
(Normal)
Sprint 2
(Normal)
Sprint 3
(Normal)
Sprint 4
(Release)
Sprint 5
(Normal)
Sprint 6
(Release)
Sprint 7
(Normal)
Sprint 8
(Release)
Scrum Planning
As we go!
At the start of each sprint, plan 30 days of scope.
Refine estimates, priorities and product backlog.
Scrum Roles
Product Owner
Establish vision
Set Sprint Goals
Set Priorities
Owns the Product Backlog
ScrumMaster
Stakeholder
Team
Observe
Advise
Organize work
Develop product
Communicate issues & progress
Scrum Artifacts
Product Backlog
Sprint Backlog
List of requirements
Owned by Product Owner
Anybody can add to it
Prioritized by business value
Can change without affecting the
active Sprint
Sprint Goal
Blocks List
Increment
Scope list
Prioritized by business
value
A, B, C feature
distinction
Rough estimates help
size the sprints
Granular tasks
(2-16 hours each)
Scrum Meetings
Sprint Planning - A
Daily Scrum
Sprint Planning - B
Sprint Review
Sprint Retrospective
Scrum on a Page
Sprint Vision
Sprint Backlog
Product Demo
What worked/didnt
How can next
sprint improve
Further Reading
Constraints
Time
Schedule
Resources
Budget
Human Resources
Infrastructure
Performance
Scope
Quality
User Acceptance / Customer Satisfaction
Maintainability / Architecture
Constraint Considerations
User interviews
Questionnaires (not usually a primary technique)
Observation
Story-Writing workshops
User Stories
Story
As a <role> I want <ability> so that <benefit>.
Description
Conditions of Acceptance
Consequence of Priority
Estimation Techniques
Estimation Techniques
Tangible Estimates
Tangible Estimates
St. Bernard
Great Dane
Dachshund
Terrier
German Shepherd
Poodle
Bull Dog
Labrador Retriever
Story Points
Forces the use of relative estimating
Studies have shown that we are better at this
Review
Engineering Prerequisites
Proper System Architecture / Hardware Environments
Application Lifecycle Management (ALM) Tools
Team Foundation Server
Physical Architecture/Environment
Staging
Build Process
Release
Dev
ALM
Tool
Integratio
n
(TFS)
Dev
Production
Option
al QA
Release
Staging
Productio
n
Testing debt is a threat to all Agile projects. This can be mitigated by adopting TDD practices.
Instills Discipline
Constantly Reports Health
Promotes an Ensures Quality
Automates Documentation
Consistent Deployment
Requires Less Manual CM Resource
73
Side Effects
Visual Studio
Team Foundation Server
SharePoint
Rhino Mocks
Selenium
Questions
Questions?
Noise
Unpredictable behavior that obscures focus and results
Is everywhere