Sunday, April 26, 2009

What is a Process for an Organization?

In this world there are people of all kind. They follow different religions or sects or some are athiest. There are ways, practices, rituals, philosophies, gurus, of these religions. We need religion to prevent chaos in the world. Because we need some guiding rules and an accepted way of living so that people behave sanely and follow a system to coexist. It is another thing that in today's world it is happening just otherwise, but then that is of course because of wrong interpretation and implementation of the principles as well as personal motives.

When we talk about a corporate organization, we see that their are employees who have to do their job together. When there are more people involved, the communication channels multiply and hence give rise to complexity and a chance of getting things worse and unintended consequences thereof. To avoid the unintended consequences and to have a harmonized way of working to achieve desired results, the organization needs some guiding principles, processes, models to guide its people to cooperate and do team work. The various models for these processes are like different religions in this world who have same goal with different approach. Processes defined as per these models are like the religious doctrines, rituals, practices which people follow in daily life. The processes help in mutual cooperation and promote teamwork similarly as religions teach brotherhood, charity and mutual respect. When the Process Model is not interpreted correctly due to ignorance or intentionaly, the goals are never reached, and it also creates chaos in the organization. People start doing politics with processes, blame games, use of data to accuse others. It all is same as it is in the world where people are fighting because of incorrect implementation of religion.

Process is the religion of the organization.

Sunday, April 19, 2009

Widely implemented Global Best Practice

The awareness for quality and various models and philosophies woven around it have at least achieved one thing across the globe. This achievement is a practice which is most standardized and uniformly implemented in almost all the companies in this world. It is the famous practice of 'complaining about the Management and one's Boss'. Though it was not intended as a product of quality movement but it happened as a result of putting most emphasis on 'Commitment of Managment'. Go to any organization, irrespective of its business and market, one thing is sure to be similar to all other organizations, and its this practice. Employees keep on complaining- "Oh..Management is not serious, they don't do this, they don't do that. They should do this/that.." It is true most times but it has also become an excuse for the sorry state of quality in organization. Employees often say 'Oh we could do it but first the Management should do this. It is used like putting a condition 'IF 1 = 2 THEN..' in a piece of software code, so that the instruction is never executed.

How often one evaluates him/herself? What have I done to change the situation? Have I done enough in my area of influence?... If employees do this kind of self assessment, then most of the time they can find that they themselves are not doing their job in the right way. There should never be a condition to do a right thing. 'Being RIGHT' of an action is a reason in itself for doing that action.

The verses of Gita which tells about doing one's Karm and not to worry about the results must be followed. If one does his part sincerely then he has neither to worry about results and nor should complain about others not doin their job. If all follow this and do their part, the puzzle will solve itself.

Tuesday, May 6, 2008

We don't need a Quality Department

Is it worth investing in QA staff? This is a question which many companies think about a lot. I have seen process improvement budgets scrapped, staff sacked, staff harassed by asking answer to questions which they are not responsible for..

Do we really need QA staff in our company? Well the answer is both, Yes and No.

Yes, because if there is no one responsible for implementation of these activities, then they always take a back seat. When the project team struggles with project issues, changing requirements, challenging schedule, they are don't have a will strong enough to follow all processes in tough times. They never get appreciation for following processes if the project's financial objectives are not met.

But why doesn't it help even when we do have a QA department? Actually people in QA department think process is the goal, whereas it is only means to achieve the project objectives which are the real goals. So there is conflict of interest of these parties. There will be success and harmony only when there is synergy. Project goals must be clear to all stakeholders and how those will be achieved must be defined together.

I think the current practice of worshipping certain model and having a standard process for all projects is also the culprit for our problems. This makes us to enforce the implementation of these processes in all projects even if they don't make sense. Lack of right people in QA function makes the situation worst. There are guys who don't understand the project needs at all but they try to beat the shit out of the Project manager by raising hell lot of Non Complainces and escalating the project as red. Most of the times there is no connection between QA project status report and the real project status. QA only beats the process stick, while the project is dealing with engineering issue. There are projects which show 100% complaince to processes but they still fail due to lots of defects. Why? The project did all what process asked it to do. All documented, signed checked-in. But the guy who wrote the program didn't understand his module or maybe he simply didn't care and he screwed the module he is working on. So now we have all documents, plans, design, program specs, but still the software is shit.

We can't have a quality output until unless the guy who is actually developing the product does it right. We can't just focus on documenting the plans, reports, drawings and expect all to go well. Every single aspect of a project must be individually taken care of and integrated in the big picture to get what we want.

Implementing a process model is very easy. Coz' it all is verified in paperwork. But what goes on in the real product/service is most of the times not touched at all. Its not like that processes are useless. No, they are very important and essential part of quality assurance. They definitely can get a quality product or service but that is an ideal scenario. It works when all stakeholders know what exactly the process means and expects them to do. How is that relevant for the project? How are all activities connected? How should the interim process output be interpreted and used for betterment of project?

Same applied to data collection part. What we should do is that we should identify the information which we need for future reference (for learning and decision making). When we are sure that this is the necessary and sufficient information need, then we should define ways of recording such information. Companies collect so much data which they never use and hence waste lot of effort in doing so.

No, a QA department is not required. Why?

Because it shifts the responsibility of quality of services/products from the practitioners to this department. It should not happen, but it is a bitter truth. A Purchasing department is reposnible for purchasing activities, Testing for testing, Business Development for getting projects and orders and so on; then why Quality Department is not responsible for quality? Very genuine question indeed!!! And it really works at back of everyone's mind. Maybe if we change its name to Process Assurance Department, then it will be better. Because what it does is, in fact, only process assurance which in turn is expected to do Quality Assurance.

I read somewhere in an article- "Quality can only be engineered, it can't be managed". What a thought! Quite right! Isn't it?

Let the developer be responsible for quality of his product and then only there will be quality. But then the excuse is of not having enough time to really develop a quality product. It is the most common reason cited for not following processes, not having adequate quality and all the problems. But then I think that is the challenge! Of course there will not be enough time. Why can't we be innovative? Where there is a will there is a way. Have we ever compromised on quality of things which we acquire for our personal use? Do we compromise if we make something for us? No. Thats the difference. because here they don't have anything personal on stake. I don't loose my salary, I am not sued for producing bad quality..so why should I care!

I conclude it like this- The QA departments are in fact PA departments and they should be called so. The responsibility for quality lies with the person who is producing the object. If we really have a will to produce a quality output, then we surely will do it. Of course there are exceptional cases where the constraints really don't leave any chance to have desired outputs, but those are rare.

Friday, May 2, 2008

Realizing Quality

I think Quality Goal can only be achieved if greed for easy money is controlled..

How does an employee make easy money? By not doing his job honestly.

You are paid for your job. You accepted the job with the conditions laid down upon you by your company. You were dying to get a job. But now when you have one, you don't respect it. What you do! You come to office, waste your time and your colleagues' too. Do personal work on cost of your company. Okay fine! But at the end of the day please do the job for which you are hired. A designer is supposed to make a robust architecture. He does some copy paste from an old project, do minor tweakings and here is the architecture which is claimed to be the only feasible solution, and that our architect spen many sleepless nights to come out with this master piece.

A developer is supposed to code a module. He also use the C&P technology, check-in the code and goes for a smoke. No code review, no unit testing... Who cares! If this will not work we will see in testing phase..why bother now!

Everywhere, in every phase, in every activity there is this casual approach and seapage of quality. So finally by the end of project lifecycle all quality seeps out and nothing is left for the customer to smile about.

This is easy money. When we don't do our job for which we are paid for. When we play video games on our workstations instead of thinking of ways how can we improve the workproducts. When we fill wrong timesheets to hide our theft of precious company time and declare we spent long hours in finding solutions for the project when in reality we were flirting with another colleague. When after doing all this, the paycheque is credited to out bank account at the month end, that is easy money.

Only if we start feeling sense of responsibility towards our profession and behave honestly at our workplace, and doing our part with utmost sincerity, then we can realize the goal of quality.

How we behave at our workplace denotes our character.

Maslows Hierarchy of Needs and CMMI Model



I found a strange similarity between Maslow's famous Hierarchy of Needs and CMMI Model.






Maslow's hierarchy has 5 levels viz. Physiological, Safety, Love/Belonging, Esteem and Self-actualization.


The higher level needs only come into focus when lower level needs are satisfied. However there are exceptions. Some people tend to focus on higher level than the lower level needs, but then they don't last long too. Sometimes these needs are attended in parallel.


CMMI model also has 5 levels (staged) viz. Initial, Managed, Defined Quantitatively Managed and Optimizing.

A step by step approach for process improvement which recommends satisfying lower level goals before aiming higher level goals.

If we compare corresponding levels of these two models, we see some similarity. Does it mean something? I am not sure. I will try to interpret it from my point of view. But first lets see the similarities.

First level of Maslow's hierarchy is Physiological needs. It covers the needs wihc are must for survival like food, water and other basic needs must for our living on this planet. First level of CMMI is Initial. Which means the organization has little control, no idea of future and is just in survival mode. It has to satisfy it basic needs of making enough money to survive.

Second level of maslow's hierarchy is Safety. So when man's physical needs are satisfied, he feels for security of his livelihood, a secure future, health, safety from crime, etc. CMMI's second level is Managed. here organizations projects follow some processes, they are capable of doing projects repeatedly and give some assurance of making money by showing their capability to the customers. So the organization is little safe in terms of its existence, it has more money to invest and to safeguard its interests. It can pay good so can retain key people too which ensures its control on situation and hence adds to its safety.

Third level of Maslow's hierarchy is Social needs. Here the man feels the need to connect socially, have friends, have a circle, be part of soceity. In CMMI, the third level is Defined. Here the organization has a standard process and framework. All projects are executed in similar way using same forms, templates, methods, etc. The organization needs to make a framework and have corporate culture which can bring all employees together and align them in same direction. They all belong to this way of working and can connect with each others work.

Fourth level of Maslow's hierarchy is Esteem. After having a full stomach, sitting in a secure environment and sipping cola within a circle of known people, man needs to get some appreciation. he yearns now for his own identity, his brand value, fame and glory. CMMI level 4 is Quantitatively Managed. Here the projects are managed quantitatively. They have goals/targets, they can predict their success failure and hence are in very control. This helps organization in doung succesful projects and repeat it again and again which gives them good image and hence gets them even more business.

Fifth level of Maslow's hierarchy is Self-actualization. In Maslow's scheme, the final stage of psychological development comes when the individual feels assured that his physiological, security, affiliation and affection, self-respect, and recognition needs have been satisfied. As these become dormant, he becomes filled with a desire to realize all of his potential for being an effective, creative, mature human being. "What a man can be, he must be, is the way Maslow expresses it. CMMI level 5 is Optimizing and strives on Continuous Improvement. here the organization uses all its resources to contiuously improve its working, creative ideas are at play and the organization is on path to scale new heights and to use all its potential to generate value. Employee welfare and social responsibilities are taken care of willfully.

What I see is that there is definitely some similarity between these models but what might be the connections? Is it because Maslow's hierarchy is for human beings and an organization is madeup of human beings? Does need of each individual employee somewhere becomes need of the organization?

The Quality Department

There are several definitions of Quality- "Conformance to requirements", "Fitness for use",....and so on. The Quality Gurus have already said it all. Who is responsible for it? Well the answers vary from person to person. Some will say whole organization, some will say the Top Management... But ultimately in reality the responsibility rests with a separate so called independent department which we popularly know as "Quality Assurance Department".

Now this QA department is supposed to be independent, unbiased, intelligent and empowered. But what I find is that this department is most of the time dependent on others to recognize their contribution in organization's profits and growth. The Head of this department is the one under most pressure even when he/she is not responsible for generating business or producing the products of the company. Still he (for sake of easy writing lets say he only) is the one who is always answerable for all the failures.

Companies invest huge amount in implementing proces models -CMMI, ISO, ITIL... as well as staff to define and implement processes. But then still they don't see the benefits which are promised in the introduction sessions by the consultants or in the books of these models. What do we achieve? At the end head of the head rolls and the same cycle begins with new person-in-charge or with a new model.

What is the problem? Problem is that the Q department doesn't work for goal of quality, instead it only works for the big boss (the CEO/MD). What does the Boss wants to see? What does the Boss wants to know? Boss wants this data, Boss wants that data... Always serving the wrong customer. Sometime the department behaves like Management's Stripper. Dancing to please them.

Do we need such department in a company? I don't think so. Its better to save this cost than having a department which works only to make the Boss happy.

This department will not be able to add any value in the organization, simply because it is bothered only about saving its own ass. When there is fear, there is no quality assurance. Only if the management is able to create an environment where there is mutual trust, sharing of goals and a guarantee of long term partnership with the organization, then this department will start contributing to organization's success.

Give the team some respect, give them the budget and for god sake give them some time to bring some changes. Cultural changes don't take place in 6 months or an year. They take long time.