agile in practice - george mason universitydfleck/classes/cs421/spring09... · •each developer...

37
Agile In Practice Benjamin Booth Spring 2009

Upload: others

Post on 05-Jul-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Agile In Practice - George Mason Universitydfleck/classes/cs421/spring09... · •Each developer has a set of cards with Fibonacci series numbers (2,3,5,8,13,etc..) • A user story

Agile In PracticeBenjamin Booth

Spring 2009

Page 2: Agile In Practice - George Mason Universitydfleck/classes/cs421/spring09... · •Each developer has a set of cards with Fibonacci series numbers (2,3,5,8,13,etc..) • A user story

Proprietary 2

Programmer/5

Page 3: Agile In Practice - George Mason Universitydfleck/classes/cs421/spring09... · •Each developer has a set of cards with Fibonacci series numbers (2,3,5,8,13,etc..) • A user story

Proprietary 3

Author/Blogger

Page 4: Agile In Practice - George Mason Universitydfleck/classes/cs421/spring09... · •Each developer has a set of cards with Fibonacci series numbers (2,3,5,8,13,etc..) • A user story

Agile Origins

• Goal: prove value with working software

• Lightweight approach

• Reaction to Waterfall failures

4

Page 5: Agile In Practice - George Mason Universitydfleck/classes/cs421/spring09... · •Each developer has a set of cards with Fibonacci series numbers (2,3,5,8,13,etc..) • A user story

Prescriptive-style

• Restrict change to improve predictions

• Drive with the plan

• Communicate with documents

• Interchangeable programmers

5

Page 6: Agile In Practice - George Mason Universitydfleck/classes/cs421/spring09... · •Each developer has a set of cards with Fibonacci series numbers (2,3,5,8,13,etc..) • A user story

Proprietary 6

Waterfall

Page 7: Agile In Practice - George Mason Universitydfleck/classes/cs421/spring09... · •Each developer has a set of cards with Fibonacci series numbers (2,3,5,8,13,etc..) • A user story

Proprietary 6

Waterfall

Page 8: Agile In Practice - George Mason Universitydfleck/classes/cs421/spring09... · •Each developer has a set of cards with Fibonacci series numbers (2,3,5,8,13,etc..) • A user story

Waterfall Is

Page 9: Agile In Practice - George Mason Universitydfleck/classes/cs421/spring09... · •Each developer has a set of cards with Fibonacci series numbers (2,3,5,8,13,etc..) • A user story

Waterfall Not all

8

• Space shuttle flight control system

• Requirements are well defined

• Unlimited resources

• Useful for < 5% of all software projects

Page 10: Agile In Practice - George Mason Universitydfleck/classes/cs421/spring09... · •Each developer has a set of cards with Fibonacci series numbers (2,3,5,8,13,etc..) • A user story

Typical Planning

Page 11: Agile In Practice - George Mason Universitydfleck/classes/cs421/spring09... · •Each developer has a set of cards with Fibonacci series numbers (2,3,5,8,13,etc..) • A user story

Your • Add a ‘nice looking’ menu page to an existing

restaurant’s seven year old website.

• Need ability to edit the menu online. Current menus are stored in a MS Word document.

• Add ‘Suggestion’ capability to restaurant’s site. Users can use a form to submit suggestions which get stored and also emailed to the owner.

10

Page 12: Agile In Practice - George Mason Universitydfleck/classes/cs421/spring09... · •Each developer has a set of cards with Fibonacci series numbers (2,3,5,8,13,etc..) • A user story

Time? $$$?“Just give me

Page 13: Agile In Practice - George Mason Universitydfleck/classes/cs421/spring09... · •Each developer has a set of cards with Fibonacci series numbers (2,3,5,8,13,etc..) • A user story

Agile

• People (users) are the focus

• Measure success with working software

• Expect and embrace change

• Use small, skilled, motivated teams

12

Page 14: Agile In Practice - George Mason Universitydfleck/classes/cs421/spring09... · •Each developer has a set of cards with Fibonacci series numbers (2,3,5,8,13,etc..) • A user story

Agile - SCRUM

• Japanese origin

• Whole team

• 1995 OOPSLA, by Jeff Sutherland and Ken Schwaber

• Skeleton of practices and roles

13

Page 15: Agile In Practice - George Mason Universitydfleck/classes/cs421/spring09... · •Each developer has a set of cards with Fibonacci series numbers (2,3,5,8,13,etc..) • A user story

Proprietary 14

SCRUM Workflow

Page 16: Agile In Practice - George Mason Universitydfleck/classes/cs421/spring09... · •Each developer has a set of cards with Fibonacci series numbers (2,3,5,8,13,etc..) • A user story

SCRUM Roles

15

• Product Owner

• Team

• Scrum Master

Page 17: Agile In Practice - George Mason Universitydfleck/classes/cs421/spring09... · •Each developer has a set of cards with Fibonacci series numbers (2,3,5,8,13,etc..) • A user story

SCRUM Artifacts

• Backlog

• Sprint Burn Down

• Sprint Backlog

• Past Backlogs

16

Page 18: Agile In Practice - George Mason Universitydfleck/classes/cs421/spring09... · •Each developer has a set of cards with Fibonacci series numbers (2,3,5,8,13,etc..) • A user story

Proprietary 17

Backlog

Page 19: Agile In Practice - George Mason Universitydfleck/classes/cs421/spring09... · •Each developer has a set of cards with Fibonacci series numbers (2,3,5,8,13,etc..) • A user story

Backlog

18

• User + Points + Value = Priority

• Anyone on team can update it

• Points != Hours

Page 20: Agile In Practice - George Mason Universitydfleck/classes/cs421/spring09... · •Each developer has a set of cards with Fibonacci series numbers (2,3,5,8,13,etc..) • A user story

Proprietary 19

Sprint Backlog

Page 21: Agile In Practice - George Mason Universitydfleck/classes/cs421/spring09... · •Each developer has a set of cards with Fibonacci series numbers (2,3,5,8,13,etc..) • A user story

Sprint Backlog

20

• Story Points vs. Task Points

• Total Point Value <= Team Capacity

• Capacity Measured by Past Burndowns

• 1st Iteration is Guesswork

Page 22: Agile In Practice - George Mason Universitydfleck/classes/cs421/spring09... · •Each developer has a set of cards with Fibonacci series numbers (2,3,5,8,13,etc..) • A user story

Proprietary 21

Burndown Chart

Page 23: Agile In Practice - George Mason Universitydfleck/classes/cs421/spring09... · •Each developer has a set of cards with Fibonacci series numbers (2,3,5,8,13,etc..) • A user story

Burndown Tips

22

• Auto-calculate velocity & project finish

• Record added/dropped points

• Mark Code Yellow/Red days

• Code Yellow: No more new features

• Code Red: (QA Week) no more changes

Page 24: Agile In Practice - George Mason Universitydfleck/classes/cs421/spring09... · •Each developer has a set of cards with Fibonacci series numbers (2,3,5,8,13,etc..) • A user story

Past Iterations

• Keep old Sprint Backlogs & Burndowns

• Keep old tasks

• Use for velocity calculations

• Helps identify trends

23

Page 25: Agile In Practice - George Mason Universitydfleck/classes/cs421/spring09... · •Each developer has a set of cards with Fibonacci series numbers (2,3,5,8,13,etc..) • A user story

Planning the SCRUM way

Page 26: Agile In Practice - George Mason Universitydfleck/classes/cs421/spring09... · •Each developer has a set of cards with Fibonacci series numbers (2,3,5,8,13,etc..) • A user story

• Each developer has a set of cards with Fibonacci series numbers (2,3,5,8,13,etc..)

• A user story is presented

• Each developer picks the card representing the number of story points the user story should take

• Everyone then shows their cards

• Discussion happens until agreement on a numberigate to the menu from the home page so that I can make a phone order (delivery)

• Repeat for each user story

• Schedule a sprint with the required number of story points based on your team’s velocity

25

Planning Poker

Page 27: Agile In Practice - George Mason Universitydfleck/classes/cs421/spring09... · •Each developer has a set of cards with Fibonacci series numbers (2,3,5,8,13,etc..) • A user story

• easily navigate to the menu from the home page so that I can make a phone order (delivery)

• be able to make suggestions for improvements to my overall dining experience

26

As a patron, I

Page 28: Agile In Practice - George Mason Universitydfleck/classes/cs421/spring09... · •Each developer has a set of cards with Fibonacci series numbers (2,3,5,8,13,etc..) • A user story

As the restaurant • create, update and delete menu items so that it

stays interesting and keeps people coming back

• generate a PDF of the menu so that I can give it to the printer for creating ‘real’ menus

• get customer feedback emailed to me so I can quickly respond to problems and also pass on compliments to the staff

27

Page 29: Agile In Practice - George Mason Universitydfleck/classes/cs421/spring09... · •Each developer has a set of cards with Fibonacci series numbers (2,3,5,8,13,etc..) • A user story

SCRUM

• You’re velocity is 1.5 points per developer day

• You’re team will have 15 developer days available each month

28

Page 30: Agile In Practice - George Mason Universitydfleck/classes/cs421/spring09... · •Each developer has a set of cards with Fibonacci series numbers (2,3,5,8,13,etc..) • A user story

Proprietary 29

Scrum Taskboard

Page 31: Agile In Practice - George Mason Universitydfleck/classes/cs421/spring09... · •Each developer has a set of cards with Fibonacci series numbers (2,3,5,8,13,etc..) • A user story

SCRUM

30

• Informal

• Physical

• Highly visible

• Ensures open accountability & communication

Page 32: Agile In Practice - George Mason Universitydfleck/classes/cs421/spring09... · •Each developer has a set of cards with Fibonacci series numbers (2,3,5,8,13,etc..) • A user story

Agile Challenges

• Access to real customers

• Large, distributed teams

• Industry misperceptions

• Command-and-control culture

31

Page 33: Agile In Practice - George Mason Universitydfleck/classes/cs421/spring09... · •Each developer has a set of cards with Fibonacci series numbers (2,3,5,8,13,etc..) • A user story

In-Practice Tips

• Introduce internally

• Strategy and architecture a must

• Strategy drives estimates

32

Page 34: Agile In Practice - George Mason Universitydfleck/classes/cs421/spring09... · •Each developer has a set of cards with Fibonacci series numbers (2,3,5,8,13,etc..) • A user story

In-Practice Tips

• Plan out-of-sprint breaks

• Allocate QA time

• Keep PM simple but do it

• Keep improving your process

33

Page 35: Agile In Practice - George Mason Universitydfleck/classes/cs421/spring09... · •Each developer has a set of cards with Fibonacci series numbers (2,3,5,8,13,etc..) • A user story

Summary

• Waterfall or nothing still predominant

• Agile is highly adaptive, people centric

• SCRUM is an effective Agile process skeleton

• If your process isn’t working adapt it

34

Page 36: Agile In Practice - George Mason Universitydfleck/classes/cs421/spring09... · •Each developer has a set of cards with Fibonacci series numbers (2,3,5,8,13,etc..) • A user story

Q&A