Thursday, June 21, 2007

CMM & Processes - Where does Bangladesh stand?

Today, in the SQABD mailing group, I noticed the following two questions:

1. Would you please inform me that how many companies of BD actually make a proper use of RUP, XP and so...

2. In terms of our country, process improvement is its initial stage......Not many company is working on SPI..... Look at India, where are they and where are we...?

I had seen these types of questions before and would like to answer with an explanation from my perspective. I'll start by commenting the questions again:

1. Would you please inform me that how many companies of BD actually make a proper use of RUP, XP and so...

If you need the number, it's not "many". If you need to know why, you'll find my comments about it later in this post.

2. In terms of our country, process improvement is its initial stage......Not many company is working on SPI..... Look at India, where are they and where are we...?

I would like to ask a few questions first: what's the size of the largest software company in Bangladesh? Let me ask the question in another way: how many of the software companies in Bangladesh is of size 100 or more? (including all employees - engineers, admin, management?) How many CMM level 2 (first certification level) companies we have? (we know anyone is in Level 1 by default).

Now, let's ask the same questions about India... If you do a little googling, you'll find that Infosys alone has 72,000 employees and Wipro has 68,000. India has got 60 CMM Level 5 companies, which is 75% in the whole world!!

And we compare ourselves with India every now and then?!!!! IMHO, comparing a new born with a 30 years old man is not always a good idea.

Let's dig a little deeper..

So, we should agree that regarding software industries, our country is in a very negligible state comparing to the "giant" India. (I don't want to discuss the reasons for that, it's out of the scope of this topic.) So, even they are t-o-o large, can we compare their engineering processes with ours? why or why not? You may also ask, why can't we follow from the begging what they are following at their mature stages?

To get the answers, we need to stop "guessing" and do some studies on CMM implementations first, if we haven't already. I strongly recommend everyone to read "CMM in Practice" by "Pankaj Jalote". (You may not get the book in Bangladesh.) If you don't know him already: He is Professor and Chairman of the Department of CSE at IIT, Kanpur and he is a legend in engineering processes and CMM. He worked with the processes at Infosys for many years. Now, here goes my answer to my above questions:

First, I'd really like to clarify the terms and relations between, "Process" and "CMM".

There are two main categories of processes: Engineering and Business. They are both important for any company, engineering process alone cannot improve the company. There are a lot of engineering and business processes defined/sketched out there. You can define your own too.

If a company wants to follow an existing engineering process, it must study and know what the other common engineering processes are. The company should do some studies about them, try to compare them and find which one fits best to the company. It is very important to know that some processes fit good only to some particular types of projects. For example, where the client doesn't know the requirements (as they don't in many practical cases), you can't fit IBM RUP into it, Prototype may do a better job in that case. For another instance, you may not be able to fit all of your junior coders into XP as it was built for experienced ones. Iterative waterfall, Incremental Evoluation, RAD, Staged delivery processes has their own glories. Some processes are more completely defined than other, you'll find good and complete documentation on them as you may not find on some other. You may also need to understand license types, training and certification costs for some proprietary processes.

Next, so we learned about the different processes, why wait to implement one?

One size doesn't fit all! Yes, none of the business processes and engineering processes will fit your company 100%. You may need to customize it, which is known as 'tailoring' in many processes. To do so, you need to know what your company needs now and potentially in the future and what not at all. It's a lot of work.

CMM, defined by CMU SEI, on the other hand, does not define an engineering process. It's a process evaluation framework. It defines the maturity models and the qualities a process need to have to achive the maturity levels. You need to study and outline what your processes need to have if you want to achieve the next CMM level. There are 18 important KPAs (Key Process Areas) you need to have a good idea of. There are different CMMs (extensions and versions) including SE-CMM, SA-CMM, SW-CMM, P-CMM and CMMI.

Next, the hardest part is the real life implementation. Even if you define your dream process set, it will be a nightmare to implement it in a team, let alone in the whole company. It takes a lot of effort and dedication to implement even some simple processes.

For that, you need to have dedicated "Software Engineering Process Group" with one/more dedicated "Process Coach". According to Pankaj Jalote, typical size of the SEPG is 1.5% of size of the company. Task of the SEPG is to understand, define, implement, ensure implementation, study improvement and improve the process itself.

This is where Bangladesh failed so far. Take an example of a good company of Bangladesh: Company X has 50 engineers. Size of SEPG should be less than 1 (if we take 1.5%), as the company size is very small, say we took 1 or 2. Now the problems are:

  1. Company X doesn't even know they need a SEPG.
  2. When they know, Company X doesn't want to effort (even) 2 senior guys just for implementing processes! They keep asking, what's the output, what's the benefit, etc.
  3. It's a whole lot of tasks for a 2 person team. It will take a long time to complete all of the steps and even get to CMM level 2. It's not in months, it may take years.
  4. Company X cannot even effort a third company (say from India) to come and assist them. Moreover, no other company will understand your works and process needs more than you do.

I hope, you all agree with these problems. This is the scenario of a company of size 50, think about the smaller ones of 10, 20 or 30!

Now compare the scenario with a small/medium size Indian company of size 1,000. SEPG is (1.5%) 15 people. A team that large can work much faster and better. They will succeed to get into higher CMM levels very fast.

The reason why I explained a lot about the whole implementation effort is really to give you an idea about the real life effort required and why things fail with us. I had worked in such a SEPG in a company. I learned some of the facts mentioned above while working in it.

Please post your comments, if any.

Note: Few figures were corrected on June 28, 2007.

26 comments:

B. M. Shahrier Majumder said...

Thanks for your blog.

I would like to add some points:

1. CMM is change on CMMI
2. 22 process areas in CMMI Devlopment 1.2
3. CMMI implementaion depends on project quantiy, type and complexity level, SEPG team (how many members are working full time or part time in this team)
4. CMMI dev 1.2 best fit for pure development project rather then maintenance or product implementation project.
5. More then 5 companys in BD are formaly trying to achive CMMI L3.
6. Cost is a factor to implement CMMI, but it depends on company strategy. You must go for big clients to sell your service after achiving CMMI. CMMI is not only for improve your process but also increase the value of your services.

Thanks,
Shahrier

Mashiur M. said...
This comment has been removed by the author.
Mashiur M. said...

Thanks Kaisar for writing up.

On the other day I had a chat with a friend of mine who is an expert of project management and risk management. Our conversation was on IBM Rational Unified Process (RUP), an industry standard for a risk based iterative development approach for full software development life cycle (SDLC). I think we need to learn these technologies for software industry of Bangladesh.

I am writing an article on project management methodologies that North America and Europe is practicing. Soon you will enjoy some of my interviews with project management leaders at biggani.org.

You may enjoy this article of mine that was published in Computer Jagat, April 2007.

Thanks,
Dr. Mashiur

Kaisar said...

Hi Mr. Shahrier,

I agree to your points. Thanks for informing about the number of companys in Bangladesh that are trying to achive CMMI L3. Earlier, I knew it was 3.

Regards,
-Kaisar

Kaisar said...

Hi Dr. Mashiur,

Thanks for your comments. I look forward to read your article.

Regards,
-Kaisar

Anonymous said...

Thanks you for raising that Concern. IT cos in BD should be serious about it and Go for it small step like ISO.

Mukit Ataul said...

Hi Kaisar,
your blog was very informative. You went deep into matters which needed to be clarified, and showed great research and contemplative skills in writing such a blog.

In my most honest and humble opinion (IMMHHO)
PSP AND TSP are the best process our companies can follow in bd.

What do u think?

Munaz said...

Nice post Kaisar!

1st of all what i think, we need to have good basic clear knowledge on following things:

1. How many processes are there?
2. How to practice these process?
3. Who is eligible to mentor in practicing this Process?
4. Which type of company is eligible in practicing this Process?

Then sometimes what i feel like we need people of different mind set in our Software Industry. Even though the Technical Oriented Management Team is there, sometimes we are infected with our Bangladeshi typical ideology and thinking process.

We need to change these to be more practical and competitive. I am pointing to the Management to fix an eligible person who is well known about Process Implementations and make it in Practice for regular basis.

So that beginner practitioners never loose their faith or doesn't become demotivated. Otherwise a simple mistake could raise a big misunderstanding of the Process in a fresh mind.

Sorry if i had missed your important points. But thanks for raising this issue :)

Muneer said...

Good post Kaisar. Thanks. I just want to share a few thoughts on why I think in BD we have a miserable software industry.

1. The people of companies who are buyers of large scale software, who makes the decisions from which software vendor to buy software from, want to buy software from giants in other countries such as India and China. reason A, it allows the IT manager, or CTOs to forge better ties with those giants. This is good for their careers, and they can also have better commissions, regardless of whether or not the software being purchased is of good quality or not. If it has bugs, all the better, pay more money to get support person from other countries, pay them obscene amount of money and pocket more commission. This infact, could also be good for the company as well, as they are building relations with the global leaders of the game.

Reason B. The giants want to maintain largest market share, to beat competition, the high end tier they grab by product differentiation, middle and low end by cost cutting, which wipes out our local entrepreneurs as they can't match their price, and often quality. It's like for an elephant to shower, a lot of small fish get crushed in the lake.

To summarize, only elites can serve to the need of the elites. If you want to do business with an elite you have to be an elite, or be part of or work for agents who provide for the elites. What is more important than the quality of the software or the standard used to code it, is the methodology through which you are selling it. That's the way towards growth and success, in anything.

I think there were political issues in BD as well which hugely affected the selling of software among BD consumers, especially in govt. sector, where you have more bribes etc. Maybe a changed government with new policies now would make things different. We can only hope.

Thank you all.
Muneer

Kaisar said...

Hi Mukit bhai,

Thanks for your comments.

I believe PSP and TSP are very promising and easier to implement for most project types and suitable for Bangladeshi companies. But again, I shouldn't say they are the best for all cases.

Regards,
-Kaisar

Kaisar said...

Hi Tahmid,

Thanks for your comments and raising an important issue.

-Kaisar

Kaisar said...

Muneer bhai, thanks for raising one of the very important issues in our country. This should be a seperate article and/or published in forums to create public awareness.

-Kaisar

B. M. Shahrier Majumder said...

The primary problem of our software industry is lack of knowledge about software engineering and best pactices. We don't have sufficient knowledge about Requirement development, Requirement management, Software Estimation, Software Matrics, Software Inspection, Peer Reviews, Software Project Management, Software Risk Management, Configuration Management, Software Testing, Quality Management, Process Writing, Dicision and Analysis Resolution etc.
It will be easier for a company to implement industry best practices and CMMI if they take initiave to improve the knowledge level of their employees. Because if our professionals don't know what is sw engineering, its importance and benifits then only process and mgt. pressure can't change their mind and behavior.

-Shahrier

B. M. Shahrier Majumder said...
This comment has been removed by the author.
zulker said...

Hi Kaisar,

Thanks for the post and deriving attention. I can see a number of guru roaming the blog. It became a very informative page for people interested in CMMI and BD Software Industry!

I found a list of CMMI L5 companies in India: [http://www.blr.stpi.in/cmm5_list.htm]
Do we have the list of BD companies trying CMMI? Let’s salute them that they at least are trying to be matured.

When working with standards, may be we should also dig SPICE [http://en.wikipedia.org/wiki/ISO_15504]. When working in Germany I found it popular than CMMI in Europe.

Thanks,

Zulker.

M. Kaisar Ul Haque said...

Hi Zulkar bhai, Thanks for your comments. I am not aware of any list of BD companies trying CMMI. But we should have one.

Regards,
-Kaisar

FM said...

Dear Sir,

Thanks for a very indepth and to the point analysis of the situation in Bangladesh. Let me introduce myself first. I am Farhan Mirza, the first Pakistani Lead Apraisal on CMMI and have done about 15 Class A Appraisalss on Maturity Level 2-3. In Pakistan the situation was the same a couple of years but now there are more than 25 companies who have or in process of getting this.

I am willing to share my experiences and help the Bangladesh IT industry come to par with any country in terms of Processes or CMMI.

My email is

farhan@qai.com.pk
farhanmirza1975@gmail.com

Waiting for querries.

Anonymous said...

Thanks all for your comment,

Just like to inform you that BIPL has achieved the rating of achieving the first and only CMMI Maturity Level 3 as awarded by SEI under Carnegy Melon University.

So, as of today, only and the first Company for CMMI Level 3 is Bangladesh Internet Press Limited.

Other five companies who are trying to achieve is yet to conduct their official appraisal by SEI or SEI Authorised appraiser.

Thanks

AsifM

Anonymous said...

dont get hw bipl got cmm level3, if u visit their website, nothing so special, all they have done just copy and paste materials.

Shakil said...

First, Thanks for such blog

Right now 4 firms- BIPL, Southtech,Leadsoft and Spectrum Engineering Consortium Ltd. gain CMMI Level 3 standard in Bangladesh.

We wait for more implementation of such standard in Bangladesh.

Syed Shakil Ahmed,
SEPG member,
Spectrum Engineering Consortium Ltd.,
Dhaka,
Bangladesh

Mohammad Kaisar Ul Haque said...

@Syed Shakil Ahmed:

Thanks for informing. Congratulations to all of the companies of Bangladesh that have achieved CMMi Level 3.

Md. Moniruzzaman Khan (Ripon) said...

Correction:
Right now 6 firms in Bangladesh has already achieved CMMi Level 3. and they are:
1) Bangladesh Internet Press Ltd.(www.biplit.com),
2) DataSoft Systems Bangladesh Ltd.(www.datasoft-bd.com),
3)Southtech (www.southtechlimited.com),
4)LeadSoft Bangladesh Ltd (www.leadsoft.biz),
5) Spectrum Engineering Consortium Ltd. (www.spectrum-bd.com)
6) IBCS-PRIMAX Software (Bangladesh) Ltd (www.ibcs-primax.com)

Md. Moniruzzaman Khan (Ripon) said...

You can Browse at "http://sas.sei.cmu.edu/pars/pars.aspx" to get the List of CMMi company

bathmate said...

very nice blog......
i like your posting ,this is the better blog.

Bathmate

Anonymous said...

hey..just went through your post....very informative.... feeling a bit low that we are wayyy behind.... but hoping one day we'll come through....

Noman Khan said...

Thanks
Raj IT believes in building long lasting strategic alliance with its clients. We provide easy solution to make things lot easier. Our slogan (Making IT Easy) says it all. We do not predict ourselves as a provider of a solution for our clients; we are companion to the process that seeks the most effective solution paving the journey to a better tomorrow.