agile and cmmi

15
Agile and CMMI Perficient China

Upload: vernon-stinebaker

Post on 13-Jan-2015

2.481 views

Category:

Business


2 download

DESCRIPTION

Presentation made at SEPG China 2007 meeting in Hangzhou. Selected as one of the top 10 presentations at the conference.

TRANSCRIPT

Page 1: Agile And Cmmi

Agile and CMMI

Perficient China

Page 2: Agile And Cmmi

Agenda

Brief Overview of Agile MethodologiesComparing Agile and CMMIWhy CMMI?Enhancing Agility with CMMI

Page 3: Agile And Cmmi

Agile Manifesto

We are uncovering better ways of developing software by doing it and helping others do it.Through this work we have come to value:

Individuals and interactions over processes and toolsWorking software over comprehensive documentation

Customer collaboration over contract negotiationResponding to change over following a plan

That is, while there is value in the items onthe right, we value the items on the left more.

http://www.agilemanifesto.org

Page 4: Agile And Cmmi

Common Agile Methods

eXtreme Programming (XP) [Beck]Scrum [Schwaber]Feature-Driven Development (FDD) [de Luca]Crystal Methodolgies [Cockburn]Lean Software Development [Poppendieck]BoldDelivery [Perficient]

Page 5: Agile And Cmmi

BoldDelivery Methodology

Page 6: Agile And Cmmi

Why CMMI?

Our motivations in pursuing CMMI include:– As a new technology consulting company, CMMI compliance would

improve our marketability. – Leverage CMMI to institutionalize the BoldDelivery methodology.

• Have the processes in place to support rapid growth• We don't want our agile processes to degrade into undisciplined code-

and-fix cycles.

Page 7: Agile And Cmmi

From a CMMI perspective

Agile

Unstructured and unmeasured

No defined organizational

standard

Success relies on people (high

risk)

Less control (Less measurement)

Suitable ONLY for SMALL project

CMMI

Structured (Roadmap to improve)

Organizational knowledge

repository

Success relies on documented

and repeatable process

Statistically control performance

Scalable to any project size

Page 8: Agile And Cmmi

From an agile perspective

Agile

Lightweight Process Minimize Documentation

(eliminate waste)

Embrace Change Acknowledge that things will

change

Iterative (Minimize cost of

change)

Focus on delivering working

software

CMMI

Heavyweight Process

– Document Centric (extra work)

Plan Driven (Not flexible)

– Linear or Waterfall

(Upfront design to minimize

down stream change)

Focus on conformance to

Process and Specification

Delivery not stressed

Page 9: Agile And Cmmi

Addressing misconceptions

CMMIHeavyweight Process

Plan Driven (Not flexible)

Focus on Process and Specification

AgileUnstructured and unmeasured

No defined organizational standard

Success relies on people (high risk)

Less control (Less measurement)

Suitable ONLY for SMALL project

CMMI Heavyweight process/copious documentation not “required”

Waterfall not required: Flexible, iterative processes can be applied

Focus is delivery of results through formal, measured process

Agile Velocity, Burndown Charts, Parking Lot Charts, Delivery

Scrum/FDD well defined

Success relies on people and process

Measured and focused

Proven to work across a range of project sizes

Page 10: Agile And Cmmi

No Fundamental Conflict Between Agile and CMMI

CMMI and Agile methods both aspire to:– Improve productivity and quality

– Improve customer satisfaction

– Meet cost and schedule objectives

– Deliver Results

CMMI is flexible– The Specific Goals (SGs) and Generic Goals (GGs) are Required

• How to accomplish these goals is not specified• Specific Practices and Generic Practices are Expected• We use BoldDelivery to satisfy the goals and practices• When we identify goals or practices not satisfied by the existing methodology, we

enhance.• When we enhance, we still consider lightweight

Page 11: Agile And Cmmi

Example: QPM

SG1 Quantitatively Manage the Project

SP 1.1 Establish the Project’s Objectives

• Set up project objective for quality and velocity for each iteration based on the data of previous iterations and business needs from client.

SP 1.2 Compose the Defined Process • Tailor the project process based on organizational process performance data.

• Revise the project process based on the feedback from retrospective and the collected data from previous iterations.

SP 1.3 Select the Sub processes that Will Be Statistically Managed

• Select sub-processes based on problems found of previous iteration (probably during retrospective meeting).

SP 1.4 Manage Project Performance • Use statistical analysis to control process performance. SQA can help PM to do statistical analysis and control the performance.

Page 12: Agile And Cmmi

Example: Agile Metrics – Iteration Delivery Indicator

Interation Delivery Indicator

0

5

10

15

1/ 1 1/ 2 1/ 3 1/ 4 1/ 5 1/ 6 1/ 7 1/ 8 1/ 9 1/ 10 1/ 11 1/ 12Date

Feat

ures

#Features not started #Features In Progress #Features finished

Interation Delivery Indicator

02468

1012

1/ 1 1/ 2 1/ 3 1/ 4 1/ 5 1/ 6 1/ 7 1/ 8 1/ 9 1/ 10 1/ 11 1/ 12Date

Feat

ures

#Features not started #Features In Progress #Features finished

Interation Delivery Indicator

02468

1012

1/ 1 1/ 2 1/ 3 1/ 4 1/ 5 1/ 6 1/ 7 1/ 8 1/ 9 1/ 10 1/ 11 1/ 12Date

Feat

ures

#Features not started #Features In Progress #Features finished

Interation Delivery Indicator

02468

1012

1/ 1 1/ 2 1/ 3 1/ 4 1/ 5 1/ 6 1/ 7 1/ 8 1/ 9 1/ 10 1/ 11 1/ 12Date

Feat

ures

#Features not started #Features In Progress #Features finished

Page 13: Agile And Cmmi

Example: Agile Metrics – Iteration Velocity

Definition: Story points per iterationUsage: Velocity allows the team to estimate how much work they

can expect to complete based on prior efforts.

Iterations

Average of Group Items XmR

0

50

100

150

200

250

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23

Iteration velocity

Sto

ry P

oin

ts

Individual Items CL Average of Individual Items Median of Individual Items

Iterations

Page 14: Agile And Cmmi

Example: Agile Metrics -- Monitoring Behavior of Continuous Integration

Definition: Number of builds per iteration (failures vs. success)Usage: Monitoring the status of continuous integration

Page 15: Agile And Cmmi

Thanks!