Monday, August 14, 2006

Defining a process

Introduction
A part of the Quality Management System is the definition of the quality process. The quality process is a set of process put together according to which software is developed and managed. It is very important to understand what is a process and how does one go about defining a process. In the first part of this document define s what a process is and goes into detail what the various constituents of a process are and subsequently a template for a process definition is given.

Definition
A process defines how trained resources using a set of tools and procedures convert one or more inputs into one or more outputs. The following diagram shows the interaction of the various elements of the process. It is important that all the constituents of the processes be looked into and defined very clearly.

What would happen if we did not pay attention to any one component ? Let us say that in an organization there are very talented well trained people using the best tools the industry has to offer and gets the highest quality inputs but does not follow any procedures. In such an organization there is no guarantee that the outputs would be of a standard consistent with what is needed and there is very little scope of improving or correcting the method in which the products were produced as there is no one consistent procedure followed by the people and the measurements would also not be consistent. On the other hand let us say that the organization has the best tools the industry has to offer and very well defined procedures and Inputs of the highest quality but does not have trained resources. Even then the outputs will not be of the highest quality as the resources will not know how to use the procedures or to use the technology to convert the quality inputs into quality outputs. Similarly if the tools or the inputs are not good the quality of the output would suffer.

Constituents of a process
We will now see in detail each of the elements of a process.

Scope
The outline that connects the people, procedure and the tools defines the scope of the process. The scope details where, when and by whom the process is to be used.

People
The process definition should very clearly outline

  1. The roles and responsibilities of the people that are to carry out the process. The definition of the roles and responsibilities brings about a sense of ownership and accountability in the people that are carrying out the process.
  2. The training and skills required by the people that are to carry out the process.

Tools
Tools are all the instruments and software needed to carry out the process in an adequate manner. Tools are of two types

  1. Procedural Tools. Procedural tools are those tools that help u carry out the procedure such as templates, checklists, etc.
  2. Technical Tools - This constitutes software, 3rd party libraries, Commercial off the shelf products, etc.

Procedures
The procedure consists of a step by step solution to the problem. This consists of a set of very clearly defined distinct steps that teach the trained resources how to use the tools that are to be used to convert the inputs into the outputs.

Inputs
The inputs are the artifacts that need to be worked on to produce the output.
OutputsThe outcome of the process is the output.

Measurements
Metrics collected which carrying out the process to measure the efficiency of the process and also to give us a clear insight into the status of the tasks being carried out in the process. Some of the reasons for collecting measurements are that they can be used to study the process to see the efficiency of the process and to also try and improve the process.

Control Mechanisms
Control mechanisms are the checks and balances that are in place to ensure that the process is being carried out as defined.

Template for a process
A typical process definition consists of the following titles

  1. Introduction - In this section one can give an overview of the process being defined. It should be a one or two sentence outline of what is being defined.
  2. Scope
  3. Roles and Responsibilities
  4. Training
  5. Tools
  6. Control Mechanisms
  7. Inputs
  8. Procedure
  9. Outputs
  10. Measurements
  11. References - Any external sources that have been referenced in this procedure.

Procedure to define a process

Now that we know what constitutes a process and what are the titles in a process definition let us try and define a process. Let us try and define a process to go from Place A to Place B.

Introduction
This Process details how one proceeds from Place A to Place B provided both the places are in the same country.

Scope
To be used by all individuals who have to undertake a journey from Place A to Place B within the same country.

Roles and Responsibilities

Role Responsibility
Individual Travel

Training
Individual -
Rules and regulations of travel
Studying a map
Use of the mode of transport

Tools
Mode of transport
Maps
Directions to go from place A to place B
Journey Checklist

Control Mechanisms
Role Responsibility
Quality Control Ensure that the checklist is completed

Inputs
Name and Location of Place A
Name and Location of Place B

Procedure
Complete journey checklist
Get go ahead from Quality Control to undertake journey
Follow directions and traffic rules and drive from Place A to Place B.

Outputs
Journey undertaken and individual has arrived at Place B.

Measurements
Journey time
Journey distance
Time lost due to traffic signals and unforeseen delays

References
Traffic rule book

Notes

  1. The points that are listed as control mechanisms should not be listed in roles and responsibilities as control mechanisms are members within and outside the process that are ensuring that the process is being carried out the way it should be.
  2. There might be an ambiguity in what constitutes inputs and references and here the individual has to take a judgment call based on the following yard stick. If the artifact is used directly by the process to produce the output then it would be an input and if the artifact is only there for reference to help the individual carry out the process or is an artifact outside this process that is talked about in the process then it would be a Reference. Artifacts can either be in the references or inputs but never in both.
  3. Procedures come in many flavors some more detailed than others - what the author of a process should keep in mind is that when defining a process it should be defined in such a manner that it can be used by the people. For example in tools the process can get more detailed and say a car instead of saying mode of transport. Saying a car would restrict this process to only those journeys taken by a car. When one is unsure what the process should be the bare minimum of the process should be defined and once the process is used it would evolve into finer details.
  4. In cases as defined above like mode of transport where there is a generalization made with intent a guideline document for the process can explain in detail about the various modes of transport and which can be used where which if put in the procedure would have meant a separate process for every mode of transport taken.
  5. Certain quality definitions may choose to have a separate process for every mode of transport and this choice is entirely unto the author of the process. One yardstick that can help to decide whether to go for separate processes or one process as was detailed above in mode of transport is that if the process varies drastically from using one mode of transport to another then there should be separate processes but if the processes of using one mode of transport to another are fairly the same then it is advisable to have one single process and the details of choosing and using the modes of transport can be detailed in the guidelines document.
  6. The more detailed the process, the more difficult it becomes to have generalities in it and this will require more processes. The more general the process the more difficult it becomes to implement by the practitioners. Hence a balance needs to be struck on the detail that a process should have. If this balance is not easy to identify it is better to err on the side of detail.

Friday, August 11, 2006

Management Style

I was reading an interesting set of articles posted by Joel on management methods in which he talks about three different management methods namely The Command and Control Method, The Econ 101 Method and The Identity Method. He then goes on to advocate that the Identity Method is the most suited method for the software industry. I totally agree with him now having had the experience of running a software development firm for the last year and a half.

I would like to add some of my thoughts as to why I think this is the best approach in this blog article. If you apply Maslov's Hierarchy of Needs to the professionals working in the software industry they have all their basic needs met with the comforts and the security that a software job provides. What they look for are needs of Status and Self-actualization which basically translates into being recognized, appreciated and feel like they are learning each day and becoming better. This is what identity management method is as per my understanding – it is the ability to provide professionals that work for you these set of needs.

Its all very nice to talk about theory but how do you accomplish this - I have some simple ideas and methods.

Ensure that the associate understands the importance of what he/she is doing - this is very important - you have to make the associate aware of the larger goals of the organization and give them direction to meet these goals. Make them feel a part of this goal. Make them feel that they have contributed towards this goal. For this to happen, the most important thing is to make sure that the management themselves are clear what is this goal - believe in it - and live it every day of their lives. If this is not present then there is no way that they can instill a sense of importance and excitement in the work done by the associate.

Management has to put on the shoes of the associate once in a while – What I mean is do some of the things that the associates do once in a while to understand the complexity and the effort that goes into doing some of the things. The professionals that work in the software industry are educated and smart and if they ever feel that they are being made to do slave labor that would be the last day anything you said would have even registered. It is important to become one with them – understand their issues – come down to their level.

Respect their opinions – Respect the opinions of the associates working for you. Help them make decisions but do not make decisions for them. Provide them with all the information they need to make the decision and provided they are aware of the larger goals of the project you can be assured that they will make the right decision. There may be times you will have to step in and take a decision but when doing so have a basis for doing so. The software industry rapidly changes and it is impossible for management to have all the knowledge to make decisions. So let the ones on the shop floor help you make the decisions.

Make sure they enjoy what they are doing - It is important to make sure that the associates are enjoying what they are doing. Even if the work is boring (every job has its own share of work that is not very palatable), management acknowledging that it is not the greatest work to do and ensuring that there are steps in place to mitigate this will go a long way in empathizing with the associate doing the work. One may ask how to mitigate this – there are a lot of ways one can do this – usually boring jobs are boring because they are repetitive – the management should look at ways and means to automate it or remove the repetitiveness of it. This is where management has to get innovative and be different to be able to motivate. I agree with Joel cash incentives never work.

How does one find out if associates are happy? First give yourself this questionnaire to answer and then you can give this questionnaire to every associate and if there is even one no then you are not enjoying your work place.

Do I enjoy coming to work each and every day?
Do I feel enthused to work more and more without feeling tired and drained out?
Do I feel excited by what I do?
Do I feel I am contributing to the growth of the organization?
Do I know the role I am playing in the growth of the organization?
Do I feel proud of the things that I do?
Do I feel my opinions are respected?
Do I feel I am learning and growing as an individual?
Do I feel challenged?

Remember management starts by managing yourself. So unless you answer yes to all these questions you will never be able to as a manager get your associates to answer yes to all these questions since their goals percolate down from your goals.

Saturday, August 05, 2006

To my new website

Due to the blocking of the website http://sudeepivan.blogspot.com I have been forced to move to a new location http://www.ourspace.in/sudeepblog. Moving there was pretty straight forward - I already had the website http://www.ourspace.in which is a baby clothes shopping site being developed by my wife hosted at http://www.domaing8.com. All I had to do is create a subdomain there for sudeepblog and then come to http://www.blogger.com and change the publishing information to publish into the subdomain.

The only part where some thought had to be put into was that once you create the subdomain - domaing8 does not create the subfolder automatically you have to do it yourself.

One issue that I am facing is that I am not able to view some of the images from my new website. I am not sure what the problem is - so if anyone out there reads this post and knows why I can't see some of my messages do let me know.

Wednesday, August 02, 2006

Blogspot blocked in India

I have been able to post articles in Blogspot by going to http://www.blogger.com but then I can't view any of my articles at http://sudeepivan.blogspot.com. I have tried this on two service providers Tata Indicom and Airtel and both give me absolutely the same behaviour.

The ISPs have blocked access to blogspot (all the blogs on it) where users cannot view any blogs due to anti national elements posting articles as blogs (just a few blogs - 13 of them is what i understand) but then it has not stopped them from posting on the blogs by allowing access to http://www.blogger.com so that the rest of the world can read the articles.

All I think this is doing is showing how technically inefficient we are when we are trying to show the world that we can develop and manage their software systems however complex they are. Its time we pull up those responsible for this chirade and sort out all of this before we become the laughing stock of the world.

Sunday, July 30, 2006

How much money does an auto driver make ?

A couple of days ago as it was raining I was not very enthusiastic to drive to work so I decided to go in an auto. The driver of my auto was a pretty chatty kind of a person and I engaged him in a conversation that I was wanting to have with one of them for a long time - how much money does an auto driver make in a day?

Apparently an auto driver makes about Rs. 150 a day and if it is a good day he will make Rs. 200 and this is after paying off the rent and the petrol for the auto. So I asked him what is the rent - it is Rs. 120 for a petrol auto and Rs. 200 for an LPG auto. How much does it cost to buy a new auto - About Rs. 150,000 and if it has to be converted to LPG an extra Rs. 20,000.

Contrary to popular belief this driver said that the police never bother him as long as he does not break a traffic rule. So it looks like the auto drivers complaining about police being highhanded as one of the reasons for them striking is to just make sure that they can break any rule and the police should not do anything to them - something the city bus drivers enjoy just now.

Monday, April 03, 2006

Software Training Institutes

Having lamented about the quality of software training institutes in the city in an earlier article, I had the opportunity to experience the kind of education being dished out by these institutions.

We needed to fill some positions very quickly a few days ago and not having much luck with walk-ins and other forms of recruitment we decided to go to some of the institutes and see if they had anything to offer. We contacted a few of them and they were more than willing to accommodate us to come to their institute and conduct interviews to recruit. So we decided to hold a test which consisted of a couple of simple school assignment kind software programs and an essay of 100 words. We administered the test for a 100 people and we short listed just 6 out of the 100 only to realize that the 6 that we short listed were unfit too. It was an absolute waste of time and effort.

What was wrong with them? To put it in a nutshell - 90 % of them could not even write 10 lines of code. The ones that could write the 10 lines of code could not write 10 lines of decent English. So what are these institutes teaching these so called students? If you ask me from my experience I would say NOTHING!!!

I know this is a very drastic answer to give but I strongly believe that they are teaching them NOTHING and this is why I say that - none of them knew the basics of computers - we were recruiting for C# and we asked them to write a program to sort 'n' numbers and they could not write that program. If there was 1 or 2 that could not write it after attending a training program of 3 months I will believe the course thought something but when you have 90 % of those that took the test have no idea where to start writing the program then I have every right to say that the course taught NOTHING !!!

These institutes are in my opinion creating hope in students when there is none. They spend thousands of rupees getting trained on everything under the sun without knowing the basics or having the inclination to code. I had the opportunity to look at one course being offered and out of 10 modules being taught 7 of them are mostly add-ons or advanced topics that are rarely used in projects. These students are spending 70 % of their time doing stuff they will never use. Secondly when the student does not understand the basics which are 30 % of the course there is no use teaching the remaining 70 % which depends on the 30 %. Hence the whole course is a waste!!!

There are a few that do get out of these institutes and do get good jobs - these are the ones that had the aptitude and inclination to write code and only needed the knowledge. I would call this the gifted lot and I will not put this as being more than 5 % of those being trained.

What is this doing to the industry? In my opinion - its doing immeasurable harm to the industry. The reasons being
  • There is a whole segment of so called trained work force being created that is useless to the industry and the industry wastes hours and hours sifting through this lot.
  • A whole lot of so called trained work force is getting disillusioned by the lack of jobs available to them. This in turn creates a bad reputation for the industry that it is picky.
  • There is a shortfall of good resources in the industry because this so called trained work force has not been trained right.

What is the solution? First of all the institutes need to align their courses to what the industry needs. The industry should create a legitimate grass root training programs by tying up with educational institutions. Let the education that these students get in school and college train them to be fit to code the day they join. If we do this I am sure we will go a long way in making off shoring a dream that will never end and effectively remove all competition from other countries.

Sorry for the long silence

Sorry about not putting up anything for so long but there was and is a lot happening in my life that has prevented me from putting up anything meaningful.

For those of you that do read my blog I will be back soon with some new articles of some of my good and not so good experiences of late so stay tuned in.

You do what you are

In the 2001 movie Along came a spider, there is an interesting quote by Morgan Freeman where he says "You do what you are" and the...