We are bombarded with best practices, organized in methodologies, process models, bodies of knowledge, etc. Should we want to get better at development, which one to consider? Very difficult to say.
Let’s pick CMMI-DEV, the process model developed by the Software Engineering Institute (http://www.sei.cmu.edu/). The best practices are called specific and generic practices, grouped at first level by specific and generic goals, and finally organized in 22 process areas assigned to five maturity levels. For more information please consult the model itself at http://www.sei.cmu.edu/publications/documents/06.reports/06tr008.html.
All is nice and fit, but there are over 300 practices. And we want to implement them all, as we like the idea to get the benefits as shown by the SEI statistics. And why not, to prove we have a certain maturity level.
Over 300 you say? Well, first reason to give up. But stop! … We recognize most of them. We have them implemented already. Or at least that’s the first impression.
We decide to do a Gap Analysis, or alternatively a SCAMPI C (Standard CMMI Appraisal Method for Process Improvement). For the challenge, we target a maturity level, that means a predefined set of process areas, or we handpick the process areas to appraise. The results are telling us which practices we already implement and which ones are new to us.
What to do with the latter? Let’s don’t forget they are considered best practices, which, if implemented, will bring us measurable benefits.
So the first idea is to identify those benefits. If we can, we are happily producing a business case to identify the ROI and later to come up with a plan for process improvement. If we cannot, let’s at least try to identify and address the risks of not having them implemented. We may be in for some surprises and wonder how comes we haven’t realized so far how many critical problems had been so close to materialize. Funny to say, we might perform this risk management on the Risk Management specific practices.
What if we can identify neither the benefits nor the risks? I don’t know a “one size fit all” answer. It depends on the context. We may accept the situation and go on with our lives without caring so much about those “orphan” practices, and consequently about achieving a CMMI maturity level. Or we can trust the model and implement them anyway. Sooner or later we’ll realize if they are good for us.