People keep asking me why I emphasize on processes and improvement in processes on software development projects. After all, if a project team has wonderful people working hard and the project manager is equally good then why it is not enough. Wouldn’t they are going to produce a good product?
Well, let me ask you a question? Why you use a cookie cutter to make cookies? Or why you use specialized plumbing tools to repair plumbing problems? You can use common tools or no tools to do these things. Similarly you can repair the plumbing problems yourself instead of calling a plumber to repair your plumbing problem.
If you analyze then you will find that:
- Using a cookie cutter, your cookies will have good shape
- Using plumbing tools you can repair plumbing problems better and faster
- A plumber will do plumbing work better and faster than you
So specialized tools and people with specialized skills help in doing work better and faster. It also means, in most cases, cost will be less. So we get faster, cheaper and better results when we use specialized tools or skills.
Now there is one more aspect about doing any work. For large sized work, we need a team of people to do the work. The whole work may need many specialized skills and tools. So we end up having people with specialized skills and using tools for large sized work which requires a team of people. Since managing a team is another aspect which is coming into picture apart from specialized skills and tools, we need to think about one more dimension here. Team management! So for a software project, we will need a software project manager to look after team management.
Imagine, a software development company which keeps developing software products. Each software development project will have a project manager and a project team. Since each team is separate from each other, they do their work in complete isolation from each other. Due to this reason, each team develops its own way of doing things. Let us call these way of doing thins as processes. So each process running at one team will be different from the one running at another team. If this difference in process will affect quality, time and costs for each project? Off course it will! Some teams will have better quality, while another may complete the project faster and yet another team will do the project work cheaper.
What impacts these differences will have on the software development company bottom lines? A lot! Generally the management as well as customers want a consistency in quality, price and time.
How these goals can be achieved?
Using standard processes! if the company has a standard process which can be applied across all projects then costs, time and product quality will be consistent across all projects. Each project team will work according to this standard process and will achieve the desired results.
this is the importance of sticking to processes. Without standard process you can achieve desired results some times. But not always.
the management and the customer also want to have a clear visibility on the project from the very beginning of the project. they want to know in advance, how much it will cost, how much time it will take and what quality of product can be expected. Without using standard processes, this is impossible.