Tuesday, February 24, 2009

CMMI-SVC vs. CMMI-DEV

I have some questions about the CMMI-SVC. As I understand it, the CMMI-SVC is scheduled to be released in March. My company performs IT systems maintenance by adapting the CMMI-DEV to process improvement and conducting appraisals. Of course the CMMI-DEV is good for IT system developement organizations. But I want to know which CMMI constellation, the CMMI-DEV or CMMI-SVC, is a better fit for IT system maintenance organizations. In our case, IT system maintenance provides IT service and maintenance at the same time.

What is the logical basis to switch constellations from CMMI-DEV to CMMI-SVC, especially if the CMMI-SVC is more adequate for IT system maintenance organization?


Also I am now confused about the CMMI-DEV focus. It is only focusing on System development organizations and not System maintenance organizations with the release of the CMMI-SVC?


Some people in my organiztion now think that we have been using the wrong CMMI constellation for our IT maintenance organizations.

Yes, you are correct, the CMMI for Services will be released in March, at the same time as the 2009 SEPG Conference. I think that many maintenance organizations have the same questions and problems with the CMMI-DEV.

The problems arise with the engineering Process Areas (PAs) Requirements Development (RD), Technical Solution (TS), Product Integration (PI), Verification (VER), and Validation (VAL), especially TS and PI. In a maintenance environment, there are not very many opportunities for new development and Technical Solution. The only time that occurs is when there are major changes or updates to the existing product. Then it makes sense to perform the engineering PAs. But the majority of the time the organization is fixing defects, basically delivering a maintenance service. In this situation, it may make more sense to use the CMMI-SVC and its PAs Capacity and Availability Management (CAM), Incident Resolution and Prevention (IRP), Service Continuity (SC), Service Delivery (SD), Service System Development (SSD), Service System Transition (SST), and Strategic Service Management (SSM). It is also possible to blend constellations CMMI-DEV and CMMI-SVC to address both software development and software maintenance.

It is a bit difficult to provide the proper guidance and advice regarding which constellation is the best fit without knowing more information about the specific organization. But in my opinion, I would suggest that if there is very little to no new development work being done by the projects and the organization, then the CMMI-SVC should be examined to see if it provides a better fit for the organization. Being appraised to the CMMI-SVC or CMMI-ACQ is just as prestigious as being appraised to the CMMI-DEV as 16 of the PAs are shared by all three constellations.


And as a final point, there in no change in the focus of the CMMI-DEV with the release of the CMMI-SVC. The CMMI-DEV still applies to the same situations as it always has.

10 comments:

Serapeo said...

if for example i've a project of the application maintenance with activity of ticket management and some big enhancement to billing customer system then
can i use only SSD P.A. to replace engineering process area of the CMMI-DEV to implement a big enhancement? or the SSD is used only to implement a service system?

Henry Schneider said...

Dear Serapeo,
The CMMI-SVC would apply to your ticket management system, not necessarily to your software engineering activities. For a big enhancement to your product, you would still have to perform all of the Engineering Process Areas.
Please don't get confused by SSD. Though SSD embodies many of the same types of activities you perform as you accomplish your Software Engineering tasks and activities, SSD is intended for using these same concepts for developing a service offering.

Anonymous said...

Hi folk,
I'm a little confused. If my service is maintain a customer software product then are all customer enhancement request (little or big) service requirements or service request? Can i satisfy these requests with ssd or sd or with cmmi-
dev? Can i to consider a customer software product as service system? SSD is used to an application maintenance project?

Henry Schneider said...

You need to use the CMMI constellation that is the best fit for your organization. If you are a software development organization that also performs software maintenance on your products, and you manage the maintenance as separate version releases of the software product, then CMMI-DEV is probably the best fit for you. If your organization provides software maintenance services to another company and you don't plan, schedule, and manage specific product releases, then you are probably delivering maintenance services and the CMMI-SVC might be the best fit for you.

In the CMMI-SVC situation, you would have to define what a maintenance service is. That definition should spell out what a service request is and means in the context of your service.

It sounds like you have a very high level understanding of the CMMI-SVC. I strongly suggest that you take the time to read the SVC Process Areas, especially the informative material. The informative should serve to answer your question, which really cannot be adequately addressed in this comment thread. If you want additional information, please take the Introduction to CMMI-SVC class as that will also provide answers to your questions and a better understanding of the model. If you still have some specific questions after reading the model, please ask.

msz said...

The discussion, answers and questions, was really quite revealing for when to go SVC and when to go go DEV. The problem is always with the CMMI language that always leaves what you can sometimes call "holes caused by abstraction".
Thanks guys.

Henry Schneider said...

When it comes to a software development organization, it can be somewhat confusing when to use the CMMI-DEV vs. the CMMI-SVC constellation. However, when the organization is not producing a product, then the CMMI-SVC is probably a better fit to what the organization does. And if the organization does not produce software or any other product, then the CMMI-SVC is probably the right model to use.

Ravi said...

Hi,
For projects involving work in areas of MWSOA,BPM,EDI,Data Integration Service (ETL),Reporting & Analytics,etc,what is the right model - CMMI-DEV or CMMI-SVC? There are different views. example -
can we use only SSD P.A. to replace engineering process area of the CMMI-DEV to execute work in above areas? OR do we have to apply the engineering process area of the CMMI-DEV?

Can the SSD be used only to implement a service system?

Henry Schneider said...

Hi Ravi,
There appears to be some misunderstanding of the CMMI-SVC vs. CMMI-DEV and the use of SSD.
What must be done to determine the proper constellation to use is to look at the nature of the work being performed.
Is the nature of the work designing and developing a product or product component? If so, then CMMI-DEV is appropriate for use.
Is the nature of the work delivering services or processing change requests? If so, then the CMMI-SVC is probably a better fit.
SSD in the CMMI-SVC is not intended to replace RD, TS, PI, VER, and VAL. You still need to perform these activities if you are designing and developing a product or product component as part of the service you are delivering to your customer.
SSD is ONLY for designing and developing a specific service offering. For example, if you want to define a service offering for maintaining an application, then you would use SSD to what that means. SSD helps you to then define what goes into your Service Level Agreement.
And there is nothing to prevent you from using the necessary Process Areas from both models to help improve your business.
You just need to carefully read each of the PAs and understand the intent so you don't implement practices that do not provide you any value.
If you want to be appraised, then your Lead Appraiser will work with you to determine which constellation is appropriate for the appraisal and if it is beneficial to conduct a multi-model appraisal.

Ravi said...

Hi Henry,
Thanks a lot for your valuable inputs.
I have attempted to give some more details on nature of work. Hope this info helps to some extent in choice of model.

1. In SOA typically work involves using existing products/ components to design a solution by connecting to the various applications, configuring of SOA platform and mapping of data .

• Requirements phase- Understanding what components to be connected, what format to send and receive, create a mapping document
• Design –Approach for Connecting to applications, taking data, processing , and make changes to platform using standard SOA components /tools
• Development – Building the Business Process logic and Configuration, mapping and connecting as per design document, Transformation from one data format to another using SOA tool / platform.
• Testing – Unit Testing of whatever is passing thru middleware is tested with sample data from applications being connected.

2. In BPM the typical activities would be
• Understanding of the Business process
• Creation of an optimum process through Business Process Modelling
• Mapping of the data between multiple systems , so that they can interface with each other

3. In Data Integration :
• Integration of Source application to DWH
• Data integration of disparate source systems – (transfer of data from one system to another)
• Master data management – (Since view of Master)
• Data profiling and Data quality
• Data migration using ETL tool
• Real time data integration – (Data integrate with another data base or application, similar to SOA)

4. In Reporting & Analytics
• OLAP analysis – (providing analytical reports)
• Adhoc reporting – (On demand report – provision will be provided to user to create their own format)

5. In Data Modeling
• Enterprise DWH design
• Dimensional modeling

In each of these areas, depending on scope of project the activities may be some parts/all of above. Would you like to comment based on above inputs?

Henry Schneider said...

HI Ravi,
You could use the CMMI-DEV for all of the different types of work you outlined. If you organize the work and perform them as projects, then the CMMI-DEV may be a good fit. However, if you are delivering these types of work as a service, then the CMMI-SVC may be a better fit. Basically, you have to decide the best way for you to perform your activities. In the CMMI-SVC world there are no projects, just work performed.
Hope this explanation helps.
Henry