www.agiledigm.com Agile and CMMI : Disciplined Agile with Process Optimization Kent Aaron Johnson 02 April 2014 Long Beach, California, USA CMMI is registered in the U.S. Patent and Trademark Office by Carnegie Mellon University. 1
Copyright Notices The material in this presentation is copyrighted by AgileDigm, Incorporated. For further information, please contact: AgileDigm, Inc. 11 Twelve Oaks Trail Ormond Beach, Florida 32174 U.S.A. Phone: +1.386.673.1384 Email: info@agiledigm.com Terms like these are often used in the following material: CMMI SCAMPI sm and SCAMPI Lead Appraiser sm The definition of Scrum and related text comes from The Scrum Guide by Jeff Sutherland and Ken Schwaber. References to other sources are shown on the slides. CMMI is registered in the U.S. Patent and Trademark Office by Carnegie Mellon University. SM SCAMPI and SCAMPI Lead Appraiser are service marks of Carnegie Mellon University. 2
Kent A. Johnson Chief Technical Officer of AgileDigm, Incorporated AgileDigm is an international consulting company that was formed in 2001 to support an agile paradigm for process improvement uniquely partnering with Scrum Inc. and CMMI/Software Engineering Institute. Certified ScrumMaster, Professional Scrum Master I, CMMI Institute-certified SCAMPI High Maturity Lead Appraiser and certified CMMI instructor. Has helped clients in over 25 countries to improve their ability to develop products - including one of the world s only Agile Organizations to achieve CMMI Maturity Level 5. Co-author of Interpreting the CMMI: A Process Improvement Approach, Second Edition, Auerbach (2008) and numerous peer reviewed papers on Agile and CMMI. kent.johnson@agiledigm.com 3
Basis of this Presentation Our work with over 20 Agile CMMI organizations. Our experience with a full set of Agile Methods Our years of experience with CMMI 4
Agile Manifesto www.agilemanifesto.org 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 tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan That is, while there is value in the items on the right, we value the items on the left more. Don't misread as there is no value to the things on the right. 5 5 5 CSM v10.21 Jeff Sutherland 1993-2009
Agile Methods Agile Methods include: Scrum Kanban extreme Programming Lean Software Development Feature-Driven Development Test-Driven Development Some of the sources 6
Lean as an Example The seven principles of Lean Software Development are: 1. Eliminate Waste 2. Build Quality In 3. Create Knowledge 4. Defer Commitment 5. Deliver Fast 6. Respect People 7. Optimize the Whole Implementing Lean Software Development, Mary and Tom Poppendieck, Addison Wesley, 2007 7
CMMI for Development, v1.3 CMMI has three constellations Development Acquisition Services The concepts are the same in all constellations In this seminar, we will focus on CMMI for Development. CMMI for Development covers development & maintenance of products & services 8
Process Areas by Maturity Level Maturity Level (ML) Process Area (PA) 5 Optimizing Organizational Performance Management Causal Analysis and Resolution 4 Quantitatively Managed Organizational Process Performance Quantitative Project Management 3 Defined Requirements Development Technical Solution Product Integration Verification Decision Analysis and Resolution Validation Organizational Process Focus Organizational Process Definition Organizational Training Integrated Project Management Risk Management 2 Managed Requirements Management Project Planning Project Monitoring and Control Supplier Agreement Management Measurement and Analysis Process and Product Quality Assurance Configuration Management 1 Initial Reference Slide CMMI for Development, v1.3 9
Simple Comparison CMMI A structured collection of best practices What you should do Focus is on improving product quality through process performance Agile Methods A set of methods that contain detailed steps How you should do it Focus is on increasing customer satisfaction 10
Planning Misconceptions Agile Methods Planning is not required (misconception) Planning is done incrementally (reality) CMMI Everything must be planned to the smallest detail (misconception) Some examples in CMMI discuss overall planning, however incremental planning and replanning are both recognized (reality) 11
Requirements Misconceptions Agile Methods Requirements can be changed at any time and changes are not controlled (misconception) Requirements are constrained within an increment (reality) CMMI Requirements must be completely defined and put into a matrix before you start and cannot change without missed schedules and cost overruns (misconception) Processes exist for managing requirements changes. (reality) 12
Culture Misconceptions CMMI organizations are bureaucratic and inflexible. (misconception) CMMI organizations are as flexible as the people in the organization. CMMI supports organizational change and improvement (reality) Agile organizations are extremely flexible because they have no real rules. (misconception) Agile organizations are as flexible as the people in the organization. Agile methods support change particularly within the team. (reality) 13
Experience A: Initial Agile & CMMI Organizations that introduce Agile and CMMI together. Examples include US defense, Healthcare contractors, commercial consulting companies, and product companies. They had either a corporate directive, client directive, or government directive to embrace CMMI. Initial goal: CMMI Level Two or Three Used Agile to focus on the Common Failures with CMMI (next slide). 14
Common Failures with CMMI 1. Too heavy a process definition 2. Lack of management support 3. Different understandings of mission and goals 4. Process adoption not well planned 5. Process and procedure definition forced on staff 6. Pilots of process too limited Jeff Sutherland and Kent Johnson 2010 15
Agile Helps CMMI with Clear customer focus Lightweight process definition Explicit team roles Support from developers 16
Scrum as an Example Example The Sprint 17
Roles in Scrum Example Defines the features, decides on release date and content Prioritizes features according to market value Can change features and priority every Sprint Accepts or rejects work results Ensures that the team is fully functional and productive Enables close cooperation across team & removes barriers Shields the team from external interferences Ensures that the process is followed. Invited to daily scrum, iteration review and planning meetings Cross-functional, seven plus/minus two members Selects the iteration goal and specifies work results Has the right to do everything within the boundaries of the project guidelines to reach the iteration goal Organizes itself and its work Demos work results to the Product Owner Scrum and CMMI Level 5: the magic potion for Code Warriors, Kent Johnson & Carsten Ruseng Jakobsen, Presentation at ESEPG Conference Amsterdam June 2007 18
Example Scrum in a Project s Lifecycle CMMI: Project Planning SG1: Establish Estimates SG2: Develop a Project Plan SG3: Obtain Commitment to the Plan CMMI: Project Monitor and Control SG1: Monitor Project Against Plan SG2: Manage Corrective Actions to Closure Definition & Planning Implementation Launch & Closeout Sprints Scrum: Create Product Backlog Define backlog items Establish Estimates Prioritize backlog items Identify dependencies Scrum: Create Sprint Backlog Monitor progress against sprint plan Remove impediments Scrum and CMMI Level 5: the magic potion for Code Warriors, Kent Johnson & Carsten Ruseng Jakobsen, Presentation at ESEPG Conference Amsterdam June 2007 19
Experience B: Failed Scrum Back to Life This experience comes from organizations that introduced Scrum across their projects. They considered it a failure because: Projects did not get the great benefits that they had heard about. Many of the projects reverted to doing ScrumBut. (We are doing Scrum but <pick from the list> no daily meetings, no product owner, no burndown, etc.> Initial goal: Use Real Scrum Used CMMI principles to focus on the Common Failures with Scrum. 20
Common Failures with Scrum 1. Misunderstanding what Scrum is (and is not) 2. Software not tested at end of sprint (definition of Done) 3. Backlog not ready at beginning of sprint (definition of Ready) 4. Lack of facilitation or bad facilitation 5. Lack of management support 6. Lack of client, customer, or end user support Jeff Sutherland and Kent Johnson 2010 21
CMMI Helps Agile with Disciplined consistent performance Defined organizational processes Project tailoring guidelines Staff training 22
Scrum Checklist Examples Right Level of Process (1/2) Practical processes and work aids contain enough information to be useful. 23
Scrum Status Report Example Right Level of Process (2/2) Anvil Project Weekly Status Report User Stories Completed As a User, I want to be able to use my anvil 24/7 As a User (all personas), I want to be able to carry my anvil Lessons Learned during the sprint Breaking down stories into 20 points or less is a big help Impediments (not closed during week) Testers assigned to multiple projects Risks User environment may not be ready on time for final acceptance testing. 24 24
Scrum Board To do Ongoing Done Scrum Board provides visibility of workflow meeting point for team prioritized list of all work-items Used to generate burndown chart Supported by good definitions of Ready and Done Colors may indicate stories, features, tasks, bugs, etc. Can be customized to match the team s workflow 25
Kanban no limit 6 4 10 no limit Backlog Ready Coding Testing Approval Done WIP Limit Work Flow State Three principles 1. Visualize the Workflow 2. Limit Work in Progress (WIP) 3. Measure the Cycle Time 26
Experience C: CMMI Maturity Level 5 Scrum This experience comes from organization that was CMMI Maturity Level 5. The organization determined that their processes were too heavy weight. They embraced Lean Principles and determined that Scrum was the best approach for them. Goal: Become lean while maintaining a high maturity CMMI rating They introduced Scrum across all their projects in a disciplined way. 27
Success Story Systematic A/S is a success story using Agile Methods in a CMMI Implementation. Addresses their business objectives doubled productivity cut defects by 40% on top of years of other CMM and CMMI improvements. Reappraised at CMMI Maturity Level 5 in May 2012 third time at Level 5! Scrum and CMMI Going from Good to Great, Carsten Ruseng Jakobsen and Jeff Sutherland, Agile 2009 Conference Chicago, USA August 2009 28
Flowdown of Business Objectives (1 of 2) Business Objective Shorten Time to Market Quality and Process Performance Objective (QPPO) Statistically Managed Process Decrease final integration time by 27% Continuous Integration High Maturity (HM) Example 29
HM Example Flowdown of Business Objectives (2 of 2) Measure related to Continuous Integration Source: Mature Agile with a Twist of CMMI, Carsten Ruseng Jakobsen and Kent Aaron Johnson, Agile 2008 Conference Toronto, Canada, August 2008. 30
Summary Our Agile CMMI Presentation is based on What we have learned from working with over 20+ organizations in combining Agile and CMMI Successful organizations have combined Agile and CMMI to obtain measurable business objectives Time for Questions? 31
Contact Information and Acronyms The presentation material in this seminar is copyrighted by AgileDigm, Incorporated. For further information, please contact: Kent A. Johnson Chief Technical Officer AgileDigm, Inc. 11 Twelve Oaks Trail Ormond Beach, FL 32174 USA kent.johnson@agiledigm.com www.agiledigm.com Acronyms: CMM Capability Maturity Model CMMI Capability Maturity Model Integration HM High Maturity WIP Work in Progress 32