Michael Dermody September 2010 Capability Maturity Model Integration ◦ Is a Trademark owned by the Software Engineering Institute (SEI) of Carnegie Mellon University ◦ Process Improvement Approach – Improves Performance by improving processes ◦ Provides organizations with the needed for effective process improvements ◦ Framework for appraising the process maturity of the organization According to SEI in 2008, CMMI helps "integrate traditionally separate organizational functions, set process improvement goals and priorities, provide guidance for quality processes, and provide a point of reference for appraising current processes.” Projects are managed and under control Estimating new project tasks is based on actual results from previous projects Realistic commitments are negotiated and managed Plans are documented, progress is tracked, and status is reported appropriately Processes are defined at the project level Project decisions are based on data Productivity gains Early defect detection Reduction in time between request and implementation Reduction in post-implementation defects Repeatable processes A life cycle is a description of the approach that a project takes to develop and deliver software. It includes the sequencing of tasks organized by phases Initiate Analyze Design Steps common to all life cycles Code Test Deliver Maintain A work product is any document or deliverable that is used during the entire life cycle as well as any portion of the software that is delivered to the customer The SDLC has templates and procedures for generating required work products Focus on Project Management Requirements Management (RM) Project Planning (PP) Project Tracking & Oversight (PTO) Configuration Management (CM) Process Quality Assurance (PQA) Manages Project Verifies Process Requirements Management To establish a common understanding of requirements between the customer and the project and manage any changes to these over the life of the project. Agree to an initial set of software requirements Manage further changes to SW requirements Condition or capability that must be met by a system application to satisfy a business request User Interface Cost Speed Function All requirements should be testable A document that: Has been formally reviewed, agreed upon, and committed to by means of signoff Serves as the basis for further development Can be changed only through formal change control procedures Builder Model 101 Cost: $170,000 Bedrooms: 3 Living Room Kitchen Dining Room Expected Completion: April 30 Change Request - Add Fireplace to Living Room - Build Bookshelves in Living Room - Add Family Room - Add Porch Add Family Room Add Fireplace & Install Built-in Bookshelves Add Porch Builder Model 101 Cost: $220,000 Bedrooms: 3 Living Room with Fireplace & Bookshelves Kitchen Dining Room Family Room Porch Expected Completion June 30 Manages Project Verifies Process Project Planning Requirements Management To develop plans and schedules based on the activities, efforts, risks, and resources associated with satisfying project requirements Identify activities and work products Identify risks, issues, and measures to track Estimate and obtain resource commitments Create the plan and the schedule A document that describes the work required to complete a project that consists of: High-level project objectives and scope Identification of customers Imposed standards (management or technical) Constraints (cost, schedule, and resources) External commitments and dependencies Top-level system requirements A collection of plans describing the technical and nontechnical activities for a project. It governs the management of activities performed by the Software Engineering Process Group (SEPG) for a project. Table of Contents 1. Project objectives, scope, and assumptions 2. Standards, methods, and procedures to be followed and the identified decision makers Table of Contents 6. A defined life cycle for the project including review points 7. Risk identification and assessment 3. Work products to be created 8. Commitments and dependencies 4. Estimates of size, effort, and cost, and assumptions 9. References to SCM and SQA plans for the project 5. References to schedule with resources and milestones 10. Verification and validation • Use requirements as the high-level basis for beginning the project plan • Collect historical data for use in new estimates • Break activities down into manageable chunks (for example, < 60 hours of effort or 2 weeks duration) • Decompose manageable chunks into smaller process steps Tasks Plan Testing Review Test Plan Develop Scenarios Peer Review Scenarios Wk 1 Wk2 Wk3 Wk4 Wk5 Use a standard methodology Identify and document estimating assumptions Develop estimates in effort-hours, not elapsed time Use in budgeting and staffing projects appropriately Quality What level of quality is required? Size How big is it? Productivity How much time is available per week? Cost How much will it cost? Effort How much work will it require? Schedule When will deliverables be available? Resources How many people are needed? What type of skills? What tools do we need? Manages Project Verifies Process Project Planning Project Tracking & Oversight Requirements Management To have adequate visibility into actual progress, in order to keep the project on track Track accomplishments and results Adjust plans to stay on track Agree to changes in commitments Track effort, size, risks, costs, and schedule • Size, effort, cost, and duration Larger/smaller, more/less complex, early/late? • Resources Change in availability, over/under allocations? • Schedule/activities Complete/not complete, additional activities? Impact on dependent activities? • Risks Resolved, changed, additional risks ? Risk impact or probability changed? • Adjust plan as deviations from the plan occur Scope, Resources, Schedule • Review adjustments and obtain buy-in and commitment • Update plans based on requirement changes • Manage and mitigate risk • Internal project status reviews •Detail status of activities, schedule, effort, costs, and risks •Detail actuals to compare with estimates • Periodic senior management reviews •Status of accomplishments, issues, and risks • Milestone reviews •Formal reviews for customers, management. and affected groups at predetermined milestones •Progress, accomplishments, issues, risks • Ad hoc reviews occur as needed Manages Project Project Tracking & Oversight Requirements Management Verifies Process Project Planning Configuration Management To manage the integrity of the project’s work products Plan for CM activities Identify items to put under configuration management Control changes to configured items Communicate status of configuration items Audit configuration baselines Any item that is designated for control and surveillance in order to track, trace, and record any changes Examples Software code / Library elements Requirements Product documents Test cases PQA plans Baselines Design documents User documents Test plans Estimates • Baselines are established at predetermined points in the life cycle of the work product. • Configuration of a work product evolves during development and is applied by developers as they perform their work. • Create baselines at predetermined points Baseline Examples Initiate Analyze Example Project Life Cycle Design Functional baseline at end of Analysis System baseline at end of Design Developmental baseline at end of Code Unit Test Developmental baseline Test at end of System Test Deliver Production baseline at Maintain final release Manages Project Verifies Process Project Planning Process Quality Assurance Project Tracking & Oversight Requirements Management Configuration Management To provide management with insight into the software process Plan for PQA activities Escalate non-compliance issues Verify compliance Report results • A planned and systematic pattern of all actions necessary to provide adequate confidence that work products comply with software standards, procedures, and contractual requirements. • A set of activities designed to evaluate the process by which work products are developed and/or maintained. Audits Reviews Uses tools and techniques to review activities Testing Peer Reviews Inspections Compare actual activities against processes Uses tools and techniques to audit work products Compare actual work products against agreed upon standards and procedures • Use of processes and procedures is ensured by management and encouraged by peers • Benefits of following the process are understood and recognized • Appropriate training and resources are provided • Planned activities are willingly committed to • Open communications and sharing • Team approach versus individual heroics