Sustainable Software Development in Agile and CMMI: Apply Lessons Learned today 2009
What is the CMMI Level 5 Optimizing 4 Quantitatively Managed 3 Defined 2 Managed 1 Initial Focus Continuous Process Quantitative Management Process Standardization Basic Project Management Process Areas Organizational Innovation and Deployment Causal Analysis and Resolution Organizational Process Performance Quantitative Project Management Requirements Development Technical Solution Product Integration Verification Validation Organizational Process Focus Organizational Process Definition Organizational Training Integrated Project Management for IPPD Risk Management Integrated Teaming Integrated Supplier Management Decision Analysis and Resolution Organizational Environment for Integration Requirements Management Project Planning Project Monitoring and Control Supplier Agreement Management Measurement and Analysis Process and Product Quality Assurance Configuration Management Quality & Risk & Rework Capability Maturity Model Integration (CMMI) is a process improvement approach that provides organizations with the essential elements of effective processes.
What is Agile Agile software development refers to a group of software development methodologies based on iterative development, where requirements and solutions evolve through collaboration between self-organizing crossfunctional teams. Agile methods generally promote a disciplined project management process that encourages frequent inspection and adaptation, a leadership philosophy that encourages teamwork, self-organization and accountability, a set of engineering best practices that allow for rapid delivery of highquality software, and a business approach that aligns development with customer needs and company goals. http://en.wikipedia.org/wiki/agile_software_development
Agile by Brand Name extremeprogramming (XP) [Beck] Widest known, developer-focused for small teams Crystal methodolgies[coburn] - Set of methodologies conditional on circumstances - Only 2 defined: Crystal Clear, Crystal Orange Feature-Driven Development (FDD) [Palmer] - Agile approach closest to conventional development Scrum [Schwaber] - Focused on management practices Lean Software Development [Poppendieck] -Inspired by Toyota Production System, particularly its product development practices
What Can We Change People Technology Process The major determinants to Quality, Time to Market and Cost of software
Frameworks, Models and Tools Frameworks CMMI Prince II ITIL What Organization Methods xp Waterfall Tactics Tools Six Sigma Function Points ISO 9000 Agile PSM TSP RUP Balanced Scorecard PIMBOK CMMI SOX EFQM TQM Lean Function Points ITIL Six Sigma CoBIT
CMMI and Agile: Strange Bed Fellows Areas of Friction: Empowerment and trust versus micromanagement Solution: Coach as PPQA Organization standards versus project standards Tailoring guidance to allow teams to overrule Intermediate Work Products Solution: Define what is sufficient
Uncertainty You start projects knowing very little (as compared to when a project is implemented) Unknowns Cone of Uncertainty Knowledge Budgeting Initiation Implementation Words are the only thing typically known before a project is initiated (usually not very many)
Hierarchy Of Models Baldridge ISO9001 CoBIT People CMM ISO9001-1 CMMI DEV CMMI ACQ CMMI Services escm Overall Organizational Silo Specific Many models...pressing questions: How are models related? What are the synergies? How can implementations of multiple models be harmonized?
What can be achieved quickly? Project Name Profile Score Management Definition Design Build Test Environment Accounts Payable 55.3 47.73 82.05 50.00 46.15 43.75 50.00 Priotity One 27.6 50.00 48.72 11.36 38.46 0.00 42.31 HR Enhancements 32.3 29.55 48.72 0.00 42.31 37.50 42.31 Client Accounts 29.5 31.82 43.59 0.00 30.77 37.50 42.31 ABC Release 44.1 31.82 53.85 34.09 38.46 53.13 42.31 Screen Redesign 17.0 22.73 43.59 0.00 15.38 0.00 30.77 Customer Web 40.2 45.45 23.08 38.64 53.85 50.00 34.62 Whole Life 29.2 56.82 28.21 22.73 26.92 18.75 53.85 Regional - East 22.7 36.36 43.59 0.00 30.77 9.38 30.77 Regional - West 17.6 43.18 23.08 0.00 26.92 9.38 26.92 Cashflow 40.6 56.82 71.79 0.00 38.46 43.75 38.46 Credit Automation 23.5 29.55 48.72 0.00 38.46 6.25 26.92 NISE 49.0 38.64 56.41 52.27 30.77 53.13 53.85 Help Desk Automation 49.3 54.55 74.36 20.45 53.85 50.00 38.46 Formula One Upgrade 22.8 31.82 38.46 0.00 11.54 25.00 46.15 Process s: Code Reviews and Inspections Requirements Management Defect Tracking Configuration Management Project Name Profile Score Management Definition Design Build Test Environment Accounts Payable 75.3 61.73 82.05 60.00 60.15 53.75 50.00 Priotity One 57.6 57.00 55.72 18.36 45.46 22.00 49.31 HR Enhancements 52.3 32.55 51.72 23.00 42.31 57.50 49.31 Client Accounts 69.5 53.82 65.59 12.00 50.77 67.50 49.31 ABC Release 74.1 55.82 69.85 49.09 52.46 63.13 49.31 Screen Redesign 67.0 43.73 63.59 21.00 36.38 20.00 51.77 Customer Web 59.2 49.45 27.08 58.64 53.85 54.00 49.62 Whole Life 50.2 49.82 32.21 27.73 31.92 24.75 53.85 Regional - East 57.7 59.36 49.59 0.00 30.77 9.38 50.77 Regional - West 52.6 55.18 30.08 0.00 33.92 19.38 26.92 Cashflow 67.6 66.82 71.79 0.00 49.46 53.75 49.46 Credit Automation 60.5 41.55 78.72 0.00 50.46 26.25 46.92 NISE 79.0 68.64 76.41 62.27 65.77 53.13 53.85 Help Desk Automation 79.3 64.55 74.36 47.45 63.85 54.00 58.46 Formula One Upgrade 52.8 49.82 52.46 0.00 31.54 25.00 56.15 Baseline Average Project Size 133 Average FP/SM 10.7 Average Time-To-Market (Months) 6.9 Average Cost/FP $939 Delivered Defects/FP 0.0301 Performance s: ~ +131% Time to Market ~ -49% Defect Ratio ~ -75% Average Project Size 133 Average FP/SM 24.8 Average Time-To-Market (Months) 3.5 Average Cost/FP $467 Delivered Defects/FP 0.0075
Agile Implementations of Common CMMI Practices PM - SCRUM Requirements Management Backlog Peer review pair programming Quality Control TDD CM Continuous builds What is the impact?
Impact Data From Where? DCG Project Data Store Filter for Approximate Project Size Filter for Complexity and Sourcing All data is less than three years old. All data collected and vetted by DCG. Metrics Signature *approximate 12
SCRUM v. Classic Project Management 4% 2% 11% 7 % Time-to-Market Total Defects Maintenance Classic Project Management SCRUM 8% 13% 10% 17% Time-to-Market Total Defects Maintenance
Peer Review v Collaborative Development 13% 6% 30% 21% Time-to-Market Total Defects Maintenance Peer Review Collaborative Development 18% 10% 37% 17% Time-to-Market Total Defects Maintenance
Requirements Management v Backlogs 2-4% - % 5 % 2-3% Time-to-Market Total Defects Maintenance Requirements Management Backlogs 2-4 % 1-2 % 5 % - % Time-to-Market Total Defects Maintenance
Classic Testing v TDD 7 % 3% 35% 16% Time-to-Market Total Defects Maintenance Classic Testing Test Driven Development 11% 4 % 61% 32% Time-to-Market Total Defects Maintenance
Configuration Management v Continuous Integration 3-4 % - % 2-3 % 1-3 % Time-to-Market Total Defects Maintenance Configuration Management CM with Continuous Integration 5 7% 7 % 5-8 % - % Time-to-Market Total Defects Maintenance
Case One Small custom technology organization (internal and external projects), Highly collaborative culture Mixed SCRUM and Plan Based project environment All external projects are bid with fixed caps Internal projects continually scoped to fit internal development budget Estimates had mixed success rate
The Answer Internal with Sales acting as proxy customer Postacceptance Develop and Pre-size backlog Application of, Capabilities Bid Development Refinement During Sprint Planning Techniques Used QEFP for sizing backlog Explicit risk and skills evaluation Planning Poker Impact Proposals increased 20% Negative misses nearly eradicated (underbidding on fixed price contract)
Case Two Large software development firm, hierarchical culture and one very large project and many smaller Mixed SCRUM/XP (recent addition) and Plan Based project environment Strenuous budgeting process with tax accruals Significant discovery was required to define, design and develop the large project Experienced based estimation based on bottom up task planning questionable on the large project!
The Answer Techniques Used QEFP for sizing backlog QEFP for sizing items added during sprint planning Planning Poker Impact Improved product owner satisfaction Increased perception of consistency Reduced number of stories escaping sprints
Manifesto Manifesto for Agile Software Development 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.
Your Turn Questions? Thomas Cagley Jr. t.cagley@davidconsultinggroup.com (440) 933-8768