Scrum agile process

Preview:

DESCRIPTION

Scrum process presented by cuong@microsoft.com

Citation preview

cuong@microsoft.com

MANAGE YOUR PROJECT

DIFFERENTLY

Trịnh Minh Cường

cuong@microsoft.com

cuong@microsoft.com

WHAT IS THIS ?

cuong@microsoft.com

I HAVE A DREAM

• My project

o In Time

oWithin Budget

oMeet Requirements

• Members in my team

o Creative & responsive

oNot exhausted and not leave team

cuong@microsoft.com

Project Management Triangle

SCOPE COST

TIME

cuong@microsoft.com

Typical developer

• Personal interest is more than team interest

• Warm up time is long

• Good at patching but bad at designing

(problem solving style)

• Wait for thing happens but not make thing

happen

cuong@microsoft.com

Analysis Design Develop Test Deploy

Waterfall

cuong@microsoft.com

Parkinson’s Law

“Work expands so as to

fill the time available for its completion”

cuong@microsoft.com

Don’t assign one week task, Break it into smaller sub tasks !

Gantt chart gets bigger & bigger. No one can read Gantt chart

cuong@microsoft.com

Waterfall is easy to understand but it is not effective in real

cuong@microsoft.com

WHAT SCRUM CAN HELP?

cuong@microsoft.com

Agile

“Methodologies”

cuong@microsoft.com

Scrum is an Agile framework

Scrum is an iterative, incremental

framework for project management and

agile software development.

Agile … is a group of software

development methodologies based on

iterative and incremental development…

cuong@microsoft.com

Analysis Design Develop Test Deploy

Agile

cuong@microsoft.com

Analysis Design Develop Test Deploy Analysis Design Develop Test Deploy Analysis Design Develop Test Deploy

!

?

? !

Agile

cuong@microsoft.com

Principles of Agile #1

• Deliver valuable software early &

continuously

• Accommodate changes

• Collaborate with customer or customer

proxy

• Motivate individuals Self-organizing

teams Self tuning

cuong@microsoft.com

Principles of Agile #2

• Enforce effective & transparent

communication

• Measure of progress by working

software delivered. Highlight amount of

work not done

• Maintain a development speed

• Promote technical excellent and good

design

cuong@microsoft.com

DIFFERENCES

Plan Driven

• Self organizing team

• Deliver features

• Response to change

• Flexible

• Burn down chart

Scrum

• Hierarchy team

• Lot of document

• Follow plan

• Structure

• Gantt Chart

cuong@microsoft.com

Product Owner Scrum Master Scrum Team

Stakeholders & Users

Roles in Scrum

cuong@microsoft.com

Product Owner

• Define the features of the product

• Decide on release date and content

• Be responsible for the profitability of the

product (ROI)

• Prioritize features according to market value

• Adjust features and priority every iteration, as

needed

• Accept or reject work results

cuong@microsoft.com

The Scrum Master

• Manage project

• Enforce Scrum values and practices

• Help team to focus on tasks

• Enable close cooperation across all roles and

functions

• Shield the team from external interferences

cuong@microsoft.com

The team

• Typically 5-9 people

• Cross-functional:

– Programmers, testers, user experience designers, etc.

• Teams are self-organizing

– Ideally, no titles but rarely a possibility

• Membership should change only between sprints

cuong@microsoft.com

MResources = More Velocity?

8 16 12 24 16

cuong@microsoft.com

Scrum of Scrums

cuong@microsoft.com

Product Backlog Release Plan Product Vision

Sprint Backlog Sprint Burndown Impediment List

6 Artifacts

cuong@microsoft.com

Product – Sprint Backlog

cuong@microsoft.com

Product vs Sprint Backlog

Product BackLog Sprint BackLog

Level of detail Less detailed Very detailed

Item User Story Task

Estimation Units Story Points Hours

Doc owner Product Owner Team

Revised Weekly Daily

Duration Project Sprint

Workbook Product Backlog Iteration Backlog

cuong@microsoft.com

Product

Backlog

3

1

3

1

3

2

5

8

3

3

3

3

Product Backlog

Sprint 1

Sprint 2

Sprint 3

Sprint 4

Sprint 5

Release 1

Release 2

Release Plan

Project Planning

cuong@microsoft.com

User Story

• Independent

• Negotiable

• Valuable

• Estimatable

• Small

• Testable

As a <USER> I need to <ACTION> In order to <REASON>

User Story <StoryPoint>

Task 1 Task 2 Task 3

cuong@microsoft.com

User Story

• User Story == Use Case

• MosCow: Must – Should – Could – Wouldn’t

• Write non-functional requirements as user

stories

• Estimate Story Point http://stackoverflow.com/questions/1232281/what-are-

estimate-points-story-points-and-how-to-measure-them-

in-scrum

cuong@microsoft.com

Meetings in SCRUM

Meeting Purpose Duration Frequency

Sprint

Planning

Determine what work to do in

the coming sprint.

2 hours per

week

Once per

sprint

Daily

Scrum

Allow team members to

commit, collaborate, and

communicate risks.

15 minutes Daily

Sprint

Review

Show the customer and other

stakeholders the work that the

team accomplished in the

sprint, and receive feedback.

2 hours per

week

Once per

sprint

Retrospect

ive

Identify and implement ideas

for process improvement.

3 hours Once per

sprint

cuong@microsoft.com

Daily Scrum

• Daily, 15 minutes, whole team

• What did you do yesterday ?

• What will you do today ?

• What are impediments?

No need minutes meeting

Need a tool to keep track

user story, task, bug…

cuong@microsoft.com

Not Done In Progress Done Deferred User Stories

As a user I

want this to

do that.

As a user I

want this to

do that.

As a user I

want this to

do that.

Do this

and

that.

Do this

and

that.

Do this and that.

Do this

and

that.

Do this

and

that.

Do this

and

that.

Do this

and

that.

Do this

and

that.

Do this

and

that.

Sprint Task Board

cuong@microsoft.com

“Music Store” web site

• Team : 1 PM - 1 dev – 1 ux designer

• Mission: Develop “Music Store” site in 3

months.

• Every 2 weeks must show customer progress

• Team work 5 days a week, 8 hours per day

(Utilize rate 75% ~ 6 hours per day)

cuong@microsoft.com

Example Solution

• Each Sprint takes 2 weeks

• 4 months 8 Sprints

• Each sprint, a person burns 5*2*6=60 hours.

A team burns 60*3=180 hours

Idle hours will not be counted

Hours which used to complete task will be counted as burnt hours

cuong@microsoft.com

Process to develop a web site

cuong@microsoft.com

Product backlog

Priority Backlog item Story Point

Estimate

1 User can see list of category 3

2 User clicks on a category, list of product under category will show

5

3 At front page, user sees 20 suggested item 3

4 Registered user can rate, commend a item 8

5 Administrator can send message to registered user 8

6 Administrator can create new item 30

7 ….

cuong@microsoft.com

The sprint goal

A short statement of what the work will be

focused on during the sprint

Tune render speed at client Tune server response Configure memcached caching

Design static prototype web site XHTML, CSS validation jQuery interaction

UX Prototyping

Database Design

CodeFirst EF 4 to generate data Generate sample data

Show top 20 restaurants Personalize data per user List restaurant by A-Z, styles, …

Performance

Restaurant List

cuong@microsoft.com

Time 1 Sprint = 2 weeks

Wo

rk H

ou

rs R

emai

nin

g

180 hrs.

0 hrs.

Burn Down Chart

Learning Curve

Team speeds up

cuong@microsoft.com

Time 1 Sprint = 2 weeks

Wo

rk H

ou

rs R

emai

nin

g

180 hrs.

0 hrs.

What happen?

Bugs happen

Urgent task

cuong@microsoft.com

•Product owner •ScrumMaster •Team

Summarize

•Product backlog •Sprint backlog •Burndown charts

•Sprint planning •Sprint review •Sprint retrospective •Daily scrum meeting

Roles

Event

Artifacts

cuong@microsoft.com

cuong@microsoft.com

WHAT

TEAM FOUNDATION SERVER

CAN HELP ?

cuong@microsoft.com

Big picture

cuong@microsoft.com

SubVersion, CVS, GIT are SCM only

Bug Tracking

Project Management

Quality Control

Deployment

Report

SCM: Source Code Management

cuong@microsoft.com

Much more than a SCM

Tester

Developer

Architect

Project Manager

Business Analyst

Designer Database Professional

Team Foundation Server

cuong@microsoft.com

What TFS can do

Process Focused

Process Templates

SharePoint

Customizable

Version Control

Integrated Check-in

Check-in Policies

Shelving

Work Item Tracking

Manage work

Bugs, Tasks, Requirements, Stories, Risks, etc.

Very Extensible

Build Automation

Continuous Integration

Scheduled

Ad Hoc

Reporting

Decision Support

Track Project Progress

Team

Fo

un

dat

ion

Se

rver

cuong@microsoft.com

From S To XXL

cuong@microsoft.com

Building blocks

Data Tier

Data Warehouse

Version Control

Work Items Team Build

SQL Server

Windows SharePoint Services Web Services

Application Tier

SQL Reporting Services

Client Interface

Visual Studio

Team Explorer MS Project

MS Excel

TFS SDK

Command Line

Build Environment

Build Process

Version Control Proxy

Version Control Proxy

Service

cuong@microsoft.com

Deployment

Dev Team (Local) Dev Team (Remote)

Business User

TCP/IP

HTTP / S

Win 2008 Server SQL Server 2008 IIS 7.0

Team Foundation Server

Build Server

Version Control Proxy (Remote) Active Directory

cuong@microsoft.com

Topology: single server

TFS AT

HR

Applications

Single Server

TFS

cuong@microsoft.com

Consolidate backend DB

TFS AT

HR

Applications

Data Tier

Clustered SQL

Server

Scale (a little), SQL Consolidation

cuong@microsoft.com

Bigger

TFS AT

HR

Applications

Finance Applications

Team Project

Collection

Company Web site

Another SQL

Server

TFS AT

TFS AT

N

L

B

VIP

Isolation, Reliability, Scale

Network Load

Balancing

cuong@microsoft.com

More Bigger

TFS AT

HR

Applications

Finance Applications

Company Web site

TFS AT

TFS AT

N

L

B

SharePoint Farm

Data Warehouse

Project Server

TFS Build

Farm

Virtual Machine Manager

TFS

Proxies

Test Rig

cuong@microsoft.com

Process Focused

Process Templates

SharePoint

Customizable

Version Control

Integrated Check-in

Check-in Policies

Shelving

Work Item Tracking

Manage work

Bugs, Tasks, Requirements, Stories, Risks, etc.

Very Extensible

Build Automation

Continuous Integration

Scheduled

Ad Hoc

Reporting

Decision Support

Track Project Progress

VERSION CONTROL

Team

Fo

un

dat

ion

Se

rver

cuong@microsoft.com

Map Server to Local

Per User, Per Workstation

Changes in Workspace create

“Pending Changes”

Also Used for Builds

Workspaces: local working copy

cuong@microsoft.com

Changesets

• Logical container of data related to check-in

– File and branch information

– Links to work items

– Check-in notes

– Check in Policy

– Metadata (date-time, user)

– Atomic checkin

• Uniquely identified

• Trace & query easilly

cuong@microsoft.com

Check-in Policies

• Soft requirements for check-in

• Extensible

• Can be overridden

cuong@microsoft.com

Client Server vs Distributed SCM

• Clients push-pull master

repository.

• A client hold only a working

copy of a project tree

• Changes by client commits the

master repository before they

propagate to other users

Exchanging patches

(change-sets) from

peer to peer

cuong@microsoft.com

Client Server vs. Distributed

• TFS, CVS, SVN, Perforce, Vault are client-

server SCM

• Git, Mercurial are distributed SCM

• Distributed SCM:

oNo canonical, reference copy of the codebase

exists by default; only working copies

o Basic operations (c-in, c-out) are fast

o Each working copy acts as remote backup

o Suitable for Open Source development but not

commercial development

cuong@microsoft.com

TFS & FRIENDS

cuong@microsoft.com

Visual Studio TFS

Visual Studio 2005

Visual Studio 2008

Visual Studio 2010

Team Foundation Server 2010

Team Foundation Server 2008

cuong@microsoft.com

With VB, VC++ 6.0, VS2003

• Upgrade to Service Pack 6

• Install Team Foundation Server MSSCCI

Provider

cuong@microsoft.com

Excel TFS

cuong@microsoft.com

Outlook TFS

• Email notification

• TeamCompanion

• TeamLook

cuong@microsoft.com

Think TFS as web service provider

• Include these namespace

– Microsoft.TeamFoundation.Proxy;

– Microsoft.TeamFoundation.Client;

– Microsoft.TeamFoundation.Server;

– Microsoft.TeamFoundation.WorkItemTracking.Client

• Windows Form app connects to TFS

http://blogs.microsoft.co.il/blogs/shair/archiv

e/tags/TFS+API/default.aspx?PageIndex=2

cuong@microsoft.com

With SharePoint Server

• Install on SharePoint Foundation 2010

• Install on SharePoint Server 2010: full

features

• Connect to MS Project Server 2010

cuong@microsoft.com

For Non-.NET Development

• Team Explorer Everywhere

– Eclipse plug-in for TFS

– Rich client (Java-based)

– Command-Line

cuong@microsoft.com

cuong@microsoft.com

Process

Process Templates

SharePoint

Customizable

Version Control

Integrated Check-in

Check-in Policies

Shelving

Work Item Tracking

Manage work

Bugs, Tasks, Requirements, Stories, Risks, etc.

Very Extensible

Build Automation

Continuous Integration

Scheduled

Ad Hoc

Reporting

Decision Support

Track Project Progress

Team

Fo

un

dat

ion

Se

rver

cuong@microsoft.com

CMMI 5.0 Agile 5.0

SCRUM 1.0 MPT 1.0

Default templates

Customed templates

X Y

Process Templates

cuong@microsoft.com

A Process Template

Process Template

Process Guidance

User Story

Task

Bug

Issue

Test Case Custom Work

Item

Reportings

Work Item

cuong@microsoft.com

Work Item

Agile 5.0

• Task

• Bug

• Change Request

• Test Case

• Requirement

• Review

• Issue

• Risk

• Shared Steps

CMMI 5.0

• User Story

• Task

• Test Case

• Bug

• Issue

• Shared Steps

cuong@microsoft.com

Work Item Tracking

• Create, Update, Change status

• Link

• Associate with changeset

• Query

cuong@microsoft.com

User Story

Implementation

cuong@microsoft.com

Process Focused

Process Templates

SharePoint

Customizable

Version Control

Integrated Check-in

Check-in Policies

Shelving

Work Item Tracking

Manage work

Bugs, Tasks, Requirements, Stories, Risks, etc.

Very Extensible

Build Automation

Continuous Integration

Scheduled

Ad Hoc

Reporting

Decision Support

Track Project Progress

REPORTING

cuong@microsoft.com

cuong@microsoft.com

Using SCRUM/Agile likes driving fast car

You need reliable brake and airbag system

cuong@microsoft.com

QUALITY CONTROL

cuong@microsoft.com

cuong@microsoft.com

Automated Unit Test

• Write Once, Run Often

• Configurable Test Script

• Programmable Test Logic

• No human input

• Auto generate bug report

• Trigger action: build / notification

cuong@microsoft.com

Traditional Test

Design

Implement

Test

cuong@microsoft.com

TDD: Test Driven Design

Design

Test

Implement

cuong@microsoft.com

Acceptance Test

User Story Acceptance Test

Task

1 1..n

1

1..n

Unit Test 1 1..n

cuong@microsoft.com

State transition of a user story

cuong@microsoft.com

CONTINOUS INTEGRATION

Process Focused

Process Templates

SharePoint

Customizable

Version Control

Integrated Check-in

Check-in Policies

Shelving

Work Item Tracking

Manage work

Bugs, Tasks, Requirements, Stories, Risks, etc.

Very Extensible

Build Automation

Continuous Integration

Scheduled

Ad Hoc

Reporting

Decision Support

Track Project Progress

Team

Fo

un

dat

ion

Ser

ver

cuong@microsoft.com

CI in TFS 2010

cuong@microsoft.com

Team Foundation Build

• Manual: run by team member

• Continous: queued by a check-in

• Rolling: accumulated until previous build

finishes

• Gated check in: Check-in is accepted only if

submitted changes merge and build

successfully

• Scheduled: run on a defined schedule

cuong@microsoft.com

ARCHITECT & MODELLING

cuong@microsoft.com

cuong@microsoft.com

cuong@microsoft.com

cuong@microsoft.com

cuong@microsoft.com

cuong@microsoft.com

ROI ANALYSIS OF SUCCESSFUL

SCRUM & TFS DEPLOYMENT

cuong@microsoft.com

ROI Analysis for dev team

120-150% More productive

Fix bug earlier. Fixing cost 70-90%

Amount of captured know-how 200-300%

cuong@microsoft.com

ROI Analysis for customer

Receive workable software regularly

Control investment better

Get better quality software

cuong@microsoft.com

keywords to remember

cuong@microsoft.com

Khổng Tử said

What U listen, U forget

What U see, U remember

What U do, U understand

What U teach, U master

cuong@microsoft.com

Learning Resource

• Web

– 12 Principles of Agile

• SlideShare

– Project Management with SCRUM

– Intro to Agile

• Blogs

– http://blog.mountaingoatsoftware.com/

– http://blogs.msdn.com/b/aaronbjork/

cuong@microsoft.com

THANKS FOR YOUR ATTENTION.

CUONG@MICROSOFT.COM

Recommended