For quite some time a question keeps coming to mind: Does Six Sigma really bring huge benefits to software development projects as many people contend? Are its principles as effective in software development as they are in manufacturing?
In my opinion the answer is a definite no. The amount of savings/benefits that occur in software development due to Six Sigma and other process improvement activities may not be really significant.
Indeed, I am not convinced when I read articles or attend conference sessions that highlight that Six Sigma has reaped rich benefits in terms of cost saving in software development projects. I have also come across lot of interesting figures and metrics to prove that Six Sigma has indeed resulted in cost savings, but I find it difficult to believe them.
One reason is that in some instances, I have seen people intentionally start the project with poor quality assurance processes/activities, then they bring in some improvements in the process during the middle of the project (though they could have done that at the beginning) compare the results with the initial results. They then say they were successful in implementing Six Sigma. That is not really Six Sigma!
It is something like a person intentionally pushing his friend into a pit, then helping him to come out of the pit and screaming that he has been successful in helping his friend come out of the pit.
I do not mean to say that Six Sigma is not applicable for software development projects. What I am trying to emphasize is that by applying Six Sigma, drastic benefits may not be achieved as they occur in a manufacturing industry.
Six Sigma is mainly applicable to an industry where
- Operations/activities are repeated
- Operations/activities are identical
Six Sigma deals with identifying the root cause of the problem through various techniques, finding a solution to the problem and implementing the solution. So, in order for Six Sigma to be very effective, the operations have to be repeatable and identical.
Having worked in both manufacturing/engineering industries, as well as in a software services companies, I strongly feel that Six Sigma can be effectively applied to engineering industries wherein repeated operations take place. However, applying Six Sigma to software development projects may not produce the desired level of benefits.
The way the manufacturing and software industries operate are different.
My main contention is that Six Sigma is applicable for operations (when activities are identical and repeated) and not for projects. By project I mean that it has a start data and end date and it produces unique a product, results or services.
Also when I mention manufacturing industry I am referring to the operation phase, such as where identical products are produced over a period of time. An example could be a factory that manufactures steel washers.
Six Sigma is generally applied during the operations phase of a project and not during the development phase of the product.
Let me dig more into this topic:
The ability to successfully perform quality work in an industry is dependant on mainly the following two attributes:
- The ability of the persons performing the task/activity
- The effectiveness of the processes that are to be followed to perform the task/activity
The contributing factor for each attribute to succeed is different. Please refer to the below table.
|Attribute Description||Contributing Factor for Success in the Manufacturing Industry||Contributing Factor for Success in Software Development|
|Ability of the person||20-30%||70-80%|
|Effectiveness of the process||70-80%||20-30%|
From the above table it is clear that "ability" contributes more to the success than "process" in a software industry and vice-versa in a manufacturing industry.
I would like to discuss this in detail. Pleaser refer to Table B, which compares how manufacturing and a software development project operate.
|Item No.||Manufacturing Industry||Software Development|
|1||Operations are identical||Operations are not identical. Operations may be similar across projects but not identical.|
|2||Same set of processes for each operation||Processes may be different for different projects, though a few processes may be common across projects|
|3||The variation of the abilities of the worker to perform is minimal, i.e. most of them perform at the same level of effectiveness||The variation of the abilities of the developers to perform is wide, i.e. the level of performance is different among the developers|
Let me provide more details on the above comparison for each item.
Item No 1 & 2 of Table-B: (Process factor)
In a software industry the operations across the projects may be similar but not identical. You may have the same set of phases, i.e. requirement analysis, design, coding, testing and implementation, but between projects the details of each one are different.
That means any activities you would have implemented to improve the process or solve a problem in one project may not be valid for other projects and hence not applicable. Also, the level of success might be different even if it is applicable. The consistency of success will be not be maintained across projects.
Now let us turn to the scenario in a manufacturing industry, which is entirely different. During the operations phase a worker performs the same/identical operation again and again, and hence an improvement made in the process is applicable through the operations phase. (I am not mentioning the development phase, as Six Sigma is generally not applied for this phase.)
I had mentioned earlier that projects produce unique products, services or results, whereas operation produces the same product many times. This is one important reason for the effectiveness of the processes to have a greater impact in a manufacturing industry.
If one could refer to the Project Management Body of Knowledge (PMBOK) from the Project Management Institute (PMI), the difference between an Operation and a Project can be well understood.
Hence the contributing factor of the 'process' attribute for the success are different as seen in Table-A
Item No 3: (Ability factor)
Now let's discuss the "ability" factor of the employees in each of these industries.
Software development project: Even though your team consists of members who have the same amount of experience (say all of them have five years' experience, the same skill sets and the same kind of training), still there will be a huge variation in their performance even when they work on similar kind of activities.
Example: Developer X takes one to fix a bug where as Developer Y takes two hours to fix a bug. Developer Z may take more hours to fix the same bug. Though all the three possess the same level of skill, education and training, this kind of variation is bound to happen in a software project. And that is why I say the success depends on the ability of the individuals working in the project. I hope everyone would have observed this phenomenon.
It is very difficult to bring individuals' ability to the same level even if you provide the necessary training. Although the variation can be reduced, some amount of variation will always persist. And this variation will have a great impact on the success of the project.
In a manufacturing scenario, the ability of the workers will not have as much of an impact because their job in the operations phase does not involve that much innovation/mind scratching. (I would like to emphasis that innovation and the creation of the processes in a manufacturing industry are developed and implemented by a different set of people, such as engineers, and do not belong to operations phase.) The workers need to simply follow the processes strictly. With proper training it is possible to bring the ability of the workers' to almost the same level; there will be only a slight variation. Hence, the ability factor of the worker will have a lesser impact on the success of the project in a manufacturing industry, as seen in Table-A
The other important difference one can observe is normally in the operations phase of a manufacturing industry. A lot of operations are performed mainly by various tools and machines monitored by workers. That is not the case in software development projects where a person has to make use of his ability to complete the task.
Only by improving the ability of the persons working on the project will you see significant benefits in a software project. Hence it is important for software makers to help improve the abilities of individuals, as well as invest in process improvements.
To put it in the right perspective:
Software development is person-centric whereas manufacturing is process-centric.
About the author: V. Viswanathan is a quality analyst at a software firm in Chennai, India.