Tuesday, August 29, 2006

Quality Assurance Vs Quality Control

There is always a lot of confusion over these two terms and in this article I will try to simplify what they are.

What is Quality Assurance (QA) ?
Quality Assurance are all the activities that go in to defining and managing a process that will assure a certain degree of quality based on the maturity of the process and the applicability of the process. There are two terms here that are important here - one is 'maturity' and the other is 'applicability' and it is important to understand both of them in terms of QA.

Maturity of the process is the degree to which the process is defined. Processes can be vague - eg. Do XYZ activity. Or processes can be well defined - eg. Do XYZ activity using procedure P1 and fill up template T1 and verify it with a checklist C1 by an independent person. Maturity is also dependent on how much the process has been used and fine tuned based on the feedback from using the process. The more it is used and the more feedback incorporated into it the more mature it is. For example the assembly line in a manufacturing plant has a process that is very matured and hence the quality that is assured out of the products that come out of the assembly line is very high. Hence the more a process is used and feedback incorporated to improve it the more mature it becomes.

Applicability of the process to what it is being applied to is also important. Just because the process gave good results in one does not mean it will work everywhere.

What are the activities in quality assurance? This is not a complete list but a representative list of the activities that constitute Quality Assurance.
  • Identifying the goals of the process.
  • Defining the process
  • Applying the process to the various tasks being performed
  • Measuring and analyzing if the process is meeting the goals defined for the process
  • Improving the process by understanding the feedback

What is Quality Control?
Quality Control is one of the elements of the process which attempts to remove the defects in the product during or after it is developed. Quality Control is hence an activity that is performed during or after the product is developed with the only intention of removing the defects that might have got introduced while developing the product. Hence Quality Control is not a process but an activity or set of activities that are done during the process with the aim of removing the defects that got introduced in the process.

The activities that constitute Quality Control are

  • Reviews
  • Testing

As you can see Quality Control is only one of the elements of the process that is defined by Quality Assurance. Quality Assurance takes a holistic view of what is being done. Quality Control is only an activity within the process that attempts to weed out the defects in the product that was produced.

Both Quality Assurance and Quality Control are important. Without a process - developing any product will be futile and no process guarantees a defect free product and hence every product has to be verified and validated by Quality Control.

Saturday, August 26, 2006

150 Years of Telecommunications

Today I received my copy of the proof coin set consisting of a 100 rupees and a two rupees coins. This is a scanned copy of the documentation and the coins. Click on the coins to see a bigger picture of the documentation and the coin.

Sunday, August 20, 2006

Pictures from Nagarjunasagar and Ethipothala Falls

Nagarjunasagar is about 150 kms from Hyderabad and is the site of the largest earth fill dam in the world. It is a truly spectacular sight and when the gates of the dam are opening on a flooded Krishna river it is a sight that is not to be missed.

More information about the dam and how to get there can be got from the AP Tourism site. 8 kms from Nagarjunasagar is Ethipothala Falls which is also quite lovely.

On a recent trip to Nagarjunasagar by some of the associates from work they took the pictures attached below. The credit for these lovely pictures goes to Ravi Varma and Jitendra.



























Wednesday, August 16, 2006

Loan Amortization Schedule - Monthly Rests

This excel sheet will help anyone taking a loan on the monthly rests basis to keep track of the amount of interest and principal being paid out and to do calculations on how the loan will change on change of interest rate and doing pre payments.

This sheet has the ability to calculate the EMI based on the interest rate and the tenure of the loan. It will also dynamically calculate the affect on the loan on changes of interest rate and part payments that are done.

To use this sheet effectively it is important to keep it updated with the interest rate changes and part payments that have been made. It can also be used to calculate what the effects are on any one of these values changing.

This excel sheets assumes there is no change in EMI. In case there is a change in EMI it is advised to start a new sheet with the new EMI and the new terms and conditions. Read this document carefully before using the sheet.

Hyderabad Musical Fountain and Laser Show - Part 3

In this three part series I captured the Musical fountain and laser show in the amphitheater at the Lumbini Gardens in Hyderabad, India. This is Part 3.

Hyderabad Musical Fountain and Laser Show - Part 2

In this three part series I captured the Musical fountain and laser show in the amphitheater at the Lumbini Gardens in Hyderabad, India. This is part 2.

Hyderabad Musical Fountain and Laser Show - Part 1

In this three part series I captured the Musical fountain and laser show in the amphitheater at the Lumbini Gardens in Hyderabad, India. Take a look at Part 1.

Monday, August 14, 2006

Importance of having someone local run things

Setting up a off-shore development center seems to be the latest buzz word for a lot of companies around the world. The reasons they do it for is varied and many. The cost factor is not the only reason. Some reasons why one might choose to set up an off-shore development center are
  • To tap into the local talent pool that may not be present in the on-site location.
  • To make use of the time difference between the time of the on-site and the off-site locations.
  • To spread the risk of having a single development center.
  • To be able to scale with quality man power.
What ever the reasons might be the most important thing to do once the decision is made to start a off-shore development center is to identify the person that would be able to run operations.

This person should ideally be from the location where the center is being set up. Why do I think it should be this way? Well, I hope to illustrate in the rest of this article as to why I think it should be this way.

A person who is local would be able to understand the dynamics of the location where the center is being set up. For example it is very important for the person to understand the profile of the other organizations in the city and the talent pool that is available from which he/she would be able to draw the initial set of people to start off with. This initial set of people is very crucial for the success of the center. This bunch of people have nothing to believe in other than a dream and its important that this bunch of people to believe in each other and the dream that they are building. When the person who is setting up operations is local to the city in which the operations are being set up he can draw on people that he has worked with and can trust and then they in turn can draw on people that they have worked with and trust and that way a core team of very good people will be formed.

Setting up operations is all about location. You dont want to set up in the most expensive part of town that the real estate agent sold to you. You can be killed by the cost. You dont want to be setting up in the cheapest and shadiest part of town you will not be able to hire anyone. Now you need to set up in a place that is not too expensive and yet does not have a reputation

Type of Documents in a Process

The Quality Management System consists of the following types of artifacts

  1. Process Document
  2. Forms and Templates
  3. Guidelines
  4. Databases
  5. Checklists

In a sentence the interaction between the documents is as follows "The affected individuals implement the Process Document, refer to the Guidelines and Databases, complete the forms and templates and verify the process compliance with the checklists to accomplish the process."

Process Document

The process document is the main overriding document that contains the roles and responsibilities of the affected parties, the tools needed to inplement the process, the procedure in which the process has to be performed the inputs and outputs. This document is the driving document that details the interaction between the various stake holders to convert the inputs into the outputs in an optimal maner. The process document should be in the form of a set of steps which when followed will accomplish the goals of the process.

Forms and Templates

These are documents that need to be completed in accordance with the process. These documents are used to standardise the format in which information is gathered from the process. This standardization is necessary to help analyse the data and for the data to be consistently understood and resued across projects.

Guidelines

The guidelines document explains how a process has to be implemented. This document gives examples, sample text and alternative solutions that can be used to implement the process. The implementation of the content of the guidelines document is optional where as the implementation of the process document is mandatory. The guidelines document provides explanations to the process defined in the process document. It is not necessary to have a guidelines document for every process document. This document is only needed if it is felt that there is additional information that is needed to implement the process in an affective manner without making the process document too specific.

Databases

Databases are repositories of information as to how the process has been implemented by past and current projects in the organization. These databases contain completed forms and templates, best practices used, lessons learnt, trends and predictions and all data that is collected from the project. This information is used as reference to find the most effective solution to implement the process. What one needs to understand is that the process only tells you "what" needs to be done but does not tell you "how" it is to be done. The how needs to be worked out by the affected individuals that are implementing the process and the Databases and Guidelines help the affected individuals to choose the most affective "how" by using some of the experiences from other projects which is contained in the databses.

Checklists

Checklists are used to ensure that the process is being implemented in the manner in which it is supposed to be implemented. Checklists can be used by members within the affected individuals to ensure that they are not missing any of the process steps and can also be used by individuals outside the project to verify that the process has been adhered to.

Example

Let us take an example process and see what are the documents that would be needed. Let us say that we want a process for Risk Management. The documents in the QMS that would be needed are

Process Document : Risk Management Process
Forms and Templates : Risk Log
Guidelines : Risk Identification Guidelines
Databases : Risk Database
Checklists : Risk Management Checklist

Notes

  1. None of these documents are mandatory. One can have just one process document containing all of the information or one can have a 100 documents detailing every single aspect of the process. Choosing the number of documents to have is a personal choice. What one needs to ensure is that the process is adequately explained so that it can be affectively implemented.
  2. Forms and Templates ease a lot of the work to be done as it removes the question "What do I write for this ?" or "Do i have to collect this ?" and so on so try and templatise most of the information that needs to be collected.

The art of being an SQA Representative

According to the CMMI Key Practice "Process and Product Quality Assurance" the SQA Representative is a "objective" and "is the eyes and ears of senior management". This document tries to explain how these two goals of being an SQA Representative can be achieved

Get the buy-in of the team

The first thing that the SQA Rep needs to do is to get the buy-in of the team that he is not there to create trouble. This is a total people management problem and I know this is easier said than done. A few things that have helped me are
  • Don't go in acting like the teacher who has come to punish the misbehaving pupils. Try and act like the understanding father who is there to solve his child's problems..
  • Take time to understand the teams process - read their process documents, encourage them to talk about their process
  • If they are non compliant try and understand why they are non compliant - talk to them about the issues they face and get into a discussion as to how it can be made a compliance and talk about timelines.
  • Appreciate them for any process that you find good and not seen before
  • Give them suggestions of how things can be implemented
  • Always be sympathetic to their cause - they have their own pressures and deadlines
  • Explain to them the importance of having a process - give them examples of what would happen if the process is not there
  • Be patient with process non-believers - you cannot make them believers over night - work with them process by process and they will become believers - it takes a lot of time and patience and believe me it is possible.
  • Sometimes be liberal but make notes of minor non compliance - For example let us say that an SCM audit was done a long time ago - I will not give a non-compliance the first time I audited the project. I would give a yes for it and make a note that if there is no audit done before the next audit then I would give a non-compliance that way you are giving them time to do it. If there is something that can be immediately implemented ask them to implement it in sometime and tell them that you would check back in a couple of days.

Should have a sound understanding of the organizational process

First and foremost the SQA Representative should have a very good understanding and knowledge of the Quality Management System. The SQA Representative through the audits is required to give an insight into the process being followed by the project. For this reason the SQA Rep needs to understand the process that has been defined.

You need to believe in processes

It is very important for the SQA Rep to believe that process is important and that it is good. It is often said that a sceptic is a bad preacher - hence if the Rep does not himself believe in the process then he can never preach the virtues of having the process. If the SQA Rep is a sceptic then the objectivity of the entire exercise is also lost.

Be Responsible and truthful

The project team that is being audited needs to have a belief that the SQA Rep is responsible, truthful and knows what he is talking about. It is essential for the project team to believe that you have not come to cause trouble. Report things as you see it - write notes in the remarks section clarifying your stand. As an SQA Representative you have a very powerful tool in your hands in the form of the audit and you should use this with caution and responsibility. The SQA Representative is a person trusted by the senior management to report things as they are.

Be Objective

The SQA Representative has to be objective. He needs to report what he has observed. If there is any decision made on things that are not black and white then the SQA Rep needs to explain the rationale of his decision in the remarks column. The Rep should never go with pre conceived notions of how things are. He should take his time in understanding the process, the stage at which the project is and report the process compliance as is.

Open minded

Be open minded. It helps a lot to put yourself in the shoes of the project that is being audited before passing judgement. Try and understand the issues the project is facing and be sympathetic but yet be firm in your observations. Be open to discussions and new ideas. Do not be forceful in your thoughts. Try and understand if the suggestions you are making are applicable to the project. Do not go with any pre conceived notions of the state of things in the project.

Report what you observe

Report only what you observe. If you are unsure of something or need more information to substantiate your views then ask for it. Do not make inferences on information that does not substantiate your judgement. You should be careful not to let the project feel that they can get away with anything they show you. You should be sharp to observe things like the date the file was created, by cross examining team members about stuff, by asking team members questions about content of the reports they have prepared and so on.

Question the process not the people

The SQA Rep is auditing the process and not the people in the project. Leave the "You" out of the audit questions. If there is a non compliance do not get personal about it. Try and understand why the non compliance occurred and fix the process.

Help the project address non compliance issues

When a non-compliance is identified in the project help the project understand what the non-compliance is and also if you know how the non-compliance can be fixed. When the non-compliance is identified it is necessary to come up with the action plan to fix the non-compliance and to also come up with the date by which the non-compliance can be fixed. Do not try and force your ideas on the project to fix the non-compliance. What ever you give to the project is only suggestions and it is ultimately for the project to decide if it wants to implement the suggestions given by you or to go with their own ideas.

Ask open-ended questions

I find it very helpful to start off my audit with open ended questions like "Tell me about your process from the time you get the requirements to the time you deliver." or "Tell me how you plan for the project" or "How do you ensure all your requirements are designed, coded and tested ?" and so on. Each of these questions in one go answers a lot of questions in your checklist. For clarification you can always ask close ended follow up questions. This way the checklist does not seem as long and the participants of the audit do not feel they are attending an exam. It feels as if someone is curious about their process. Do not go about the questionnaire question after question you will get bored and the members of the team attending the audit will get bored by the time you get to the 25th question of the questionnaire if not earlier.

Bring variety into your audits

Make changes to your style of auditing. Some of the innovations that I try out are

  • Question different members of the project team at different audits at the end of the day the entire team has to know the process
  • Take a requirement and follow it through from requirements to release and see the process that was followed
  • If some one say that he has done an SCM Audit or some Plan then ask him to tell you the contents of the document so that you would know if he really did the document.
  • If the process is already there then try and investigate the documents further to get a better understanding of the projects and also the process that they follow.

Do not argue

If there is a difference of opinion leave the issue as it is and get it clarified by a higher authority. Do not pursue any arguments its just not worth it !!!

Phases of a Quality Improvement Program

Introduction

A quality improvement program is a program that causes a change in the mindset. This is not an easy process and there are four clear phases in the implementation of any quality improvement program and these phases are

  • Formulation
  • Awareness
  • Implementation
  • Institutionalization

Formulation

The formulation phase is the phase where the goals for the quality improvement program are identified and the consists of the following activities

Formation of the Quality Improvement Team

It is very important to form a team that would be responsible for carrying forward the quality improvement program. It is not necessary that the team be a dedicated team. It can consist of members that are dedicated and members that are only part time and are used to carry out various activities of the quality improvement program. This team should have a clear charter and should have experience in the practices of the organization and also knowledge in the various quality models. It is important for this team to realize that implementing a quality improvement program is not easy and that it is necessary that there have the drive, dedication, authority and most importantly the time to carry out the quality improvement program.

Identification of the goals of the quality improvement program

In this activity it is very important to identify what exactly is the quality improvement program that the organization wants to implement. This step is the determining factor for the rest of the steps in this process. The goals that need to be identified should be in the form of improved productivity, reduced costs, reduced defects and so on. Now the QIT has to choose the quality model that would help them achieve these goals. These are called the primary goals of the quality improvement program.

But it is always helpful to have certain milestones to achieve. These milestones come in two flavours and they are in terms of improved productivity in numerical terms that is something like a 10 % improvement in productivity and so on. But if an organization has no orientation to quality and does not have any historical data then it would be very difficult for that organization to set itself a goal as above. In these cases it is necessary for the organization to choose a quality model that it would like to adopt and the parts of the quality model that it would like to implement. For example its goal can be to be CMMI Level 3 compliant. That is the organization has chosen a quality model which is SEI's CMMI and it plans to implement all the processes up to Level 3 of a total of 5 levels.

Some important things to keep in mind while choosing a goal is to choose realistic and achievable goals in medium term time duration (six months to a year). If the goals that are being chosen is of the nature of improved productivity then it is important that these goals be measurable. That is the organization has existing data and a mechanism to collect new data to compare to the existing data. If either of these does not exist it is better to make your goals

Identifications of the Gaps in the existing process

Once the goal has been set the quality improvement team the team needs to study the model and understand it. This can be facilitated by organizing for a formal training session in the quality model. Once the team understands the quality model it needs to identify all the processes that are missing in the current organizational process with respect to the chosen quality model and fill in these gaps. This process is known as gap analysis.

Plan for the Quality Improvement Program

Now that the gaps have been identified the QIT needs to come up with a comprehensive plan for the quality improvement program. This is where the experience of the members who have implemented other quality improvement programs would be very helpful. It is very important at this stage that there is a clear plan on what are the major milestones of implementation and the target dates for those milestones. When making these plans the team should also take into account the size of the organization and the availability of the part time members in the QIT.

Closure of the gaps identified in the current process

The team has to then close all the gaps that have been identified in the process so that the process becomes capable of achieving the quality improvement goals that have been set for by the QIT. This is where the experience of the members of the team who have experience in the various processes in the organization and a lot of software engineering experience behind them is most useful. It is always important to remember that the process that is closest to the existing processes in the organization eases the implementation of the process in the organization.

Awareness

Once the Quality Processes in the organization have been upgraded to achieve the goals laid down for the Quality Improvement Program the QIT needs to make all the associates in the organization aware of the process so that they can implement it in their software engineering activities. The activities that take place in this phase of the QIP are

Roll out of the Quality Management System

The new Quality Management System (QMS) needs to be rolled out in the organization in the form of an online quality manual or a web based system. An associate should be capable of reading the QMS and identifying the processes that need to be implemented in the activities that the associate is performing.

Formation of any associated teams needed for the implementation of the QMS

It is necessary that all the teams that are needed to facilitate the implementation of the QMS be formed at this stage. Some of the teams that need to be formed are the Process and Product Quality Assurance Team (For checking Process and Product compliance), Training Team (for conducting the various training required), Product and Process Innovation Team (for investigating improvement in processes and products), Metrics Team (for calculation the organization performance baselines, estimation models and so on) and many other such teams. Depending on the size of the organization and the way in which the organization has formulated the quality process for the organization there may be several teams that have independent responsibility for each of these activities or there may be only one team that does all these activities. But it is very important that the team be identified all such activities at this stage.

Training

All the associates in the organization need to be trained about the new QMS. The training can be customized for various segments of the organization such as for Team Leads and Project Managers there can be a greater emphasis on the Project Management and Tracking portions of the QMS and for the developers there can be a greater emphasis on the Software Engineering activities of the QMS. The training can also be split up according to the types of projects. That is support projects can be taught how the QMS can be implemented and Development projects can be taught how it can be implemented that is if there is a contras tingly different implementation for each type of project.

Training has to also be done in all the processes that are new to the organization or the processes that the organization is perceived to be weak in. Some of the important processes are Software Quality Assurance, Software Configuration Management, Project Management and Tracking, Peer Reviews and Testing.

Implementation

Now that the associates of the organization are made aware of the processes and the new QMS they have to go back and implement the QMS in their projects and this is called the implementation phase. This is the toughest and the most crucial of all the phases. This phase involves the co-ordination of all the associates of the organization to implement the defined QMS. The activities that take place in the implementation phase are

Implementation of a Process Request System

It is very important to have a Process Request System in place where the associates who are implementing the QMS in there projects can pose their queries, suggest improvements and notify any gaps that have been identified in the system. This request or bug tracking system can also be used as a mechanism for the projects to get approvals from the QIT for changes to the organizations quality system that is implemented in their projects. It is very important that the items that have been reported to this system are acted on in a very efficient manner. The reason for this is that the associates are very sceptical in anything that changes the way they work and the easiest way to change them is to ease them into the process through a dialogue. So when they have their queries answered promptly, their improvement suggestions implemented, gaps identified by them closed - they would feel a part of the process and would also motivate them to suggest more changes and ensure that they are also engaged in the whole quality improvement initiative.

Audits on Process Compliance

It is very crucial to conduct a planned set of audits on the projects that are implementing the QMS. The team that is conducting the audits needs to publish a minimum 6 month calendar of the dates of the audits and verify the level of compliance of the audits. The reason for doing the audits initially should be to identify areas of the organization process model that the projects are finding difficult to implement and conduct training in these areas and to also identify portions of the quality model that are difficult to do and develop easier and better ways to implement these processes.

Newsletters and Seminars highlighting successful implementations of processes

In order to give the associates that are implementing the processes a better idea as to how things can be done and to also give them motivation that if one can do it then I too can do it the QIT needs to conduct seminars and also publish newsletters on the projects that have successfully implemented a process and have shown measurable improvements in the process. Initially this may not be possible and the newsletters and seminars can concentrate on educating individuals on various quality models and concepts and then once the data starts coming in then the success stories and projects having a good implementations can be highlighted.

Roll out of updated versions of the QMS

Based on the inputs from the process audits and the things that have been reported to the Process Request System the QIT needs to keep changing and updating the QMS and rolling it out in the organization. This is necessary for the associates to get a feeling that things can change and improve for the better and that they have to be the ones that have to change it. They have to be incorporated into the quality process and when they see their suggestions being implemented and their improvements used it would motivate them to work harder at implementing the process. At this point the QIT needs to make sure that it does not change too many things too often. This would de-motivate the associates from implementing anything as they would wait for things to stabilize before they try out anything. The QIT needs to roll out things only when it is confident enough that there would not be too many things that would change.

Institutionalization

Now that all the processes are in place and all the associates are using the processes and are showing measurable improvements in their productivity, quality, performance and so on the phase of institutionalization is said to have begun. During this phase the quality processes become part of the associates normal day to day activities and not something extra that the associate has to perform for the sake of implementing all the processes. In an organization that has chosen a CMMI quality model this phase is said to start when the 2nd baseline of the organization has been published. This is when the data of the first baseline can be compared to the second baseline. In this phase some of the activities that take place in the previous phase such as audits on the process compliance in projects and newsletters and seminars on processes and roll out of updated versions of QMS should continue. Some of the other activities that take place in this phase of the process implementation are

Data Analysis

The data that is collected from the projects needs to be analysed and trends and problem areas need to be identified. Metrics useful to the organization need to be published and analysis to show that the goals that were initially identified have been achieved or are in the process of being achieved need to be demonstrated to the associates of the organization. The reason for this is that quality is treated by most software professionals in an organization that does not have any quality processes or no history of it in a sceptical manner and unless it is proven to them that things can change and improve for the better it is very difficult to motivate them to adopt these processes and reach a point where quality is part of their day to day activity and quality is not something extra that you do which has no benefit.

Improvements to the QMS

Based on the data that is collected and suggestions made by the practitioners the QMS needs to be upgraded so that the goals that have been identified by the QIT in the beginning of the quality process are achieved. What needs to be realized is that improvements come in small steps and by changing and improving the process these improvements are realized.

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.

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...