alameensoft CMMI with Agile

Challenges when Using CMMI

When alameensoft applying CMMI faced problems like these:

  • A substantial amount of efforts is required, just for process compliance.
  • They forced the customer to cope with our requirements gathering methodology instead of adjusting their techniques to client nature.
  • Customers usually do not know their needs after interacting with the products.
  • They spend a lot of effort in planning; however, the plans change a lot during the execution.
  • They collect projects measures but we do not have much benefits of using them.

We conclude the previous issues with the following statement: “The CMM wasn’t intended to be all things to all people or cover all possible aspects of software and system development.

Challenges when Using Agile

The major challenge when using an agile approach in large project is keeping the small teams aligned and coordinated. However, there has been increasing success scaling agile approaches for use on large projects by introducing a top layer of coordination (e.g. a Scrum of Scrums) and by providing explicit and early attention to non-functional requirements and product architecture.

Some of the most common issues that alameensoft faces when adopting agile methods are as follows:

  • Lack of discipline.
  • Lack of structure and necessary documentation.
  • Only works with development process.
  • Incorporates insufficient software design.
  • Requires too much cultural change to adopt.
  • Impossible to develop realistic estimates of all work effort needed, as at the beginning of the project no one knows the entire scope/requirements on the other hand estimates’ precision is increased through a short planning iterations or phases.
  • Lack of up-front planning.
  • Lack of predictability.
  • It requires highly qualified developers.

Why Agile CMMI?

So alameensoft is CMMI Level 3 and want to adopt agile …

Although, CMMI based improvement programs have been used to improve productivity of software development and agile methods promise practices for improved collaboration, communication and project management, the possibility combining of these approaches has been criticized. Reasons for the critique assume that the CMM or CMMI based software process improvement would in some context lead to document driven software development approach. This is against the principles of agile software development. On other hand, the use of CMMI reference model has been define as too time consuming and process oriented which means that efficiency may disappear from software process improvement because the support and feedback from actual developers to software process improvement are missing.

Although lots of people who looks from an upper point of view believe that both contradict, we in alameensoft claims that they can work together to support and complement each other, the challenge here is to balance the two approaches to take advantage of their strengths and compensate for their weaknesses overcoming the perception that they are competitors or mutually exclusive alternatives. Agile Methodologies can guide such companies towards more sufficient implementation of CMMI process requirements and support achieving CMMI goals in lots of smart ways such as:

  • Promotes value driven implementation and waste elimination or removal (from its lean origins), this ensure a proper, lean, and valuable implementation of the CMMI practices and goals.
  • Increase the contribution of different practitioners in process improvement activities.
  • Agile promotes heavy team involvement in various practices and domains (e.g. project management) and promotes a way for the team to continuously improve across the project lifecycle.
  • An agile project relies heavily on automation. These tools play a crucial role in eliminating wastes and overheads in process improvement generally and CMMI implementation specifically. On Other hand, CMMI can help agile companies to institutionalize agile methods more consistently and understand what processes to address. CMMI can complement agile in lots of ways such as (but not limited to):
  • Provides focus on organization level practices, policies, reports and goals is often neglected or implemented with minimal focus or interest in agile environments
  • Add volume and maturity to the agile practices especially in areas like (Project Management – Configuration Management – Quality Assurance

Additional benefits of agile transformation include:

  • Higher Quality – Deliver higher quality code with earlier testing, automated regression test, and continuous integration
  • More Transparency – Daily standups, sprint demos, and retrospectives give control that is not illusory, but real
  • Greater Value – Expend effort only on things that really add value
  • Lower Risks – Manage risks more effectively while you teach your team to “fail fast, fail early”
  • Improved Customer Satisfaction – Improve collaboration with customers making them part of your products