agile and cmmi
DESCRIPTION
Presentation made at SEPG China 2007 meeting in Hangzhou. Selected as one of the top 10 presentations at the conference.TRANSCRIPT
Agile and CMMI
Perficient China
Agenda
Brief Overview of Agile MethodologiesComparing Agile and CMMIWhy CMMI?Enhancing Agility with 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
Common Agile Methods
eXtreme Programming (XP) [Beck]Scrum [Schwaber]Feature-Driven Development (FDD) [de Luca]Crystal Methodolgies [Cockburn]Lean Software Development [Poppendieck]BoldDelivery [Perficient]
BoldDelivery Methodology
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.
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
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
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
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
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.
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
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
Example: Agile Metrics -- Monitoring Behavior of Continuous Integration
Definition: Number of builds per iteration (failures vs. success)Usage: Monitoring the status of continuous integration
Thanks!