Wednesday, September 28, 2011

Aglie and CMMI

IMPLEMENTING SCRUM (AGILE) AND CMMI® TOGETHER

This is happened because there are many requests during my seminar on Agile implementations in various non-CMM level IT(but ISO level) organizations & training institutes. So I am giving you a reference document which can be kept handy in all such software development life cycles (SDLC).

If you are a software engineer or IT professional, your group has very likely shown a strong interest in reducing costs, improving quality and productivity. Your group might also have looked at various pre-packaged frameworks, such as Agile (e.g., Scrum and Extreme Programming), CMMI1 and Six Sigma.

At first glance, each of these frameworks might look at odds with each other, making it difficult to use two or more. This typically occurs because much of the information shared regarding these frameworks is from success and failure stories, rather than understanding the specifics of each framework. Each framework can be implemented successfully depending on how much care is placed on its implementation.

In this blog I am trying to compare CMMI and Scrum since they are two commonly used frameworks, and ones we have seen groups struggle with when using them together.

First, let us define each.

Scrum

Scrum is a pre-defined development lifecycle based on Agile principles. Agile methodologies promote a project-management process that encourages frequent inspection and adaptation, and a leadership philosophy using teamwork, self-organization and accountability.

CMMI for Development

CMMI is a collection of practices that organizations (software, hardware and IT) can adopt to improve their performance. The CMMI comes with two main views (representations), Staged and Continuous. Staged shows all the Process Areas (groups of related practices) in the form of a road map, allowing organizations to focus on basic improvements before attempting advanced topics. The Continuous representation has the same content but allows for any topic (Process Area) to be selected in an a la carte style.

Level 1 is just the basic report creation & notifications. I would like to start the study with CMM level 2. The Level 2 Process Areas focus on change and project management. Level 3 focuses on engineering skills, advanced project management and organizational learning. Levels 4 and 5 focus on the use of statistics to improve the organization’s performance by statistically controlling selected processes and reducing variation. So the question is, how do these two frameworks relate, and how can an organization use both?

Scrum is an example implementation of some of the Maturity Level 2 practices. We will have list of the main practices of CMMI that map cleanly to Scrum process steps. This doesn’t mean that an organization could not eventually add additional CMMI practices to its projects; it just means that in Scrum, there is no clear equivalent called out. Although the practices of Scrum provide good implementation examples of many Level 2 CMMI practices, one catch is the level of artifacts needed to appraise at CMMI Level 2. If a Scrum team either discards or loses its project artifacts, then being appraised Level 2 will not be possible since there will be little evidence showing what happened. If however, a project team stores these data, an appraisal team can then use them for verification. Ideally, Scrum team members would naturally want to store their work so that they could refer to past iterations during lessons-learned sessions.

CMMI and Scrum mapping

In the paragraphs below we please take a note of several CMMI practices (using CMMI text taken from the model definition) and how Scrum can implement each practice. To appraise Level 2, it is assumed that the Scrum implementation is robust and shows evidence of the CMMI practice being performed.

Let’s start with the initial software SDLC phase REQUIREMENTS MANAGEMENT

The purpose of Requirements Management (REQM) is to manage the requirements of the project’s products and product components and to identify inconsistencies between those requirements and the project’s plans and work products.

REQM CMMI Practice : SP 1.1 Develop an understanding with the requirements providers on the meaning of the requirements.

REQM Scrum Practice: Review of Product Backlog (requirements) with Product owner and team.

REQM CMMI Practice :SP 1.2 Obtain commitment to the requirements from the project participants.

REQM Scrum Practice: Release planning and Sprint planning sessions that seek team member commitment.

REQM CMMI Practice : SP 1.3 Manage changes to the requirements as they evolve during the project.

REQM Scrum Practice: Add requirements changes to the Product Backlog.

And Manage changes in the next Sprint planning meeting.

REQM CMMI Practice : SP 1.5 Identify inconsistencies between the project plans and work products and the requirements.

REQM Scrum Practice: • Daily standup meeting to identify issues.

• Release planning and Sprint planning sessions to address inconsistencies.

• Sprint burndown chart that tracks effort remaining.

• Release burndown chart that tracks story points that have been completed. This shows how much of the product functionality is left to complete.

PROJECT PLANNING The purpose of Project Planning (PP) is to establish and maintain plans that define project activities.

PP CMMI Practice SP 1.1 Establish a top-level work breakdown structure (WBS) to estimate the scope of the project.

PP Scrum Practice • The standard tasks used in a Scrum process combined with specific project tasks (Scrum Backlog).

PP CMMI Practice SP 1.2 Establish and maintain estimates of the attributes of the work products and tasks.

PP Scrum Practice • Story points, used to estimate the difficulty (or relative size) of a Story (requirement).

PP CMMI Practice SP 1.3 Define the project life-cycle phases upon which to scope the planning effort.

PP Scrum Practice • The Scrum sprint process.

PP CMMI Practice SP 1.4 Estimate the project effort and cost for the work products and tasks based on estimation rationale.

PP Scrum Practice • Scrum Ideal Time estimate (similar to billable hours or Full-time Equivalents).

PP CMMI Practice SP 2.1 Establish and maintain the project’s budget and schedule.

PP Scrum Practice • Scrum estimates (in Ideal Time).

• Estimates of what work will be in each release.

• Sprint Backlog.

• Project Taskboard.

PP CMMI Practice SP 2.4 Plan for necessary resources to perform the project.

PP Scrum Practice • Scrum estimates in Ideal Time

• Release plan, Sprint Backlog and assignments.

PP CMMI Practice SP 2.6 Plan the involvement of identified stakeholders.

PP Scrum Practice • Scrum process roles (including team, Scrum Master, Product Owner).

• [Note: The stakeholders listed in Scrum might not be the complete list of stakeholders for the project, e.g., customers, other impacted teams. Also there can be various additions /changes during SDLC]

PP CMMI Practice SP 2.7 Establish and maintain the overall project plan content.

PP Scrum Practice • Scrum release plan. And • Sprint

PROJECT MONITORING AND CONTROL

The purpose of Project Monitoring and Control (PMC) is to provide an understanding of the project’s progress so that appropriate corrective actions can be taken when the project’s performance deviates significantly from the plan.

PMC CMMI Practice SP 1.1 Monitor the actual values of the project planning parameters against the project plan.

PMC Scrum Practice • Sprint burndown chart that tracks effort remaining.

• Release burndown chart that tracks completed story points. This shows how much of the product functionality is left to complete.

• Project Task Board used to track stories (requirements) that are done, in progress, or ones that need verification.

PMC CMMI Practice SP 1.2 Monitor commitments against those identified in the project plan.

PMC Scrum Practice • Discussions on team commitments at the:

− Daily Scrum meeting.

− Sprint review meeting.

• Sprint burndown chart that tracks effort remaining.

• Release burndown chart that tracks story points that have been completed. This shows how much of the product functionality is left to complete.

PMC CMMI Practice SP 1.5 Monitor stakeholder involvement against the project plan.

PMC Scrum Practice • Discussions at the:

− Daily Scrum meeting.

− Sprint review meeting.

• [Note: The stakeholders listed in Scrum might not be the complete list of stakeholders for the project, e.g., customers, other impacted teams.]

PMC CMMI Practice SP 1.6 Periodically review the project's progress, performance, and issues.

PMC Scrum Practice• Daily Scrum meeting.

• Sprint review meeting.

• Retrospectives.

PMC CMMI Practice SP 1.7 Review the accomplishments and results of the project at selected project milestones.

PMC Scrum Practice• Sprint review meeting.

PMC CMMI Practice SP 2.1 Collect and analyze the issues and determine the corrective actions necessary to address the issues.

PMC Scrum Practice • Notes from the:

− Daily Scrum meeting.

− Sprint review meeting.

[Note: Some teams track their outstanding actions on the Product Backlog. It doesn’t matter where or how the items are tracked, as long as they are.]

PMC CMMI Practice SP 2.2 Take corrective action on identified issues.

PMC Scrum Practice • Actions from the:

− Daily Scrum meeting.

− Sprint review meeting.

PMC CMMI Practice SP 2.3 Manage corrective actions to closure.

PMC Scrum Practice • Tracking of actions from:

− Daily Scrum meeting.

− Sprint review meeting.

• [Note: Most important This assumes that teams will track (and not lose) actions.]

Now let’s compare role based like configuration Manager , QA/ QC etc.

Configuration Management (CM)

CM is not specifically called out in Scrum. However, in an Agile environment it is pretty easy to add a layer of CM to protect your work. Even for groups that like to use white boards, you can be creative and at least establish some basic protection

by labeling items (e.g. “V1.1,” or “Story dated 1/2/YY”) and taking a photo. The CM Process Area does require more than just versioning, but versioning is an easy start.

Product or Process Quality Assurance

Some basic activities are being done naturally when the Scrum Master checks that the Scrum process is being followed. Other activities are completed when a team performs code reviews, document reviews and testing. The Scrum Master also plays a role of removing process barriers and inefficiencies. However, Scrum does not specifically call out a level of objective process and product check, nor does it state that particular standards or processes should be defined and used.

Therefore I stated that Scrum does not automatically implement these processes. However, refinements can be made such that it does.

Supplier Agreement Management

There are no practices in Scrum that deal with the selection and management of suppliers.

Generic Practices

Approximately half of the Level 2 Generic Practices of Requirements Management, Project Planning and Project Monitoring and Control are implemented by Scrum.

Measurement and Analysis

The purpose of Measurement and Analysis is to develop and sustain a measurement capability that is used to support management information needs. There are no practices in Scrum that establish a measurement program similar to the expectations of measurement and analysis process. However, the measures in Scrum can be used to implement all such process.

CMM Level 3 & SCRUM analysis

There are two main areas where Scrum has gaps compared to Level 3. One is in the CMMI expectation that project data and lessons are shared among projects via a common process asset library (or repository). Second, the expectation that the engineering phases of requirements, design, implementation, verification, integration and validation are well defined and implement the Level 3 engineering practices. These CMMI concepts can be done in an Agile/Scrum environment, but they don’t come with the common Scrum definition.

Scrum does suggest implementing Communities of Practice, to reach across teams to share lessons learned, and Retrospectives within a team. These ideas could certainly be used to populate an asset library and thereby codify best practices and tailoring guidelines. The following Level 3 components therefore are not readily implemented by Scrum

without additional work:

• Organizational Process Focus

• Organizational Process Definition

• Organizational Training

• Integrated Project Management

• Risk Management

• Decision Analysis and Resolution

• Some engineering Specific Practices (e.g., requirements validation and verification data analysis)

• Generic Goal 3 (i.e., using an organization-wide and tailored process with measurements)

Scrum is a good implementation for some of the practices in Level 2. Therefore, a group can use Scrum and CMMI together. All the remaining practices in Levels 2 and 3 can be implemented while using Scrum.

Understanding of Scrum or Implementation

Scrum is a process that teams can adopt quickly to plan and manage their work. Each Scrum step has just enough detail to plan, design, build and test code, while tracking team progress. Its strength is that it is straightforward to use. The risk is that it can be used to focus on building components with less regard for the complete system. This risk can

be managed.

Scrum has three primary roles: Product Owner, Scrum Master, and team member.

The Product Owner communicates the vision of the product to the development team. This includes representing the customer’s interests through requirements and prioritization.

The Scrum Master acts as a liaison between the Product Owner and the team. The Scrum Master does not manage the team but instead works to help the team achieve its Sprint goals by removing obstacles. The Scrum Master verifies that the Scrum process is used.

The team members do the project work. The team typically consists of software engineers, architects, analysts and testers.

The intent of Scrum is to build working components in small iterations, each iteration lasting between two and four weeks. A typical Scrum lifecycle has the following steps:

• Write the requirements (and store in the Backlog)

• Plan the release (which could span more than one 2-4 week Sprint)

• Plan the Sprint

• Conduct the Sprint

- Analysis

- Design

- Coding

- Testing

• Conduct Sprint retrospective Daily stand-up meetings are held to track team progress and identify barriers.

No comments:

Post a Comment