scrum - atlanta code camp

28
Scrum Intro and overview

Upload: esteban-garcia

Post on 06-May-2015

1.311 views

Category:

Technology


0 download

DESCRIPTION

Scrum is not a new concept but it has gained a lot of popularity in the last few years. It is a very powerful agile project management methodology that, when used correctly, can help your team deliver better software faster than before. We will start with a brief overview of the process and look at some techniques and tools that will help you succeed, as well as common pitfalls that you should avoid. Come prepared for an interactive session where you will be encouraged to share your experiences with Scrum.

TRANSCRIPT

Page 1: Scrum - Atlanta Code Camp

ScrumIntro and overview

Page 2: Scrum - Atlanta Code Camp

What is Scrum?

• Agile development methodology• Helps cross-functional teams commit and deliver

high-quality, production-ready code in phases• Scrum is an iterative process for developing any

product or managing any work, which produces a potentially shippable set of functionality at the end of every iteration.

• Scrum engages developers to produce the major pieces of an application in less time than by traditional methods

Page 3: Scrum - Atlanta Code Camp

Characteristics

• Self-organizing teams• Product progresses in a series of two- to four-week

“sprints”• Requirements are captured as items in a list of

“product backlog”• No specific engineering practices prescribed• Uses generative rules to create an agile

environment for delivering projects• One of the “agile processes”

Page 4: Scrum - Atlanta Code Camp

Scrum goals

• Team environment & communication• Quality product• Provide more information on project

progress early on• Ability to adjust to business needs

Page 5: Scrum - Atlanta Code Camp

Traditional Approach

Analyze Design Code Test Release

Time is spent on every phase, but the client doesn’t see any benefit until the end

Major changes due to business needs are not easily incorporated into the design

QA does not get involved until the end which results in very costly bug fixes

Page 6: Scrum - Atlanta Code Camp

Using Scrum

Page 7: Scrum - Atlanta Code Camp

Time boxes

• Release Planning Meeting• Sprint• Sprint Planning Meeting• Sprint Review• Sprint Retrospective• Daily Scrum

Page 8: Scrum - Atlanta Code Camp

Process• Sprint planning meeting

– Allows product owner and team to see what will be delivered

– Team addresses “What” and “How”– Sprint goal is set– Items are moved from the product backlog into

a sprint– Sprint backlog is created

Page 9: Scrum - Atlanta Code Camp

Process• Daily Scrum meetings

– Allows team to see entire picture everyday– Short meeting, team members answer the

following:• What did I work on since the last meeting?• What will I work on until we meet again?• What impediments are preventing me from getting

my tasks done?

– Not a status meeting

Page 10: Scrum - Atlanta Code Camp

Process

• Sprint review meeting– Occurs at the end of the sprint– Product is demo’d– Product owner can accept/reject the

deliverables– Review Product backlog at the end

Page 11: Scrum - Atlanta Code Camp

Process

• Sprint retrospective– Discuss what went well and what to improve in the next

sprint– Team is encouraged to revise processes in order to

become more effective on the following sprint– Inspect how the last Sprint went in regards to people,

relationships, process and tools– The product owner does not attend this meeting.– Start/Stop/Continue

Page 12: Scrum - Atlanta Code Camp

Team dynamics

• Self-organizing teams– No one person is in charge of the team’s decisions– Team is responsible for committing and delivering– Cross-functional teams (BSA, QA, developers, PM)

Page 13: Scrum - Atlanta Code Camp

Backlogs

• Product Backlog– The requirements for a system– Prioritized list – Includes both functional and non-functional

customer requirements, as well as technical team-generated requirements.

• Sprint Backlog– Defines the work for a sprint– Represented by the set of tasks that must be

completed to realize the sprint's goals

Page 14: Scrum - Atlanta Code Camp

Burn-down chart

• Tracks how much value has yet to be delivered• Work remaining is the Y axis and time is the X

axis• Sprint burn-down charts show daily progress• Product burn-down chart show monthly (per

sprint) progress.

Page 15: Scrum - Atlanta Code Camp

Burn-down chart

0 1 2 3 4 5 6 7 8 9 100

20

40

60

80

100

120

Daily ProgressIdeal

Page 16: Scrum - Atlanta Code Camp

Done

• Every sprint should produce “potentially shippable” code

• Team must define what “Done” means to them

• Everyone should have the same understanding of “Done”

Page 17: Scrum - Atlanta Code Camp

Let’s build a website!

An E-commerce website is needed for your sportswear company

Product Backlog:Story Points

As a user, I can view the company’s inventory 5

As a user, I can purchase items from the inventory 13

As a user, I can view my orders 8

As a user, I can cancel my unfulfilled orders 5

As a user, I can track my order 5

As a user, I can make billing inquiries 3

As a user, I can chat with a sales agent 13

Story Points

As a user, I can view the company’s inventory

As a user, I can purchase items from the inventory

As a user, I can view my orders

As a user, I can cancel my unfulfilled orders

As a user, I can track my order

As a user, I can make billing inquiries

As a user, I can chat with a sales agent

Page 18: Scrum - Atlanta Code Camp

Sprint backlog

– Break down the tasks from the product backlog and make a commitment for the sprint: “As a user, I can view the company’s inventory”

Task HoursSetup new web project 4Create web layout 16Create inventory schema 8Populate inventory tables 4Test/verify data schema 8Create LINQ data mappings 4Populate screen with inventory data 16Test inventory site 14

Total 74

Page 19: Scrum - Atlanta Code Camp

Calculating Velocity

Task Hours Day 1 Day 2 Day 3 Day 4 Day 5

Setup new web project 4 0 0 0 0 0Create web layout 16 12 10 2 0 0Create inventory schema 8 8 0 0 0 0Populate inventory tables 4 4 4 0 0 0Test/verify data schema 8 8 8 0 0 0Create LINQ data mappings 4 4 4 2 0 0Populate screen with inventory data 16 16 16 16 8 0Test inventory site 14 14 14 14 6 0

Total 74 66 56 34 14 0

Task Hours Day 1 Day 2 Day 3 Day 4 Day 5

Setup new web project 4 0 0 0 0Create web layout 16 12 10 2 0Create inventory schema 8 8 0 0 0Populate inventory tables 4 4 4 0 0Test/verify data schema 8 8 8 0 0Create LINQ data mappings 4 4 4 2 0Populate screen with inventory data 16 16 16 16 8Test inventory site 14 14 14 14 6

Total 74 66 56 34 14

Task Hours Day 1 Day 2 Day 3 Day 4 Day 5

Setup new web project 4 0 0 0Create web layout 16 12 10 2Create inventory schema 8 8 0 0Populate inventory tables 4 4 4 0Test/verify data schema 8 8 8 0Create LINQ data mappings 4 4 4 2Populate screen with inventory data 16 16 16 16Test inventory site 14 14 14 14

Total 74 66 56 34

Task Hours Day 1 Day 2 Day 3 Day 4 Day 5

Setup new web project 4 0 0Create web layout 16 12 10Create inventory schema 8 8 0Populate inventory tables 4 4 4Test/verify data schema 8 8 8Create LINQ data mappings 4 4 4Populate screen with inventory data 16 16 16Test inventory site 14 14 14

Total 74 66 56

Task Hours Day 1 Day 2 Day 3 Day 4 Day 5

Setup new web project 4 0Create web layout 16 12Create inventory schema 8 8Populate inventory tables 4 4Test/verify data schema 8 8Create LINQ data mappings 4 4Populate screen with inventory data 16 16Test inventory site 14 14

Total 74 66

Page 20: Scrum - Atlanta Code Camp

Burndown Chart

Start 1 2 3 4 5

0

10

20

30

40

50

60

70

80Sprint Burndown

Page 21: Scrum - Atlanta Code Camp

Velocity Chart

1 2 3 4 50

5

10

15

20

25

Page 22: Scrum - Atlanta Code Camp

Quality

Focus on creating “production ready” deliverables at the end of each sprint– Product is designed, coded, unit tested, peer reviewed, built

and QA tested during the sprint– Never sacrifice quality

• If an item cannot be delivered, negotiate with project owner• It should be apparent early in the process if something will not be

delivered

– A sprint should always run through completion to maintain quality of code base.

– At the end of each spring, a decision can be made regarding the direction of the project.

– Lack of focus on quality reduced efficiency over time

Page 23: Scrum - Atlanta Code Camp

Communication

• Sprint planning meetings allow the project owner and team to see what will be delivered and have a common “Sprint Goal”

• Sprint back-log is updated daily to show progress and possible estimation errors

• Sprint burn-down chart shows progress throughout the sprint (generated from the sprint back-log)

• Daily scrum meetings foster communication about daily tasks and allows the entire team to assess the project on a daily basis

Page 24: Scrum - Atlanta Code Camp

Tools – Planning Poker

• Combines expert opinion, analysis to provide quick/reliable estimates

• Includes entire team• Use special cards or modified playing card• Have fun

Page 25: Scrum - Atlanta Code Camp

Tools – Task Board

Source: http://www.mountaingoatsoftware.com/system/hidden_asset/file/29/MockedTaskBoard.jpg

Page 26: Scrum - Atlanta Code Camp

Software Tools

• Whiteboard• Excel• TFS (Scrum Templates)• TeamPulse• ScrumWorks• Rally Software

Page 27: Scrum - Atlanta Code Camp

Common pitfalls

• Mini-waterfalls in each sprint• Making changes to the process before trying it

out• ScrumMaster behaving as a team lead• Allowing sprints to go on longer than planned• Bug-creep• Developer-level burn-downs• QA not part of the process

Page 28: Scrum - Atlanta Code Camp

Conclusion

• Scrum allows for better communication• Scrum helps with transparency• Scrum exposes existing problems and

surfaces new problems as soon as they come up

• Scrum helps you learn from the past