Is SEI-CMM L5 better than Agile Methodologies ?

I was working with a company which moved to CMM L5 and spent lot of $ on going for appraisal. I saw how the quality department and some of the (unlucky) project managers had to run around for the CMM L5 appraisal. Till that time I was more used to XP and Scrum for almost 3.5 years. Now as everyone would expect its very very difficult to get into the CMM mindset level from Agile methodologies. Of course in the end both processes are aiding us to achieve a good Software Product. As a project Lead i had the responsibility to implement a SW Development process. My manager was reasonable enough to listen to me and see the differences between CMM L5 and Agile practices.

In this article i want to explain how i convinced my management to adapt Agile Development for my project. I moved from CMM L5 to Agile Development. The comparison shows how i achieved each process area of CMM via Agile practices.

Some how in the industry there is a misconception that the Agile practices will lead to “Code-Test-Fix” cycles. Many fears that this process would lead to non-deliverable product , etc… In any case i had to convince few stakeholders in my organization to try these practices and see if it is better and makes sense. My Manager, QA Lead, QA Manager and customer are the main stakeholders who would be interested to see what the new process would be and what would it bring to them without disturbing any of the current Organization Level Metrics/Statistics. For me i had the advantage that the customer is working with the agile practices for a long time and there is no need to explain him what it was.

Let me explain the project that i was working for, so that you get the environment where i implemented this. This was a project with 10 team members in India and 5 team members in Germany. We had a time difference of 3 hours daily and we had full access to the Phones and Video Conferences. Everyone speaks english and the entire team knew each other. We have been developing a Eclipse based IDE for automobile systems and we were using CVS as configuration management system, JIRA for the Requirements, Work break up as issues, Bugs and Enhancements processing, Release management, estimations, tracking, we also linked JIRA and CVS via fisheye so that the traceability is not missed. Hummm….i definately have used a lot of JIRA, but trust me it worked perfectly (some say that i over used it). Every one is happy that they do not have to use any other Requirements Management tool (like Clear Quest), Bugs tracking tool (like Bugzilla), Project Management tool (MS Project), Team Tracking tools (PS7 and PC Team), etc… The important thing is that the developers and leads have to use only the Eclipse, CVS and JIRA; Thats all is the environment that makes your product development happy. We do have team members with varied experiences ranging from 12 years to 1 year.

In this article i am not going to explain the agile practices that we implemented but i will limit it to the differences that i found and we tackled with Agile Methodology. For Agile Methodology i have taken few practices from XP and practiced SCRUM. Following is a overview of the comparison that i had done. Of course i finally got the approval to go ahead with the Agile process that i proposed. But it was a lot of work to convince the management. I hope some of you who had done the same would agree with me 🙂 .

CMM and Agile.

Now its the time to look into each key process areas of the CMM and see how Agile Processes/Practices can help. Please make a note that i have mentioned Eclipse, CVS and JIRA in some of the process comparisons as tools that supports process implementation.

Project Planning & Integrated Project Management

  • Joint development with the customer
  • Life Cycle
    • No distinct phases, “Daily Development“, “Daily Integration”, “Daily Reviews”, “Daily Testing” and “Weekly Deliveries”
  • Estimation technique
    • Milestone (Sprint) planning is expected to be flexible. And customer has a knowledge of development on daily basis.
  • Tools recommended by customer
    • JIRA for planning, scheduling, tracking and OPL

Monitoring and Control

  • Team meetings, corrective actions, risk analysis is a daily ritual.
  • Agile methodology which is flexible, responsive, builds a self-managed teams
  • SVL, OTDQ have no importance. Sprints are flexible enough to accommodate various situations.

Quantitative Project Management

  • Flexibility is key. SVL (Schedule Variance) , OTDQ (Ontime Delivery Quotient) and RSI (Reqirement Stability Index) have no importance, sprints are flexible
  • JIRA will be used for scheduling, tracking and defect logging
  • DD/EPY (Delivered Defects per Person Year of effort), PYe(Productivity) , DFDQ (Defects per Delivery) will be calculated from the JIRA data

Requirements Development & Management

  • Frequent/Continuous meetings with stakeholder to get requirements – no concept of frozen Requirements. RSI has no significance.
  • JIRA is the RCMS for the project stakeholders (management, users and development team)
  • Due to the connection between the JIRA and the configuration management, code traceability is automatically maintained

Technical Solution

  • No distinct phases, “Daily Development” – Daily Integration, and weekly Deliveries
  • Not practical to check DIR (Defect Injection Rate) before each delivery
  • Impact analysis and Design is part of JIRA and is shared with Stakeholders

Product Integration

  • Due to Daily Integration and tool support, Integration is not a separate phase

Verification and Validation

  • No Distinct phase for reviews, testing. TDD – Test Driven Development.
  • Daily Reviews and Daily Tests; More efficient than a milestone based or task based reviews and testing.
  • Daily Development concept requires daily reviews and testing. Therefore no Test specification reviews.
  • No formal acceptance Test Specification, weekly Deliveries. As the customer is part of the deliveries (sprints), Acceptance test specification has no significance.

Configuration management

  • Latest code base from the development is taken and labeled.
  • Base lining is not done, as distinct phases does not exist.

Process & Product Quality Assurance

  • PDC (Pre Delivery Check) not done for Weekly deliveries. PDE is done for the major deliveries from the Customer to „End User“.

DAR & CAR

  • All major decisions taken could be documented in the JIRA tool.
    • This gives the flexibility that the entire team can view the decision basis.
  • All review & test defects are entered into the JIRA tool.
    • Informal CAR is done along with customer in the weekly reviews.

Risk Management

  • Daily meetings with the customer
  • Frequent meetings/demos to Stakeholders (also includes management, end users)

Organizational Innovation and Deployment

  • Promotes flexibility so more conducive for innovation

Hope this analysis helps you somehow. But in the end it takes a lot of time and effort to convince management who believes in the world of CMM fanatics.

This entry was posted in reviews, software, technology. Bookmark the permalink.

13 Responses to Is SEI-CMM L5 better than Agile Methodologies ?

  1. Nirav Thaker says:

    Your organization seems to be weird, never seen anyone with sane mind moving from Agile to Big Ms, Anyway, best of luck down the CMM-road…

  2. Hi Nirav… i think you got me wrong. I was explaining that i moved from CMM to Agile. Not the other way round. The comparison that gave was to differentiate how i tackled the CMM process areas in Agile way.

  3. Srini says:

    I feel that the methodology described here works better for product developments or T&M kind of service agreements. When one is working on fixed price mode, one has to consider that
    – there will not be Daily XXXX from customer

    At the same time the transition and time taken to convince the QA team and management would be relative to the number of projects executed in the company with Agile and CMM and the type of services the company is offering.

  4. Srini : I do agree with you. The transition time depends on the # of projects executed on Agile & CMM and the QA team too.

    Of course its great to have customer in the daily discussions and if thats not the case (true in many cases), i would have this for the internal development team, even if they are distributed.

  5. Pingback: Project Shrink: The Blog : Project Shrink Links 19-9-2007

  6. Pingback: ThaiDev.org 2.0 - » เปรียบเทียบ CMM Level 5 กับ Agile methods

  7. Jit Roy Chowdhury says:

    Couple of issues:
    1) I feel it’s not really valid to assert that “Acceptance test specification has no significance” in Agile. In fact, going by the Agile “Story Card” mode of requirement specifications, Acceptance Tests / Acceptance Criteria should mandatorily be written for each Story Card by the Business Analyst (or whoever is writing the Story Card). In fact, in this, Acceptance Cases are often more important than the Story Card description itself. Acceptance Cases defines the scope of a story, and also plays a major role in allaying the fears of management and customers about the quality of the deliverable.
    2) It’s also not necessarily true that Agile works better in Product Development environments. The key thing in Agile is continuous & direct access to customers, and collaborative refinement of requirements. Often in a case of Product development, direct access to one’s end customers is not always available – leading to a lot of communication gap, from my own practical experience!!

  8. Let me explain the above assertion. In the CMM-L4 and L5 organization, i have seen and experienced that the QA team would have a “Acceptance Test Specification” template. And after the release of a product to the customer, he is supposed to fill this document by checking each and every case is passed or not. And in this case, i am talking about the CMM kind of “Acceptance test Specification” but not the “Acceptance Test” it self. It is definite that whatever is the process in the end, we would want the customer to accept the deliverables. Unless its a product development company and rolling out products in to the market (i know this as i worked for several startups in bay area).

    OK, i am skeptical about this. It my view it works even if we dont have direct access to the customer. The way we do it is to have the small iterations for the product’s GA. Identify the Alpha or Beta customers for your product. Get the feedback from the Industry Analysts or even from tradeshows. So in this scenario, we are talking about the agility in terms of shorter release cycles and feedbacks.

  9. Pingback: I am just a programmer » SEI CMM L5 Vs Agile Development

  10. Agilist says:

    I have a question, where there not any change requests or request for change to requirements since you did not mention in your article how you handled them as being handled in CMM.

Leave a Reply

Your email address will not be published. Required fields are marked *