Introduction to How To Implement CMMi in Agile
This post talks about how customized Agile can be applied to an organization by best in class execution capabilities through better predictability, deliver value, and ensure de-risking for client projects. Customized agile can easily adopt project teams based on their business context.
The objective of this post is to provide an understanding, on how to select process areas of CMMi that can be implemented in customized agile.
Key drivers for CMMi integration
The key drivers for adopting high maturity practices of CMMi in customized Agile projects as listed as-
- Improve project performance- To improve project performance by leveraging CMMi best practices while executing in co-located or distributed team environment.
- Process performance capabilities – To establish organizational process performance capabilities and benchmark it for continuous improvement.
- Predictability- To achieve predictability in project performance with a focus on upfront planning, frequent and early feedback.
- Contractual Obligation-Qualifying criteria to win deals/ contracts and new tenders against the competition. Helps the organization to position itself in the market at a higher level of maturity on the process.
- Scalability: To maintain coherence and alignment in a distributed team environment with better control of processes.
- Better Quality: This leads to reducing defects, additional costs, and improves efficiency. It provides better visibility to comprehend whether the work delivered meets client expectations or not.
Customized Agile projects may individually get implemented successfully but sustaining this behaviour across the organization will require institutionalization of processes.
CMMi for development is considered as a reference model to cover activities for both products and services. It is implemented by organizations which could be from any industry like banking, aerospace, hardware, retail, oil and gas, energy, utility, defence, automobile manufacturing, telecommunication, etc.
CMMi contains practices that cover project management, process management, systems engineering, hardware engineering, software engineering, and other supporting processes used in development and maintenance.
The required goals in CMMi, which are essential to achieve process improvement in a given process area are categorized into two groups –
- Specific Goals
- Generic Goals.
A specific goal describes the unique characteristics that must be present to satisfy the process area. For example, a specific goal from the configuration management process area is ‘ Integrity of baseline is established and maintained.’
Generic goals are called ‘generic’ as the same goal statement applies to multiple process areas. A generic goal describers the characteristics that must be present to institutionalize processes in a given process area. An example of a generic goal is “ The process is institutionalized as a defined process.”
A process area is a cluster of related practices in an area that, when implemented collectively, satisfies a set of goals considered important for making improvements in that area.
CMMi supports two improvement paths, represented as ‘continuous’ and ‘staged’ representations and the levels associated with these representations are called ‘ capability levels’ and ‘ Maturity levels’ respectively.
CMMi V1.3 as released by SEI ( Software Engineering Institute) in May 2010 guides to interpret CMMi practices while using Agile methods. This guidance is provided in the form of examples for the key process areas such as
- Configuration Management (CM)
- Product Integration (PI)
- Project Monitoring and Control (PMC)
- Project Planning (PP)
- Process and Product Quality assurance (PPQA)
- Requirements development (RD)
- Requirements management (REQM)
- Risk Management (RSKM)
- Technical Solution(TS)
- Verification and validation(VER/VAL)
Mapping of key CMMI process Areas with Agile(Customized Agile) Practices
Agile methods focus on developing working software incrementally to achieve project goals. Customized Agile brings the best of industry Agile practice and leverage processes of CMMi institutionalized within the organization.
Mapping Of Key Customized Agile
The objective of the ‘Requirements Development’ process area in CMMi is to elicit, analyze, and establish client and product/ service requirements. The specific goals defined for this process area are –
- Develop customer Requirements
- Develop product Requirements
- Analyze and validate Requirements
In the projects where Agile methods are used, client requirements and ideas are iteratively elicited, elaborated, analyzed, and validated. Requirements elicitation and analysis in a workshop model is one of the key techniques used to ensure that the understanding is clear among all stakeholders such as a client or product owner, project team, end-user, and others.
So the mapping is-
|Key process areas of CMMI||Customized Agile Practices|
|Requirement Development(RD)||Requirement workshops|
|Epic and user stories|
Requirement workshop is one of the key management practices recommended by Agile methodology which makes all Stakeholders have a common understanding of project requirements.
It provides a platform for all the participants including the project team members to put forward their ideas towards the project requirement are to align them to the overall goal. The requirements are finally consolidated and documented in the project backlog in the form of epic and user-stories.
The purpose of the ‘Project Planning’ process area is to establish and maintain plans that define project activities.
The specific goals defined are–
- Establish Estimates
- Develop a project plan
- Obtain Commitment to planning.
Agile projects perform the development of work in an incremental manner which involves planning, monitoring, controlling, and replanning more frequently than in any traditional development environment. While a high-level plan for the overall project is established, the team does ‘ Release planning’ to estimate, plan, and carry out the actual work.
Estimates reflect sprint and team-specific factors that influence time, effort, resources, and risk to accomplish the sprint.
Tasks are assigned and accepted during ‘sprint planning’.Commitments to the ‘ Product Backlog’ items are made by the team during sprint planning when user stories from ‘sprint backlog’ are estimated and assigned.
|Key process areas of CMMi||Customized Agile Practice|
Project Planning (PP)
|Quantitative Project Management|
|Standardized Estimation Technique|
|Epic and User story|
While establishing the higher-level plan for the overall project, Customized Agile focuses on ‘ Standardized Estimation’, ‘Risk Management’, ‘Measurement Focus’, and ‘ Quantitative project management’ practices.
You can also use a Quick Function Point Analysis(FPA) to estimate method as a standardized Estimation Technique at the proposal and post-release stage for overall sizing and story point estimation at the iteration/ Sprint stage for user stories.
FPA helps the project team in estimating the overall schedule and effort at the proposal stage and gives an edge for publishing an organization capability baseline in Agile which can be leveraged by the development team.
Project Monitoring and Control
This process area provides an understanding of the project’s progress so that appropriate corrective actions can be taken when project performance deviates from the plan.
The specific goals are-
- Monitor the project against the plan.
- Manage Corrective Actions to Closure.
In Agile projects, the Consistent involvement of Client/end users in the project’s activities is crucial for the project’s success as it provides an understanding of the progress to all stakeholders. Thus, Communication and collaboration within team members become important so that the team tracks the progress on daily basis to monitor any impediments and does necessary courses of action or correction.
|key process Area of CMMI||Customized Agile practice|
|Project Monitoring Control [PMC]||Burndown charts|
|Daily standup meetings|
|Mid sprint Demo|
Burndown charts, Daily stand up, Mid sprint Demo, risk management sprint review, sprint respective etc. practices are enforced in agile projects to monitor and control the progress.
Burndown charts are tracked both at sprint and release level. At sprint level, the charts provide the representation of the remaining effort for a particular sprint. At release levels, the charts show the overall progress of the release. The ideal line of Burndown charts provides an indicator of deviations against which the appropriate action needs to be taken by the project team.
Daily standup meetings have a key role in improving communication identifying and removing impediments, highlighting and promoting quick decision making, and improving the team’s level of project knowledge.
Mid sprint demo to the stakeholders help the team to monitor and control their progress and verify their work products by taking intermediate feedback.
Sprint review event involves the client and relevant stakeholders i.e end users, regularly to monitor the progress of the project and collect feedback.
Sprint retrospective, which is done immediately after the sprint review, helps in taking connective actions as required.
Process and product quality assurance
The purpose of process and product quality assurance ‘is to provide project teams and managing an independent insight into the process and associated deliverables.
The goals are
- Objectively evaluate processes and work products.
- Particle objective insight
The project teams operating in an Agile environment tend to focus on immediate deliverables of the sprint/ iteration rather than the long-term releases. An intermediate evaluation has to be planned and performed during iterations to answer the effectiveness of process and product/services quality.
|Key process areas of CMMi||Agile practices|
process and product quality
|Mid sprint demo|
The practices of Mid sprint demo, sprint review, sprint retrospective, Measurement Focus enables to perform objective evaluations on important work products and processes. The output of this evaluation will be incorporated into tasks carried out by the team such as peer review daily meetings and continuous integration.
The risk management area is crucial as it proactively helps to identify the potential risks.
The goals are
- Prepare for risk management
- Identify and analyze risks
- Mitigate risks
Risks in Agile projects can occur from several factors like
- Contractual obligation
- Financial aspect
- Availability Of teams across location and bandwidth of product owner.
The risk mitigation activities can be planned and invoked along the project lifecycle to mitigate such risks.
|The key process treats of CMMi practices||Agile recommended|
|Risk management [RSKM]||daily standup meeting|
Mid sprint Demos
Definition of done
The risk management practices recommended by Agile provides a systematic approach to managing the overall [technical/non-technical] risk at project, release, and sprint level.
The risk management plan and risk profiling process of Agile experts the team to analyzes the probability of occurrence, impact and mitigation plan along with periodic monitoring of the plan and revision of the status.
Mid sprint demo is also one of the key practices in managing tasks. This practice helps in getting early feedback on ‘work in progress’ deliverables from the client during execution of longer sprints.
Burndown charts and Daily stand up meeting practice helps the project team to highlight the impalements and risks associated during project exciton on a day to day basics.
Other key practices in mitigating the risks by integrating the systematic approach of ‘risk management ‘best practises throughout the project cycle are
- Definition of done
- Sprint planning
- Sprint review
- Sprint retrospective
Measurement and analysis
The main objective of the measurement and analysis process area is to create a mechanism from developing and maintaining the measurement capability of projects which is used for any management decision making.
The goals are…….
- Align measurement and analysis activities
- Provide measurement results.
Measurement focus is the key management proactive which provides a robust mechanism to achieve the committed quality and performance by the project teams.
|Key process Area of CMMI||Agile recommended practices|
|Measurement and Analysis [MA]||Measurement Focus|
Quantitative project management
The quantitative project management as a process area provides a platform to
- Establish and maintain the quotative understanding of project performance.
- Manage project quantitively to achieve process and quality Performance objectives.
The specific goals are…
- Prepare for quantitative management.
- Quantitively manage the project,
This process is adopted in Agile as a key practice aiming at improving predictability by quantitive planning, tracking and control. This is achieved through analyzing process variance at release and project level.\
|Key process Areas in CMMI||Agile recommended practices|
|Quantitative project management [QPM]||Burndown charts|
Quantitative project monument
Quantitative project management practice provides insight into the stability of process parameters collected at the sprint release level and effectiveness of strategies deployed during the planning activity.
Burndown charts are also one of the key practices for understanding the performance of the project. It provides the plot of the ideal line along with the actual line against which devotions can be tracked and appropriate actions can be taken.
Focusing deep into measurement provides insight into the measurement of process performance parameters through the mechanism of data collection and trend analysis at sprint and release level.
The purpose of ‘Requirement management ‘process area is to manage product/service requirement of the project and align these requirements of the project with the project plan and deliverables.
The goal is to managed Requirements.
In Agile projects, requirements are maintained and tracked in the form of product backlogs; Epic and user stories and sprint backlogs with improved understanding and clarity of the project goal, requirements gradually evolve as work progresses. Traceability and consistency across requirements and work products are addressed through mechanisms of the product backlog and the associated user story mapping to the sprint backlog.
|Key process Area of CMMI||Agile recommended practice|
|Requirements management [REQM]||Epic and user stories|
Definition of done
Agile recommends the practices of gathering and analyzing requirements in the form of ‘Epic’ and user stories and maintain the traceability and alignment of these requirements in the form of the product backlog and sprint backlog;
The consistency across the requirements and work deliverables are achieved also through the mechanisms of ‘sprint planning’, ‘sprint review and ‘spent retrospective’.
The commitments to the requirements are achieved by agreeing to the ‘Definition of done ‘by the entire team collectively.
The technical solution ‘process area helps the project teams to select, design and implement solutions to meet the requirements. These encompass the lifecycle process 0f the product or service. The specific goals defined for this process area are
- Select product component solutions.
- Develop the plan.
- Important the product design.
Agile projects focus on early solution exploration by making the selection and tradeoff decisions more explicit, technical solution process area helps in improving the quality of those decisions over time. The solutions are defined in terms of functions, feature sets, release or any other components and are included as part of release information or maintenance logs.
|Key process areas of CMMI||Agile recommended practice|
|Technical solution [TS]||Test-driven development|
Agile adopts the approach of simple design ‘and’ test-driven development for designing and developing the solution for project requirements.
The ‘simple design’ in Agile projects is based upon the agile design principals such as architecture envisioning, iteration modelling, model storming, test for design and refactoring. Using this approach, the high-level design evolved during the initiation phase is elaborated further during each sprint execution. Refactoring so done during every sprint to make the development of the product scalable to incorporate new requirements.
Test driver development is one of the advanced engineering practices. It is primarily intended for driver development from testing. This practice is very effective to eliminate functional defects at the earliest and reduce the subsequent need for formal testing which saves huge time and delivers high-quality code. This approach helps to designs and develop predictable the code.
Configuration management process area establishes and maintains the integrity of configurable items and deliverables using
- Configuration identification
- Configuration control
- Status accounting
- Configuration audits.
The specific goal are…
- Establish Baselines
- Trac and control changes
- Establish integrity.
Configuration management [CM] is an important process area in Agile projects because of the need to support frequent change in the recrements, frequent bemuds [daily], multiple baselines and multiple CM supported workspaces [used by undivided or team members or for pair programming ]. Teams may face issues if the Agile projects do not plan for the auto motion of CM activities.
|Key process Ares of CMMI||Agile recommended practice|
|Configuration management[CM]||Build automation|
automated continuous integration
test automation and continues testing
The agile practice recommends automation of the configuration management process are and provides a list of standard tools to deploy the build automation and automated continuous integration practice. The practice of automated build integrates the tools for code review, until tests and code coverage, and thus ensures the quality at source. Another key practice agile advocate is test automation and continuous testing.
Product integration process area ensures that the product is integrated by all the software components and modules necessary as per requirements. It is intended to behave accurately and possess the required functionality and quality attributes to deliver the product.
The goal are…
- prepare for product intention.
- Ensure interface compactivity
- Assemble product components and deliver the product.
Product integration is very common and daily activity in Agile projects. The working software code is continuously added to the code base in a process called continuous integration.
|Key process areas of CMMI||Agile recommended practices|
|Products integration [PI]||Simple design|
Automated continuous integration
Test automation and contains testing
The agile practice recommends the continuous integration process as automated continuous integration practice. This practice helps teams to integrate the source code into a central repository frequently and continuously. This integration gets verified by the build automation practice to ensure the stability of working software at all times.
Test automation and continuous testing are the key essential engineering practices to satisfy the process area of product integration. In addition to automation and integration strategies, product integration should be established from the preliminary stages of the following the simple designing practice and should be revised to reflect the evolving and emerging’s the solution for work deliverables.
Verification and validation
The verification and validation process area help to ensure a systematic approach for
- Selecting the development work item to be reviewed and tasted.
- Methods and environments to be used.
- Interfaces to be managed, which help to ensure the defeats are identified and addressed early.
The goals are…
- Prepare for verification and validation
- Perform peer review
- Verify the selected work products.
- Validate product or product components.
The verification process ensures that the selected work items meet their specified requirements.
Validation process area demonstrates that the product fulfils its intended use when placed in its intended environments.
In Agile projects, because of client involvement at regular intervals i.e during sprint reviews and frequent releases, verification and validation mutually support each other. Automation in Agile projects is very important because the sprint durations are short, and the working software is to be generated in that short period of time.
|Key process Ares of CMMi||Agile recommend practices|
Automation and continuous integration
Test automation and continues testing
Test driver development
Build automation, automated continuous Integrations and test-driven development practices ae adopted in Agile projects for a systematic approach to ensure combability among requirements, solutions and consistency with how the product will be used.
Test automation and continuous testing practice help in continuous delivery of the software.
Sprint review helps in greeting frequent feedback from the client for acceptance of deliverables at the end of every sprint.