Wednesday, September 26, 2007

Can you tell me what as a company we will be measured on within SAM to achieve CMMI level 2?

The answer to your question has several parts.

First, is SAM applicable to your company?

SAM, or Supplier Agreement Management, is the one Process Area in the CMMI that can be considered "not applicable" by your Lead Appraiser and Appraisal Team. SAM is usually applied if you engage an external provider to perform a service or build a product that becomes part of your company's product or service offering. Some appraisers have said they include SAM if ANY product or service is purchased by your company - I disagree. Should you perform SAM for buying pencils, pizza, and toilet paper? I don't think that was the intent.

Second, the model itself outlines the Specific Goals that are required, and the Specific Practices that are expected to be performed to achieve them them:

The CMMI asks us to "elicit needs." Can you give some examples of how to perform this practice?

Sometimes customers believe they are giving you their "requirements" when if fact they are presenting you with a list of needs. A requirement is a specific thing (clear, traceable, testable, etc....) and often the "requirements spec" we received has few of these things. RD.SP1.1 starts with "Elicit Needs" and asks us to perform a process to identify the needs from which the requirements are developed.

There are as many ways to "elicit" a customer need as there are companies. Each one I've worked with has their own approach and style, but there are some similar threads out there that I can offer as examples.

- Facilitated sessions with the customers and engineering/requirements folks where the needs are mapped out and debated using a simple white board approach. Make sure to bring your camera! And yes, photos can be placed under configuration control (and can "count" towards evidence, if managed and used appropriately).

- Brain storming sessions that are structured using a mind-mapping" approach and a tool like MindJet's MindManager (a personal favorite). Assign different "branches" of the map to appropriate stakeholders in breakout sessions and then have an integration party at the end! It helps to have someone adept at the tool "play it" in real-time as people are debating.- Graphical approaches using white boards, swim lanes, or graphical tools like iRise (a great tool for this by the way). Different colored pens and someone who can draw helps here - the high-end consultancies use real artists for this (as opposed to those of us who are not!)

- Prioritization workshops where the customer relates to the engineering staff what is most important to them. What can they live without? This subtractive approach is good for reducing scope.

- A detailed requirements spec sent from customer to supplier in a bidding process. This is very common in the manufacturing world, and is almost always incomplete. But, it's the way of the world for thousands of engineers. The thing to remember here is, your work is not done just because they send you a 400 page document - it may not have a single "need" in it!

- In an agile setting, prototypes, sample screens and reports, or "Spikes," an early working model of the most important features requested, so the customer can agree on what they want. This method is iterative of course, because the customer rarely knows how to articulate what they really want.All of these, and others, can (and should) be iterative. In other words, it's more than one session, or spike, and is a back and forth negotiation with the client.

Interpreted literally, the CMMI tells us to "elicit needs" (as if you can just go off and do some elicitin') but remember that the actual effort could be days, weeks, or months in duration, and could happen repeatedly throughout the lifecycle of an overall program - resulting in many releases of the system.

Wednesday, September 12, 2007

I'm confused about the different versions of the CMMI. Which one should we be using right now?

I understand your confusion. In version 1.1, there were multiple "disciplines" within the v1.1 framework. Software, Systems Engineering, and Supplier Sourcing were all available. When v1.2 was released in August of 2006, you could choose v1.1 and an accompanying discipline OR you could choose CMMI - DEV v1.2. As of August 2007, CMMI-DEV v1.2 is the only version of the CMMI that is active and supported. The concept of disciplines has been eliminated, and the "DEV" refers to the only "constellation" that is available ("Development"). Other "constellations" are planned for the future (Acquisition, Services) but have not been released.

So the answer is simple - there is only one choice right now, CMMI v1.2-DEV.

Tuesday, September 4, 2007

I don't want to be boring so I'll just get to the point. We are going for CMMI Level 2. We don't have any processes or documents for the different process areas. My question is "how do we start with CMMI?"

zzzzzzzzzzzzzzzzzzz. Just Kidding!

The great thing about process improvement is that, at any given time, somewhere in the world, there is someone just starting out. There is no such thing as a boring question (well maybe "my boss says to get to level 5 in six months, is this possible?" is a boring question)!

Where to start? Well the CMMI reference itself is a great place to start out. If you're going to try to organize yourself around Level Two then read, in section 2, the seven process areas that are contained in Level 2 (REQM, PP, PMC, PPQA, MA, CM, and SAM).

Remember that the goals are required, the practices are expected, and everything else is information.

Next, do an HONEST self-evaluation of each practice based on a set of typical projects in your company. The sub-practices and informative text in each practice will help you to understand the context of each practice, but remember that these are only examples.

Once you know where you are as it relates to the model, put together a plan to close the gaps, and at the end of each phase have an external CMMI Appraiser stop in and conduct an informal evaluation and help you refine your plan to achieve.

If you're asking how long a successful appraisal is "good for" the answer is three years. If you've had an unsuccessful appraisal then the answer is less clear. The SEI does not provide any formal guidelines for this, as every organization is different.

It really comes down to the depth of the weaknesses identified during your appraisal, and whether or not you can credibly make the corrections, build up some maturity, and show results on a reasonable amount of projects.

In some companies this could be six months - in others it could be six years. It just depends on your situation.

The bottom line is that there is no formal requirement from the SEI on this but you will need to ensure that your Lead Appraiser is comfortable with your progress from the last appraisal before you conduct a second one.

Process areas like DAR etc... may not be used every time in all project circumstances, although informally some of it may happen. Does it mean we use the standard DAR template to formalize these exercises ?

Hmmmm, should you fill out a form only for the purpose of "satisfying" CMMI even though it may not be needed? My good friend and colleague Hillel might say this type of behavior "enraged him" in response to this non-value added activity. I'll stop short of being enraged and settle on perplexed. Why add the overhead?

I would never ask you to fill out a form just for the CMMI. There are projects that just don't perform any DAR practices, nor do they have a need to. If that is the case then DAR evidence just wouldn't be available for that project. Of course, it's not a free pass to ignore DAR either. Someone with appropriate authority should want to know WHY DAR wasn't needed, and a process for tailoring would need to be demonstrated, but that's another subject.

Bottom line? Don't do things "just for the CMMI." Do things that make sense for you and your business - and have an appropriate process for tailoring.