Monday, May 26, 2008

If we fail a SCAMPI Appraisal when can we try again?

If we were to fail our SCAMPI A Appraisal, when can we try to be appraised again? Who decides, the Lead Appraiser?

Great question! Even though there is technically no "failing" an appraisal, I know what you mean. If there are weaknesses discovered, you can indeed not achieve CMMI MLx.

If there are gaps in the Specific or Generic Goals, it is up to your organization to fix them if you wish to be successful with an appraisal. If it's something simple like, GP2.1 Establish and Maintain a Policy for performing the (x) process, then it might be possible to re-schedule an appraisal quickly. If it's something more complex like GP2.8 Monitor and Control the Process, then the cycle time it would take you to perform this process and demonstrate it through objective evidence could be months, if not years.

The Lead Appraiser is a relevant stakeholder in the decision to re-appraise, but he is not, as our President claims to be, the "Decider." It's really up to your sponsor and your organization.

If you truly believe you are ready to be re-appraised, based on the evidence, then you should go ahead and re-schedule it. If your LA does not agree, that is one good data point in the decision making process, but it is far from the only one.

If your LA is the only one saying you can't do it, and you strongly believe you have the evidence to prove adherance to the model, then you might consider a new LA. That said, they are experts so take this type of decision with care.

There is no "rule" about a waiting period after an unsuccessful appraisal - it's up to you to decide. Of course, failing a second time can be very painful.

http://www.broadswordsolutions.com/

Can we go to ML5 if we're an Agile organization?

Our company uses Agile methods and we want to go all the way to ML5. Is that possible? How many companies have done this?

The methodologies you use, assuming you actually use them appropriately, have little effect on your ability to achieve ML5.

Many have said that the CMMI is "waterfall" or that it can't apply to "agile." This just isn't true. I worked with a company recently that told me that since they were Agile they couldn't achieve CMMI ML5 because they used "agile metrics" and the model required "waterfall metrics" like CPI and SPI.

Really? Where does it say that? As a matter of fact, collecting CPI and SPI, or any other measure around time or dollars at the project level is just dumb in an agile world that has fixed budgets and fixed time-boxes.

I believe that agile is better-suited for ML5 than more traditional methods - if only because we can re-factor to focus on the high-priority items - a basic tenant of ML5 and Agile.

It's tough to know how many companies have done this - the SEI doesn't tabulate methodologies used during a SCAMPI, but I work with one ML4 company that is agile, and I can assure you that it works well.

There is a new SEI Technical Report on this subject which I was lucky enough to co-author. It is being release this month - look for it on the SEI's web site.

www.broadswordsolutions.com

Monday, May 5, 2008

We have a lot of tools. Should these be managed as Process Assets or as software engineering tools?

My organization is CMMI ML2 and preparing for the ML3 appraisal. We have SEVERAL tools (DOORS, Change/Synergy, PVCS, SLIM, and a host of custom-built apps) we use to enable and enforce our software engineering process.

Should these tools be considered process assets and part of our PAL or resources for performing the processes? If so, is there an advantage to them being managed by our process board, or being managed as normal software development? Also, would improvements/changes to these products be considered process improvements (executed under our OPD/OPF implementation)?


Yes.

Only kidding, it's a great question!

While the CMMI itself does not directly speak to this question, it does give us examples of things that should be in the PAL, or things that should be "managed" in general. That list does include tools such as compilers, databases, requirements management tools and the like. So the theoretical answer to your query is, yes, they are process assets that should be in your PAL, and you're PAL is managed by your process group.

HOWEVER......

I'm not one to be too concerned with the theoretical - especially if it's only an example list created by a bunch of smart folks at a university. From a more practical perspective, that is still in-line with the spirit of the CMMI, it would be quite difficult, if not impossible, for your process group (SEPG perhaps?) to "manage" them when most of these tools need genuine IT support, require budgets, licensing, purchasing, and maintenance. The SEPG, or other process groups, are ill-suited to perform all of THESE processes, as well as having their hands full managing the more "typical" process assets they already manage.

One approach would be to use our friend SAM to manage those who manage your tools, and let them provide them as a service with service level agreements.

On your other question, improvements made to these tools, or new tools to support processes, could, and probably would, be considered "improvements" executed under both OPF/OPD and within the context of GP3.2 of ALL of the ML2 and ML3 PAs.

www.broadswordsolutions.com

How can we successfully scale up and outsource work to skilled development houses?

We want to outsource work to skilled development houses but incur a minimum upfront cost in doing so. Do you have any advice, resources or links that would help me investigate how to make this possible?

I can’t offer any honest advice on outsourcing – mostly because I’m against the concept in general, but also because I’m no expert on the subject.

But I actually had a client once who had similar goals. Here's what I told them (and what ended up working).

Step back and look at your company from a process perspective. Where is the real value of the company? Where is your Intellectual Property? What do you do better than anyone?

I would recommend that you identify these high-value core processes within your own company, and try to resist the temptation to outsource them - even if they are engineering related.

In general, at least here in the US, outsourcing has been a financial success, but a business failure. Why is this? Because we (and I assume most others) are terrible at eliciting end-user needs, converting them to product requirements, and then translating them so the average software engineer can understand them. I say “average” because, as you scale, that is what you end up with. The quality of service you may be used to quickly degrades as organizations scale up, up become’s unmanageable as outsourcing is mixed in.

The reason it has been a financial success is, as one CIO I know put it, if “I’m gonna get crap, it might as well be cheap.” This is a dismal assessment of our industry for sure, but it’s not that far from the truth.

One way to combat this problem, and prepare for successful growth, is to use something like the CMMI to focus in on the high-value processes you will be maintaining, and also focusing as much effort on the process interfaces. Ensure that your outsourcer is able to interface with you at a similar maturity (or capability) level. For instance, if you master the art of Requirement’s elicitation and development, be sure your outsourcer’s Verification / Validation processes can respond in kind. There are a lot of disaster story’s on that subject.

If it were me I would retain processes related to Requirement Development, Requirement Management, Verification, Validation, Product Integration, Process Quality (PPQA), Project Management, and Supplier Management. Let the outsourcer take the processes associated with design and development, Configuration Management, and engineering Measurement. You should, in either case, own the architecture of the software, for this is where the real crown jewels are located.

Just mastering the process of translating business needs into technology instructions (which will become much more difficult when engineer's are no longer onsite) will pay for the cost of your up-scaled development organization.

Good luck!

www.broadswordsolutions.com

Monday, April 7, 2008

How do we know the company is CMMI Level 5 or not?

How do we know the company is CMMI Level 5 or not? Their company is not listed on the SEI - PARS system (public list of CMMI Appraisal Results).



Many companies list CMMI MLx in their marketing literature, or in proposals. There is nothing wrong with this - they should be proud of it - except in the case where they have not had an appraisal conducted within the past three years.

As you know, PARS is the website (sas.sei.cmu.edu/pars) where CMMI Appraisal results are displayed. It's a public site, and a company must initial their Appraisal Disclosure Statement (ADS) to signify they wish to be listed on the site. Most do, but I have had clients that did not want to due to propietary information they did not wish to share, or they were working on a sensitive DOD project.

The official record of the appraisal is the ADS, not the website listing, so if you need to confirm that a company is indeed ML5, and that their appraisal is current, you can ask them to show you their ADS. If they are not willing to do that . . . . well, you can make your own conclusions.

http://www.broadswordsolutions.com/

Monday, March 24, 2008

What tool should we use for our Process Asset Library?

Do you have any recommendations for software to properly manage a Process Area Library? We currently have Sharepoint but there has to be something out there that is much better for hosting a PAL. Any suggestions?

Sure, MS Sharepoint works pretty good . . . . woops, sorry! I just read your email.

This is a hot topic that every organization struggles with. It's a decision that needs to be made early so that you can capture the early deliverables for your process development project.

There are many tools to choose from. Actually, Sharepoint CAN be a decent tool for this, if it's configured properly, is available to all, and has the full-text seach add-on installed. And best of all, it's free!

Some clients I work with use their code management tools (tracker, SubVersion, CVS, et al) for this, although I find this problematic and difficult to use. Others use any number of document management tools like Documentum or LiveLink.

One of my favorites is CollabNet, a tool that essentially combines your PAL with your project repository - it's web based and (I think) is very affordable.

Finally, many companies just use simple directories with a web front end. This makes it possible to create a slick interface that is intuitive and easy to use.

The key rule of thumb for me is that all of your process assets be accessible, easy to locate and copy, that the system have the ability to record usage statistics, revisions, document attributes, and provide appropriate reports.

http://www.broadswordsolutions.com/

Wednesday, March 19, 2008

Live from the SEPG Conference in sunny Tampa, FL

The following is live 'blogged from Jeff's "Ask the CMMI Appraiser" session at SEPG 2008.

Under what circumstances would you remove an ATM?

The appraisal team needs to be cohesive and productive team and will be working long hours in cramped conditions. Sounds like a plumber!

There are two conditions under which I would remove an appraisal team member.

The first is when the ATM is being so disruptive that the team cannot work effectively. This included bullying (to get people to agree with them), excessive arguing, being lazy (not pulling their load), being consistently late, or just being plain disgusting in some way.

The second is if it is discovered that their is conflict of interest - if an ATM is the manager of projects or groups being interviewed, or if they are related to any of the interviewees, or if some other condition exists that may cloud their judgment - such as if they were the author of many of the processes being evaluated. Don't laugh, it happens!

Are Agile and the CMMI Compatible?

Yes, of course they are. CMMI is methodology agnostic and although it may read like a "waterfall" method, it isn't. I've seen many organizations implement agile processes that work well for CMMI. As a matter of fact, by far the largest number of failures in the implementation of process is with "waterfall" projects.

When you’re starting out with process definitions in a very small organization is it standard to stop development until definitions are defined?


This is what I call the "changing the engine while the car is racing" questions. If only this could be done, our job would be easy! No, I would not recommend this. A better approach would be to incrementally develop and deploy process in many small pieces, allowing people to focus 95% of their time on engineering tasks, and 5% on the develop and deployment of process. If rolled out in several releases over time it can be relatively painless.

What the heck is a technical data package?


The term Technical Data Package, or "TDP," for those of you "in the know" is your set of work products associated with design, coding, and testing of your application. This set should be well understood, well defnined, and having a reasonably standard look and feel.

What is a technical data package in an Agile environment?

Not much different than in a traditional environment, although medium and complexity can differ. For instance, a whiteboard drawing that is photographed and stored in a project repository can be an acceptable alternative to a Visio diagram.

Is it possible for a LA to conduct an Appraisal without the LA actually being onsite?

There is nothing in the MDD that says that an LA MUST be on site at all times - although an appraisal conducted this way would be very difficult to perform, and possibly could result in an innacurate result. Understanding the context of the organization is the most important thing for an LA and I can't imagine how this could be done remotely.

Are there any conditions where a LA would choose not to continue on with the Appraisal?

Yes. One example is if the organization being appraised has been coached on their answers in an effort to fool the LA into thinking they are doing something they are not. People always think they can fool us, but it's so obvious when they do it I feel bad for them.

Another scenario is when they're just not ready for an appraisal. There’s a lot of high pressure during appraisals and if its discovered that it is going to lead to an unsuccessful appraisal, I might tell them to wait a few months and try again.

www.broadswordsolutions.com

Live blogging from Tampa FL at the SEPG Conference 2008

Friday, March 14, 2008

Where do we start for DAR?

We don’t have any process defined for DAR. We want our firm to achieve Level 3 maturity but we have to start from scratch. How to go about it? Can we have a policy and a guideline for DAR process and integrate in our product creation process? What tools can we use to facilitate DAR?

DAR, or Decision Analysis and Resolution, is a ML3 Process Area that is used to help us make complex decisions in during times of stress and chaos. It is a structured process that uses guidelines and criteria to drive decisions that might otherwise be driven by emotion, money, or vendor favors (like golf, tickets, or cash).

DAR starts with guidelines that determine WHEN it should be used (such as "DAR is always used for product selection"). Then there are criteria and methods defined to help you make the decision.

Like of CMMI PA's, it's perfectly fine to integrate it into your "product creation" processes. In fact, the PA Technical Solution, or TS, takes advantage of DAR in the very first practice.

You can start with some simple guidelines and some spreadsheets that help you manage scoring or setting of criteria. From there you can grow a "DAR Library" that can be reusable from project to project.

http://www.broadswordsolutions.com/

Thursday, March 13, 2008

German Company Blows CMMI Quiz

A certain German company that specializes in SPICE has been trying hard to break into CMMI in the North American market. They've showed up in my backyard a few times. Their monthly "CMMI Quiz" that they spam across our nation just came to my mailbox this morning. I answer this quiz (correctly mind you . . . ) every month within two minutes of receiving it, but do I ever win the $50 gift certificate? Well this month they really revealed their knowledge of CMMI with this winner-of-a-quiz:

A CMMI Maturity Level 5 organization must have…

a: All Process Areas at Capability Level 5
b: At least the Process Management Process Areas at Capability Level 5
c: All Process Areas minimally at Capability Level 3 and at least one selected sub-process at Capability Level 5
d: The Maturity Level 5 Process Areas at Capability Level 5


Do any of you blog'sters see what's wrong here? Remember, they asked about "Maturity Level 5." Here was my response in the quiz email:

My answer is: NONE OF THE SELECTIONS ARE CORRECT! Wow. I’m amazed at this!

The correct answer is “All Maturity Level Two and Three Process Areas performing at Maturity Level Three AND selected sub-processes from those 18 PA’s performing at ML5.

In order to be performing ML5 you must have implemented baselines and models (OPP), quantitatively managed the sub-processes (QPM), used statistical data to select and pilot innovations (OID), and implement those innovations (CAR) on selected sub processes. But there is no requirement for all PA’s to be performing at CL5, or ML5 for that matter.

Your use of “Capability Level” throughout this betrays your lack of understanding of model representations.

Here's the breakdown:

a: All Process Areas at Capability Level 5

Not correct. We don’t “mix” Capability and Maturity Levels like this. One uses the Continuous Representation, the other the Staged Representation. There is an “Staged equivalency”, but this is not how it is applied. If using the staged approach, GG4 and GG5 DO NOT APPLY

b: At least the Process Management Process Areas at Capability Level 5

Not correct. They may be part of this, but we would not include just those, and I doubt we would statistically manage OID and CAR.

c: All Process Areas minimally at Capability Level 3 and at least one selected sub-process at Capability Level 5

Not correct. This may be close, but but no cigar. Only one sub process would not pass muster with the SEI AND we would not mix “Capability Level” and “Maturity Level” like this

d: The Maturity Level 5 Process Areas at Capability Level 5

Not correct. Again, we would not mix these, and there is no requirement to perform GG4 and GG5 if using the Staged Representation.

Keep studying guys - I hope you're clients aren't reading this!

http://www.broadswordsolutions.com/

How do we apply the CMMI if all we do is Code and Test?

There are some projects in our company which are comprised of only coding and unit level testing activities. All the other activities ( requirements gathering, analysis, design, monitoring (task priority, taks allocation, system testing ) are all handled by our customer. How are these type of projects handled by the CMMI?

Projects of this nature, if they truly have no other tasks other than coding and unit testing, can still use and follow the relevant CMMI process areas.

For purposes of an appraisal, assuming you have other projects that DO utilize a full life cycle, you could make those projects your "focus" projects and the coding/testing projects as "non-focus" projects.

That said, it's hard for me to imagine how a project can only have "coding and testing." Don't they work from a plan? Don't they capture metrics realted to what they're doing? Don't they practice CM? QA? Are tasks not monitored and controlled?

And how about requirements? Are you saying that your project teams don't discover, or "derive" requirements that the customer didn't think of? I'm not sure that's even possible!

If you think about it, even in the scenario you've described, most of the relevent process areas are represented.

Yea, it's depressing, I know. But suck it up.

http://www.broadswordsolutions.com/

Wednesday, March 12, 2008

How does the CMMI compare to TS and other manufacturing performance models?

We are a manufacturer and the use of CMMI has been mandated by our customers, whilst this fits well with 85% of the organisation which is software manufacture it is hard to fit it to the hardware manufacture side; especially when one compares them with manufacturing specific models like APQP/TS 16949.

When one does a gap analysis on TS, RD, VAL, VER, and PI versus the 24 disciplines in APQP there is a large gap around the area of “design for excellence” (DFMA, D and P FMEA, MSA, PPAP etc.).

How easy is it to hybridize the model and still satisfy external appraiser’s requirements? When will we see a constellation for manufacturing? Am I the only person wrestling with this issue?
Is the answer really 42?


The CMMI is best suited for software, although it can be applied elsewhere. Here in the US, defense contractors who are required to achieve CMMI ML2 or 3 tend to segment off their software organizations for their appraisals and declare their manufacturing operation “out of scope.” This is allowed in the CMMI model, and is known as an “organizational unit,” but some companies choose to submit the entire company to an appraisal. If you believe you need or want to included your entire company in an appraisal you should not have any trouble making it work for you (and to benefit from it).

You’re right, TS is better suited for manufacturing – although in practice it isn’t that much different than CMMI. At its core it’s nothing more than a product management behavioral model – it does not instruct a company “how” to do anything – it’s merely a set of guidelines of “what” should be done.

If you analyze the text of the PA’s you’ll see it is broken into “Goals” and “Practices” (both the Generic and the Specific variety). The Goals are required and could apply to almost any type of industry, and are not really software specific. The practices (at least the Specific variety) are NOT required, but expected, and they DO read like a software process. From purely an appraisal perspective, you could replace the Specific Practices with some that are more appropriate for your manufacturing environment, and meet the Goals using those as “alternative practices.” This is perfectly acceptable in the CMMI and as an appraiser I would not have any trouble “passing” an organization that took this approach.

As to the gap analysis you’ve described, you are not comparing “apples to apples.” In listing the CMMI “engineering” PA’s and comparing them to DFMA, FMEA, etc you are leaving out the PA’s such as OPP/QPM, OID/CAR which would play a role and be integrated with VAL and VER to form the equivalent. Unlike other process models, the CMMI is a highly cross-functional interdependent model and needs to be viewed as a system – not stand alone PA’s.

I would recommend that you do a high-level mapping of how the CMMI would align with the more manufacturing specific model. I think you’ll find that they are equivalent with a little bit creative integration – and that is the way the model is intended to be used. I admit it’s not as clean as we may like it to be – but it does work.

You will want to meet with and explore your Lead Appraiser’s intellectual flexibility on this – not everyone has a “systems of systems” capability and it will require this to successfully understand how you’re applying the CMMI model. Contrary to myth, not all LA’s are brilliant and wise!

I wouldn’t expect the a manufacturing – or other industry specific – constellation anytime soon. It’s not a constellation that’s on the “horizon.” The next release will be “SERVICES.” And no, you’re not the only one wondering about this.

If the answer is not “42” it’s “B.” Either one will yield the same result J

http://www.broadswordsolutions.com/

Can the CMMI be used for Manufacturing?

Can you advise on how readily applicable the CMMI is to a conventional manufacturing environment, I understand from the book and other SEI publications that the model is infinitely tailorable but when you get down to the SP level it is very software centric.

Well, that would have something to do with it being written by the "Software" Engineering Institute!

The CMMI is a process model for product development, and the Goals are the required components. The PRactices are expected, and DO often read like a software product model, but they can be replaced with alternatives of your choosing - as long as those alternatives add up to achieving the Goals in each Process Area.

So yes, the CMMI could be used, and often is, in a manufacturing environment. It's a great set of guidelines for product and project management.

http://www.broadswordsolutions.com/

Is the Configuration Management Plan the same as "Plan for Data Management" in Project Planning

Does a Configuration Management Plan satisfy the pratice "SP 2.3 Plan for Data Management"?

You will likely get many different ideas on this . . . I would start with the notion that it COULD if all of the appropriate information is in the CM plan.

Some will say no, a CM Plan is distinct from this practice. That's true if you interpret the CM plan in its most narrow form, but I would argue that even the term "configuration management" is something in our industry that means many things to many people, so it's not beyond the realm of possibility to include "project data" as part of the plan.

As practical appliers of process, we are able to interpret artifacts in any way we please, as long as they satisfy the minimum requirements - why not let the artifacts work harder and satisfy the MAXIMUM requirements - and include things like "project data," roles& responsible for the artifact (geez, maybe a little GP2.7, GP2.2, GP2.3 . . . ) and who approves them, when they're audited, and by whom (oh, a little more CM "evidence" here) and so on?

I borrow a concept from the building industry where they architect rooms and buildings that "work harder." A gym that is also a meeting place that is also a performance space. Why have more artifacts than you need? Make the one's you have work harder.Just remember that the intention of the practice is to plan for the management of all data produced by the project - including things like test data, customer files, and other work products not always traditionally placed under "configuration management.

"Think agile, and reduce the burden on your practitioners. Engineers will love you for it.

http://www.broadswordsolutions.com/

Should we use Six Sigma as well as CMMI?

We're just starting out with CMMI and my manager says we should employe Six Sigma to manage our metrics. Does that make sense?

Six Sigma is a set of methods for gathering, analyzing, and acting on information derived from statistal analysis of performance data. The CMMI is a process model. The two CAN co-exist with one another.

Whether or not a company has adopted CMMI has no bearing on their ability to apply 6Sigma techniques, of course, but the viability of the results are skewed by the lack of “standard process performance.” The degree of skew is a risk management problem – how much flawed data is a manager willing to work with? Starting with the assumption that data is ALWAYS flawed, it comes down to how much risk are they willing to manage? Even when you apply Stastical Process Control to software the data is always flawed. But even flawed data can be helpful DEPENDING on how it’s used. This type of conversation seems to open their eyes a bit to the use of statistical data.

So yes, techniques like 6Sigma CAN be applied at any time – but the value and accuracy of the data they produce increased as process stability increases. This may have nothing at all to do with CL by the way. The absence of a policy, for instance, may not affect data accuracy (especially in small organizations). Sometimes, depending on the client, I advise them to put 6S on hold until they’ve reached some level of stability. One could argue that it’s a “waste” until CMMI ML5, but I don’t think so – there is value to the data at all levels (assuming we know what we’re looking at and why).

http://www.broadswordsolutions.com/

What's the difference between a performed, managed, and defined process?

I'm confused about the three different types of processes in the CMMI - Performed, Managed, and Defined? Aren't they all just defined?

Well, to be more precise there are FIVE process types in the model - the three you mentioned plus "Quantitative" and "Optimizing." Those two represent ML4 and ML5 - but I digress.

The three process “types” you’ve asked about each have different attributes.

A “performed” process may be improvised, has no policy, training, QA, et al, but includes the basic practices needed to execute the process on a project.

A “Managed” process has all of the attributes of the “performed” process but is executed in accordance with a policy, is planned, has resources assigned, people are trained, etc (all of the GPs for GG2).

A "Defined" process is a process composed using the organizations set of standard processes following a set of guidelines and is improved over time. (GG3). The process that results from any of these may or may not include everything needed to complete a project from start to finish (for example, it could address only Requirements Management and not Project Planning). It does, however, typically include much of what is needed in practice and ALWAYS “lives” within a project.

Just to add to the confusion, a “Tailored” process IS a Defined process. A Defined Process IS a “Tailored” process. If a Managed” process is tailored, is derived from a set of standard processes, and the “user” contributes to the PAL and measurement repository, it is a “defined process.”

Finaly, an “institutionalized” process can be either a “managed” process (GG2) OR a “defined process.” (GG3). The Generic goals indicate the "degree" of institutionalization.

Whew! And we're just getting started!

http://www.broadswordsolutions.com/