At one point in my career, I thought using the Capability Maturity Model (CMM) was enough. Simply work your way up through 5 levels to reach the optimizing stage, continuously improve SCM processes, and call it good. What I have discovered is the CMM model measures one aspect of what you are doing, but not necessarily how effective you are at doing it. What if you are optimizing so slowly it will take ten-years to reach an acceptable level?
We have all seen different kinds of informal process comparisons, passionate discussions, and perhaps even formal certification programs like CMM. There is a plethora of instructions regarding software process improvement and process change skills development training out there on the internet. How many of them are structured using basic SDLC techniques? What does it look like if we start by developing a set of requirements for the business software development project, and then develop, build, test, and deploy the appropriate set of tools, systems, and process based on the requirements?
Now, don’t get me wrong here, I like CMM. Period. CMM is a good thing and software organizations should work toward the optimization level – either formally or informally – to improve process control. What I am suggesting is a need for augmenting CMM (if you have it) with SDLC techniques. After all, if you are developing software, you are already in the middle of an SDLC for your SCM environment; perhaps just not a good one. You see, an SDLC can – and is – happening even in the midst of software organizations operating within the chaos of CMM level 1.
Every software development organization already has this internal process SDLC in place in one form or another. As is the case with many organizations I’ve been involved with, I suspect that scrutinizing the current methods used for developing SCM process – i.e. the other, internal SDLC – would be frowned upon as poor, non-repeatable, development practices. I think this because I don’t see any books or blogs written from this perspective. Please post a comment if I missed it somewhere! The notion of using SDLC in addition to working toward a higher CMM level makes sense to me. After all, it’s a process we should already know and we simply need to consider applying it in a slightly different way. You can start today, no matter what CMM level you are at, just by thinking about stakeholders and requirements up front.
These are the kind of flexible, organic solutions I like to champion. The application of known solutions for solving different types of problems. Just remember …
SCM IS SDLC