World is full of failed software projects caused by several different reasons or others. You will get more than 10 millions search results if you write “why software projects fail” into Google. Most well known topics are like Neglecting important principles and methodologies, Communication problems, non-matching Skills and Expectations, Late failures and quality issues, Vague requirements, insufficient stakeholder involvement and etc..

Cost, Time, Performance and Scope are the the most important dynamics for any organization or project to attach as planned. Some companies are developing highest quality software in the shortest possible time and some unfortunately not. At the end of the day, if organization has already a clear vision and enough experience, you may expect big success out of hard work with dedication of team and for sure because of their methodologies. But how?

Smart people are rejecting processes when they were not parts of creating. For continuous success Philosophy, Principles, Methods and Technics should exist together. Sustainable success is depending on corporate know-how, competence and heroics of people in organization. Without undefined Processes (I would rather rename “Works” instead “Processes”), project results are changing based on person or event. Especially company lacks for requirements and configuration management. Missing or poor methodologies for organization could lead unsuccessful management of software projects.

CMMI is an improvement approach that provides organizations with essential elements of effective processes. It proves to increase productivity and total quality of organiation by managing definitions and predictibility. Agile or Scrum is a process investing on principles of lean development [see Additional Read-1], customer interaction, transparency over self-organizing teams, iterative and continuous working software. They help to improve a Project or a Division or an Organization. Each introduction starts with a small division or project but scaling into organization necessary for total quality. [see Additional Read-2]

There are critics about CMMI and Agile are totally different approach. Like CMMI is more organizational and cultural factors are more essential for success. Instead Scrum is referenced as not originally intended for repeatable types of production and services. However the business in our daily work is not like that as mentioned as we are customers we are still expecting from companies for product ownership and sustainable products.

CMMI is not giving orders to apply processes but list “What-to-do” while asking “How” questions. CMMI is providing “What” approach while Agile practices are providing “How” methodologies.  The “How” is coming up with your business principles. CMMI and Agile are together can accelerate adoption by providing the “How” practices for the “What” methodologies. Agile CMMI is an incremental and iterative methodology that helps you deploy processes which are “Just Enough – Not Too Much”. CMMI Level3 could be an acceptable baseline for organization which all activities are not only “repeatable” but also “defined” among projects and people. That level is the first area works were tailored by organization according to Needs and Culture.

An agile project could be successful but may not be repeatable. CMMI project might be well defined yet not fast enough. Hence we have some scenarios to use them together.

First scenario results “Less Work and Quality Improvement”; Agile first and CMMI second.

Agile could provide structure and discipline to reach CMMI-L2 from zero, increasing customer satisfaction and ultimately feeding bottom line. Burndown charts and Taskboards easily allow the organization to see the impact of discipline. And it increases acceleration of adoption. But the goal should be minimum CMMI-L3, to get sustainable results with higher quality and ROI.

With this method you will be far beyond Agile/Scrum, because sustainable success with your competence and people. Some set of best practices.

  • Identify missing activities
  • Identify gaps to your principles
  • Break down big parts into smaller chunks.
  • Prioritize Improvements.

Second scenario results “Repeatability and Predictability”, team decision making and flexibility (agility at all); CMMI first and Agile second.

You know what to do already but not sure how to be more flexible and faster, agile could help getting more frequent and iterative results. User involvement will affect requirement management to be done more effectively. Some set of best practices for the proces development with Agile;

  • Develop Incrementally
  • Create prototypes
  • Learn on the go
  • Try Them Out
  • Get Feedback continually
  • Determine Gaps
  • Deploy Them All
  • Continue Iteratively

One example showed applying CMMI decreased project work more than 30%, and agile helps to providing 35% more improvement additional. That means total improvement costs 65% reduction of previous project work. It sounds great, ha!

As a consequence, Agile and CMMI could help organizations strongly together to catch goals while providing higher quality. Synergy between two could carefully be applicable. In order to get success in Software projects, you need answers for business “What” and “How” questions. Applying CMMI and Agile together gives an organization not only balance but also improves ROI significantly.

 

Additional Read

  1. Lean Software Development
  2. Agile Scaling (SAFe)
  3. Agile and CMMI better together

LinkedIn Post.

Related Posts