practicing agile development since 2002 csm x 4, cspo x 2 contracted ken schwaber taught agile to...

46
agile software development mark duvall @ USC, november 2011

Upload: maura-allanson

Post on 28-Mar-2015

216 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: practicing agile development since 2002 csm x 4, cspo x 2 contracted ken schwaber taught agile to 100s agile alliance, acm, ieee mike cohn disciple delivered

agile software development

mark duvall @ USC, november 2011

Page 2: practicing agile development since 2002 csm x 4, cspo x 2 contracted ken schwaber taught agile to 100s agile alliance, acm, ieee mike cohn disciple delivered

• practicing agile development since 2002• csm x 4, cspo x 2• contracted ken schwaber• taught agile to 100s• agile alliance, acm, ieee• mike cohn disciple • delivered dozens of projects w/agile• been through 100s of sprints

agile bio

Page 3: practicing agile development since 2002 csm x 4, cspo x 2 contracted ken schwaber taught agile to 100s agile alliance, acm, ieee mike cohn disciple delivered

references mike cohn, http://www.mountaingoatsoftware.com/ agile alliance, http://www.agilealliance.org/ scrum alliance, http://scrumalliance.org/ crisp blog, http://blog.crisp.se/

Page 4: practicing agile development since 2002 csm x 4, cspo x 2 contracted ken schwaber taught agile to 100s agile alliance, acm, ieee mike cohn disciple delivered

a great time to be in software development agile development is a well established practice agile adoption is high many companies practicing agile development many companies are in agile transition

Page 5: practicing agile development since 2002 csm x 4, cspo x 2 contracted ken schwaber taught agile to 100s agile alliance, acm, ieee mike cohn disciple delivered

• software anthropology• empowers the team• leverages collaboration• focus on organizing your work• continuously improve• adoption of best practices• creating a cadence

preface

Page 6: practicing agile development since 2002 csm x 4, cspo x 2 contracted ken schwaber taught agile to 100s agile alliance, acm, ieee mike cohn disciple delivered

software development• notoriously difficult to deliver

• on-time • on-budget

• quest for determinism • estimation models• formalized processes • organizations to manage process• documentation driven

Page 7: practicing agile development since 2002 csm x 4, cspo x 2 contracted ken schwaber taught agile to 100s agile alliance, acm, ieee mike cohn disciple delivered

differences

command & control

document driven

serial in nature

big upfront design

test late

bureaucratic

Heavy, rigid process

team & roles

self managing team

high bandwidth communication

iterative

evolutionary/iterative design

test early

collaboration

Lightweight, tailorable process

team & roles

non-agile development agile development

Page 8: practicing agile development since 2002 csm x 4, cspo x 2 contracted ken schwaber taught agile to 100s agile alliance, acm, ieee mike cohn disciple delivered

waterfallsystem

requirements

detailedrequirements

functionalspecification

high level design

detailed design

code

test

delivery

system requirements specification

software requirements specificationmarketing requirements document

functional specification

high level design document

detailed design document

code complete milestone

qa acceptance document

product launch

Page 9: practicing agile development since 2002 csm x 4, cspo x 2 contracted ken schwaber taught agile to 100s agile alliance, acm, ieee mike cohn disciple delivered

scrum

design + code + testplandefine review

iterate

user stories functional software

Page 10: practicing agile development since 2002 csm x 4, cspo x 2 contracted ken schwaber taught agile to 100s agile alliance, acm, ieee mike cohn disciple delivered

agile manifesto 2001

individuals and interactions over processes and tools working software over comprehensive documentation customer collaboration over contract negotiation responding to change over following a plan

Page 11: practicing agile development since 2002 csm x 4, cspo x 2 contracted ken schwaber taught agile to 100s agile alliance, acm, ieee mike cohn disciple delivered

agile tenants build software incrementally deliver value quickly commitment driven self organizing and managing teams continuous improvement high bandwidth communications evolutionary design customer intimacy success is functioning software maintain a sustainable pace

Page 12: practicing agile development since 2002 csm x 4, cspo x 2 contracted ken schwaber taught agile to 100s agile alliance, acm, ieee mike cohn disciple delivered

scrum oopsla 1995, schwaber & southerland lightweight process framework ability to incorporate best practices inspection and adaptation - error correction iterate and refactor time-boxes collocated teams quality never sacrificed for dates shippable product quality at each sprint definition of “done”

Page 13: practicing agile development since 2002 csm x 4, cspo x 2 contracted ken schwaber taught agile to 100s agile alliance, acm, ieee mike cohn disciple delivered

done code complete all code checked into source code control (TFS) all tests checked into source code control passes coding standards (stylecop) passes peer code review (team review) passes static code analysis (ndepend) builds on build server (tfs) builds with no warnings in pre-build area (shelf set) all unit test & test automation executes in dev/qa/pre-prod environments all unit test pass unit test code coverage is 65% no priority 1 defects no profiling issues (dotTrace) documented accepted by product owner

Page 14: practicing agile development since 2002 csm x 4, cspo x 2 contracted ken schwaber taught agile to 100s agile alliance, acm, ieee mike cohn disciple delivered

scrum team pigs (no chickens) team size 7-12 pigs cross functional

sm, po, dev, qa, ia, design self managing collocated

Page 15: practicing agile development since 2002 csm x 4, cspo x 2 contracted ken schwaber taught agile to 100s agile alliance, acm, ieee mike cohn disciple delivered

roles product owner

classically the product managermaximizes roi of each sprintmanages the product backlog

scrum masterdevelopment manager or project managerenforces process, insures process adherence impediment removalfacilitates communications

scrum teamcross functional team that builds the productmaintains sprint backlog

Page 16: practicing agile development since 2002 csm x 4, cspo x 2 contracted ken schwaber taught agile to 100s agile alliance, acm, ieee mike cohn disciple delivered

user stories a feature description as a <role>, i want <goal> so that <reason> invest

independentnegotiablevaluable to usersestimate-ablesmalltestable

Page 17: practicing agile development since 2002 csm x 4, cspo x 2 contracted ken schwaber taught agile to 100s agile alliance, acm, ieee mike cohn disciple delivered

product backlog the new age requirement specification/mrd/prd live repository of all project work

user stories defects

managed by product owner contributed to by anyone prioritized estimated

by scrum team story points

subset moved to sprint backlog; every sprint

Page 18: practicing agile development since 2002 csm x 4, cspo x 2 contracted ken schwaber taught agile to 100s agile alliance, acm, ieee mike cohn disciple delivered

scrum basic mechanics

Product Owner Defining user stories Refines user stories Release planning

User Story Estimation Scrum team together estimates each user story (points)

Task Breakdown Scrum team together creates tasks (hrs) for each user story

Sprint Planning Sprint ReviewDaily Scrum Daily Scrum

Daily Scrum Daily meeting Standup Same time, same place 15min time-box All Scrum team members Task movement

Answer 3 questions Accomplished in last 24hrs Working on next 24hrs Impediments

Review Burndown

Demo PO demos each completed user story for acceptance

Retrospective Scrum team does a post mortem on the sprint

Product Backlog

Sprint Backlog

2 Time-boxed meetings User Story Estimation Task Breakdown

2 Time-boxed meetings Demo Retrospective

New age MRD/PRD Live repository

Page 19: practicing agile development since 2002 csm x 4, cspo x 2 contracted ken schwaber taught agile to 100s agile alliance, acm, ieee mike cohn disciple delivered

flow

Page 20: practicing agile development since 2002 csm x 4, cspo x 2 contracted ken schwaber taught agile to 100s agile alliance, acm, ieee mike cohn disciple delivered

sprint planning

first day of the sprintproduct backlog - n hour time-boxed

○ backlog walkthrough

○ estimate and prioritize storiessprint backlog - n hour time-boxed

○ list tasks for implementing stories

○ assign hours and resources

Page 21: practicing agile development since 2002 csm x 4, cspo x 2 contracted ken schwaber taught agile to 100s agile alliance, acm, ieee mike cohn disciple delivered

estimation

story pointsrelativistic educated guessimate of effortnot directly correlated to time non-linear numbers like fibonacci sequencet-shirt sizing (xs,x,m,l,xl)use for sprint planning (capacity)

epicstory too large to fit in a sprintbroken down into smaller stories

Page 22: practicing agile development since 2002 csm x 4, cspo x 2 contracted ken schwaber taught agile to 100s agile alliance, acm, ieee mike cohn disciple delivered

estimation process product backlog estimation

discuss of each story planning poker - team until backlog empty or time-box expires prioritize – by po

assign stories to sprint backlog based on team’s velocity assume initial velocity as 65%

assign tasks to sprint stories <8 hour tasks *assign owners

adjustments move stories back if velocity is exceeded

Page 23: practicing agile development since 2002 csm x 4, cspo x 2 contracted ken schwaber taught agile to 100s agile alliance, acm, ieee mike cohn disciple delivered

planning poker• iterative approach• adapted from delphi• entire scrum team participates• everyone has a deck of story point cards

• user story discussion • everyone selects a card privately• cards are revealed• discuss outliers • re-estimate till convergence or timebox

• http://www.planningpoker.com

Page 24: practicing agile development since 2002 csm x 4, cspo x 2 contracted ken schwaber taught agile to 100s agile alliance, acm, ieee mike cohn disciple delivered

sprint backlog repository of work for each sprint

user stories○ broken down into tasks○ task granularity 8-16hrs

managed by scrum team updated daily, in real-time

Page 25: practicing agile development since 2002 csm x 4, cspo x 2 contracted ken schwaber taught agile to 100s agile alliance, acm, ieee mike cohn disciple delivered

composition

Page 26: practicing agile development since 2002 csm x 4, cspo x 2 contracted ken schwaber taught agile to 100s agile alliance, acm, ieee mike cohn disciple delivered

electronic task board

Page 27: practicing agile development since 2002 csm x 4, cspo x 2 contracted ken schwaber taught agile to 100s agile alliance, acm, ieee mike cohn disciple delivered

physical task board

Page 28: practicing agile development since 2002 csm x 4, cspo x 2 contracted ken schwaber taught agile to 100s agile alliance, acm, ieee mike cohn disciple delivered

daily scrum daily meeting same place, same time time-boxed 15 minutes standup $1 for being late no one can interrupt the current speaker keep details post daily scrum 3 questions

what did you accomplish in the last 24 hrs? what are you going to work on in the next 24hrs? any impediments?

review burndowns post scrum

Page 29: practicing agile development since 2002 csm x 4, cspo x 2 contracted ken schwaber taught agile to 100s agile alliance, acm, ieee mike cohn disciple delivered

daily scrum

Page 30: practicing agile development since 2002 csm x 4, cspo x 2 contracted ken schwaber taught agile to 100s agile alliance, acm, ieee mike cohn disciple delivered

burndown chart

Page 31: practicing agile development since 2002 csm x 4, cspo x 2 contracted ken schwaber taught agile to 100s agile alliance, acm, ieee mike cohn disciple delivered

sprint review

last day of the sprint demo - n hour time-boxed

○ demonstrate sprint accomplishments○ story acceptance walk through○ log defects for next sprint

retrospective - n hour time-boxed

○ what went right?○ what went wrong?○ what can we do to improve?

Page 32: practicing agile development since 2002 csm x 4, cspo x 2 contracted ken schwaber taught agile to 100s agile alliance, acm, ieee mike cohn disciple delivered

best practices • relativistic estimation• evolutionary design• vertical slices• continuous integration• test early, test often• high flow • eliminate waste • fail quickly • shorter sprints• test driven development• pair programming• peer code review• information radiators

Page 33: practicing agile development since 2002 csm x 4, cspo x 2 contracted ken schwaber taught agile to 100s agile alliance, acm, ieee mike cohn disciple delivered

scrum anti-patterns

“manager” estimates work developers not doing their own task breakdowns untrackable sprints no customer value in sprint partially complete sprints story or task creep in sprint backlog no definition of “done” working on tasks not in the sprint backlog qa under utilized testable software completed late in the sprint lack of peer accountability or commitment impediments not immediately addressed floating timeboxes

Page 34: practicing agile development since 2002 csm x 4, cspo x 2 contracted ken schwaber taught agile to 100s agile alliance, acm, ieee mike cohn disciple delivered

continuous integration

build automation systembuilds are triggered by source code check-insunit tests are executed as part of each buildtests are executed in the context of a profilerstatic code analysiseach build is versionedeach build is deployedtest automation scripts execute

Page 35: practicing agile development since 2002 csm x 4, cspo x 2 contracted ken schwaber taught agile to 100s agile alliance, acm, ieee mike cohn disciple delivered

real world agile web development

site development team composition6 developers2 qa engineers1 ia1 designer1 scrum master1 product owner

Page 36: practicing agile development since 2002 csm x 4, cspo x 2 contracted ken schwaber taught agile to 100s agile alliance, acm, ieee mike cohn disciple delivered

site development

• established cadence• 1 week sprints

• cascading deliverables• 5 weeks of ia & design• 6 weeks of development• ~390 us, ~4000 tasks• velocity: 69-79%

wireframing & user stories

graphic design/site layout

development

Page 37: practicing agile development since 2002 csm x 4, cspo x 2 contracted ken schwaber taught agile to 100s agile alliance, acm, ieee mike cohn disciple delivered

development environment rally for agile lifecycle management

product backlogsprint backlogproject boardsburndowns & metrics

microsoft shopc#, .net framework 4.0asp.net mvc 3.0castle windsor diendeca search enginecruisecontrol .netsubversionndependsnunit, selenium

Page 38: practicing agile development since 2002 csm x 4, cspo x 2 contracted ken schwaber taught agile to 100s agile alliance, acm, ieee mike cohn disciple delivered

page template inventory

n page typeshome departmentbrand browsesearch resultsbest sellingspecial, gift, promotioncollectionskucart / accounthelp and other static content

Page 39: practicing agile development since 2002 csm x 4, cspo x 2 contracted ken schwaber taught agile to 100s agile alliance, acm, ieee mike cohn disciple delivered

page decomposition

page elementsheaderfooterleft navigationright spinebody

Page 40: practicing agile development since 2002 csm x 4, cspo x 2 contracted ken schwaber taught agile to 100s agile alliance, acm, ieee mike cohn disciple delivered

page element decomposition

header (user controls)main imageprimary navigationsecondary navigationsearchminicartaccount/sign inbreadcrumbs

Page 41: practicing agile development since 2002 csm x 4, cspo x 2 contracted ken schwaber taught agile to 100s agile alliance, acm, ieee mike cohn disciple delivered

sashimi slices

vertical sliverpresentation tier

○ mvc user controlsbusiness logic/application tier

○ injected via dirules for content acquisition/filtering/sortingpage rules

- seo, microformats, analytics, remarketing data tier

○ content retrieval

Page 42: practicing agile development since 2002 csm x 4, cspo x 2 contracted ken schwaber taught agile to 100s agile alliance, acm, ieee mike cohn disciple delivered

release planning

4hr timebox release 1

minimal deliverable feature set release 2

defectsinternational shippingreporting

release 3site enhancements

Page 43: practicing agile development since 2002 csm x 4, cspo x 2 contracted ken schwaber taught agile to 100s agile alliance, acm, ieee mike cohn disciple delivered

sprint planning

2hr timebox consume 2-4 page types per sprint address higher risk stories first critical tasks addressed first

Page 44: practicing agile development since 2002 csm x 4, cspo x 2 contracted ken schwaber taught agile to 100s agile alliance, acm, ieee mike cohn disciple delivered

sprint review

2hr timebox capture defects add to product backlog retrospective iterate until product backlog is empty

Page 45: practicing agile development since 2002 csm x 4, cspo x 2 contracted ken schwaber taught agile to 100s agile alliance, acm, ieee mike cohn disciple delivered

what’s next

it’s all about flowkanban

○ managing wip○ value streams

Page 46: practicing agile development since 2002 csm x 4, cspo x 2 contracted ken schwaber taught agile to 100s agile alliance, acm, ieee mike cohn disciple delivered

questions