CMMi – Requirement Development Part – II

With having answers of two very important questions on Requirement developments, lets get in to more detail, and understand how how to establish the product and product component requirements?

So my question to you would be:

What products do you deliver to customer? How do you establish these requirements?

The CMMi says “Establish and maintain product and product component requirements, which are based on the customer requirements”

Let’s understand as to what this mean, this is so critical that you may eventually end up getting surprised as to how detail a CMMi process can be when we talk about use of ‘specific’ words!

Now have a look at ‘Establish and maintain product and product component requirements”, now your question would be:

Well Amit, you know, Product Requirements are when we have documented the customer needs and I have performed the next step, interpreting and writing the technical requirements in three categories, which are mainly functional, non functional, interface…so what the hell is this product component requirement?

This is going to be a long post so bear with me, as this is the essence of entire project planning, if you master this aspect, we are good with any complexity of project!

Product Component:  In the CMMI Product Suite, a work product is a lower level component of the product. Product components are integrated to produce the product. There may be multiple levels of product components. I’m sure you all understand this, there is an example to follow this.

Product Component Requirements – The complete specification of a product component, including Look and feel, form, function, performance, and any other requirement.

Building a System Out of its Requirements - Dy...

Image via Wikipedia

Most of you must be having a smartphone…yeah, not like me, who is still with 1100 Nokia ;)…so, a smartphone as a product have got various product components, like the screen, the keypad, the battery, the AMOLED screen, well there are other too, but these one will do for this discussion!

Now each and every ‘Product component’ has got associated ‘Requirements’ which we call as ‘Product component requirements’

Now whenever you talk about a project, let’s take an example where in you have to come up with an eCommerce website, this website as a product, can be broken down in to one or more components. And then it is also possible to break down these components in to further sub-components.

I hope you have a clear understanding of product requirements and product component requirements..perfect!

Remember this is very important to have detailed quality requirement at this stage, the example can be:

  • Respond with in 1 second
  • System is available 99 % of time
  • Implement a change with no more than one staff week of effort
You need an SRS (System Requirement Specification) at this stage.

There is one important aspect in the RD process which talks about maintaining the ‘bidirectional traceability’, we will talk about that later.

Now very important question that comes up now is:

What components of the products are identified? How do you allocate the product requirement to components?

The intent of this practice is to make sure that the requirements for each product component (Remember AMOLED screens, battery etc.) are correctly specified (allocated).

You are still not in implementation mode, you’re only trying to make sure that requirements are properly allocated to their respective components.

So here at the product component level, you may have a mix of hardware requirements, software requirements, performance requirements, operational requirements, etc. The basic idea about requirement development at this stage is to allocate these different requirements to their respective components so you don’t implement a software requirement in to say operational or the other way round! 🙂

You need an RTM (Requirement Traceability Matrix) at this stage.

CMMi – Project Planning – Estimation

Talking of Project Management, we have always been told…that the project is or was failure due to project manager. I strongly disagree! And why do I do this, because, I know that project manager as individual are not the only reason for any project’s failure, this is more due to the lack of project management resources or you may call it process which results in a failure!

So starting from where we left yesterday, lets begin by understanding what all we have in Project Planning, and how the Project planning combines with requirement management, project maintenance and control etc.

Basic Project Management Process Area

Basic Project Management Process Area

My question would be “What is the objective of Project Planning”?

So your answer should definitely be close to “The purpose of Project Planning is to establish and maintain plans that define project activities.”

One of the keys to effectively managing a project is project planning. The Project Planning process area involves the following activities:

  • Developing the project plan
  • Interacting with relevant stakeholders appropriately
  • Getting commitment to the plan
  • Maintaining the plan

Now the biggest question is what is PLANNING? What do you know by planning, lets see:

Planning includes

  • estimating the attributes of work products and tasks,
  • determining the resources needed,
  • negotiating commitments,
  • producing a schedule,
  • and identifying and analyzing project risks.

It may be required that these activities have to go through various iteration to come up with a project plan.

So here in these articles we will surely not go towards explaining each and every special or generic practice but yes, we will surely talk about the work products. Our plan is to make it very simple for you. So how do you : 

Write an Estimate?

Before this Do you know what is an estimate! An estimate would be how much does it take to make a cup of tea? Or say How much does it take to make a Pizza?

In software development, how much time does it take to write a Webservice, which should take parameter from FB APIs, and return the “Common Friends” between you and your friend?

Now how will you tell me the estimate of this: There are two ways :

One : Guess(ti)mate

Second: Gut feeling

Third: Past experience

Issue with all these is, you eventually have no idea which one may fail or even pass for that matter! And by the way what are the parameter you are defining the estimate?

Coming back to What is an Estimate? 

Estimate is a parameters which includes EVERY information needed by the project to perform necessary planning, organizing, staffing, directing, coordinating, reporting, and budgeting.

Hmmmm, sound interesting? Or even sounds familiar. You’ve been doing this, every now and then…you have been telling your leads about your leave plans (Staffing / Resourcing), you also told them about how will you report to them every day end, you also have planned for doing a review of code, which you feel would take half a day…so see, you have ben doing all this…what does this mean…hey you’re already a champ in estimation.

So what is here for you, well a new way to learn “how to Estimate”, and do it in a mature (Level-2) and defined (Level-3) way…

Now as we discussed above as to what should be the parameter? Well parameter should be aaything which instill confidence, LIKE:

Means these parameters include project requirements, including product requirements, requirements imposed by the organization, requirements imposed by the customer, and other requirements that affect the project…

This is good…right, since now you know the basis for vital parameters over which you should do the Estimates…

I guess this will be good for today, tomorrow, we will talk about How to establish a Estimate, Project Plan, and how you can obtain COMMITMENT to the plan… Cheers!

CMMi – Maturity Levels – Initial – Managed – Defined

CMMi – Introduction to Development 1.3 : This is where we discussed about introduction to CMMi! Let’s move ahead and learn a bit more about Maturity and its associated parlance in real life.

So after understanding a bit about CMMi processes, what they are, what type os levels do we have in CMMi (Performed, Managed, Defined and so on…O. So let’s talk about this: If I ask you what processes are you following in your organization or in your project or do you even follow a process while you come to office from your home? Well the answer to all these is YES! There is process involved at each and every step of your journey. You learn alphabet via processes, you learn to cook via processes, you learn to drive via process…and each and every process and its stage is Performed, Managed, Defined, and then Optimized…

CMMi Maturity Level

CMMi Maturity Levels

In Tekriti is at 1 and or 2. We have been doing 3 all the way of our journey, but what we haven’t been doing is the organized way! We have been reactive most of the time and occasionally pro-active. So why shall we improve? For Clients? For our CEO? For our Business? No…No…No…You should improve for yourself…rest all will follow. As someone rightly pointed out, “If we do what we have been doing throughout the day in an efficient and effective manner, half of the “Innovation” is done!”

Maturity Level Details:

Maturity levels consist of a predefined set of process areas. The maturity levels are measured by the achievement of the specific and generic goals that apply to each predefined set of process areas. The following sections describe the characteristics of each maturity level in detail.

Maturity Level 1 – Initial

At ML (Maturity Level) 1, processes are ad hoc and chaotic. There is no stable environment in the Organization. Success in these organizations depends on the competence and heroics of the people in the organization (Remember I mentioning about depending on Heroes) and not on the use of proven processes.

ML 1 organizations will be able to execute the work; however, they frequently exceed the budget and schedule of their projects.

ML 1 organizations are characterized by a tendency to over commit, abandon the processes in the time of crisis, and not be able to repeat their past successes. This is very crucial, not able to repeat the success of the past. Does this remind you something? Did I hear some one say Uhh….kinda happened to me and my project? Believe me you’re not alone!

Maturity Level 2 – Managed

At ML 2, an organization has achieved all the specific and generic goals of the maturity level 2 process areas. This is highly significant, as this is the building block for all your further activities. Doing Generic Goals and Specific ones, make it easier for you to have a kick start to ML3. The projects of the organization have ensured that requirements are managed and that processes are planned, performed, measured, and controlled.

At this level we maintain that the existing practices are retailed during stress times…if the practices are in place then you have a better and managed performance according to the plan

At this level you have requirements, processes, work products, and services all managed. The entire status of the work related products (Like Requirement docs, Project Plan, Estimation etc.) along with the delivery of services are visible to management at defined points.

All te stakeholders are kept involved, they know about where we are…what is left and so on….

Maturity Level 3 – Defined

At ML 3, an organization has achieved all the specific and generic goals of the process areas assigned to maturity levels 2 and 3. There is a massive learning curve from processes perspective here at level 3.

A critical distinction between maturity level 2 and maturity level 3 is the scope of standards, process descriptions, and procedures.

At ML 2, the standards, process descriptions, and procedures differ from project to project, there is NO Organization level standard among the processes being followed. We do this and are good, and you do another one, and you also survive, but there is no STANDARD Org level process form which we can tailor all our prject level processes.

At maturity level 3, the standards, process descriptions, and procedures for a project are tailored from the organization’s set of standard processes to suit a particular project or organizational unit.

The processes that are performed across the organization are consistent except for the differences allowed by the tailoring guidelines.

Another critical distinction is that at maturity level 3, processes are managed more proactively using an understanding of the interrelationships of the process activities and detailed measures of the process.

Since we are targeting the CMMi V1.3, and hence I am not going in the details of ML4 and ML5.