Agile Software Development Process is a methodology for developing software projects in small cycles known as sprints. In each cycle (release) functionality is improved and add–on to older functionality. Agile Process is characterized by high Customer Interactions and Feedbacks. Work is planned and performed in small cycles (few days to two weeks). It is a good way to implement CMMI in Agile Projects, it adds the balancing factor to the freedom of the agile environments and yields better results. Some organizations have very positive effects after the blending of CMMI with Agile.
The purpose of the Agile Process is to have more transparency of the work and more control of the work by engaging clients in the Project Reviews and Feedbacks.
Agile and CMMI Process Improvement Activities
Many practitioners asked this question that how they can use the Agile Process with CMMI Process Improvement Activities. Where Agile is a free flowing Software Development methodology, CMMI needs evidences of each Specific Practices and Process Area and looks supporting to Water Fall based Projects.
DQS India provides guidance and professional expertise to remove this confusion and to increase awareness about how both can be combined in a gentle manner and how can lead to SCAMPI Appraisals from Maturity Level 3 to 4 and 5.
There are different Agile methods that are followed by Project Teams, two most popular methods are:
- Extreme Programming
Agile – SCRUM Methodology:
SCRUM is an Agile methodology to manage and control software and product development in rapidly changing environments.
Scrum has following features:
- The project team and client works together to prioritize the list of requirements. This is known as Product Backlog.
- A small duration is decided to release the functionality in cycles. These cycles are known as Sprints. At the end of each sprint, decided functionality is released to the customer for his feedback.
- Teams have day meetings, generally known as Daily Stand–up meetings, to discuss task allocation, progress updates and issues.
- One Member of the team is selected as the Scrum Master. Scrum Master decides what it is required to complete the Sprint work.
- Each member of the Scrum Team takes the responsibility of the assigned task and the focus of the team is to complete the Sprint and not on how the development should occur.
Agile – Extreme Programming (XP) Methodology:
Extreme programming (XP) is the method of Agile that suits to the environment where requirements are vague and changes quickly.
It has following features:
- Small team size, only 3 – 10 programmers
- Requirements are collected in the form of User Stories. These stories are provided by the Customer and team may enhance them. Then User Stories are divided in to Slips or Sticky. Slips or Sticky are assigned to programmers for estimation.
- Customer Feedback is available at each level task. Customer may remove a User Story, Enhance it or remove it.
- Development is done in iteration and each iteration span to 3 weeks. Code is release after 2–5 iterations.
- Programmers work in pair. They develop codes, conduct unit test.
- Similar to Scrum Master, XP projects have a Coach to review team progress, communication etc.
Why Companies adopt Agile?
There are many reasons why companies around the world has adopted or are adopting Agile as their Software Development Process, some of them are:
Software Development Process, some of them are:
- More client involvement into product development
- Increased Customer satisfaction
- Lesser surprises by the client related to requirements
- Faster Deliveries
- Very Low Risks
- Improvement in Quality
- Increased Efficiency of Teams
- Predictability in the Project Progress
How CMMI can add more value to Agile Process?
CMMI provides a framework for best practices that can be followed in Software Project Development and is not confined only to traditional Waterfall based Software Development Models rather it can be used with Agile Processes to provide more effectiveness and transparency in the project monitoring and control and at the same time leading to Organizational Process Improvement.
When both are combined it leads to a best of both world situation as project teams have agility and some control through CMMI.
How DQS India can help your organization in implementing CMMI with Agile Process?
We at DQS India have professionals having years of experience of working with Software industry and different domains. Our professionals have expertise in almost every SDLC models and understand the what is unique in each model and what is required to ensure proper CMMI Implementation in these SDLCs mainly Agile.
We can help you in the development of Customised possesses for CMMI Implementation in Agile Environments.
For more details on Agile and CMMI read
- Agile Software Development Process
- CMMI Implementation in Agile Environments
- How to use Agile Projects to implement CMMI?
- Difference between Agile and Waterfall
- Switching to Agile from other SDLC Models
- Agile and achieving CMMI Maturity Level 3
- Agile and achieving CMMI High Maturity Levels – 4 and 5