I was reading this
post by Vijay Ghei which talks about humanizing the IT industry. This post while being thought proving brings me to have the courage to write about my favorite topic on whether it is time to totally revamp our software quality processes . This is controversial and bound to get a few raised eyebrows, but I thought I should go ahead and write it..
Essentially as we know our software processes closely follow the manufacturing industry. We sort of rely on extreme documentation with the idea that when we interact with customers or replace our "resources" our documentation comes handy and acts as the final word.. Which is fine but this goes with the underlying principle that one "resource" is the same as another and is inherently interchangeable.So as per our processes if we have the documentation in place then we can replace one JAVA programmer with another JAVA programmer of same experience and get the same results. In a manufacturing industry this logic is perfect as one machine can be replaced by another.
But we are not cloned machines yet and each of us brings in our individuality to the project. The success or failure of any project completely depends on whether all these individual minds are harnessed productively for the benefit of the project. A successful project naturally has to have a high quality deliverable , because it is not possible for any customer to accept a working software if it has quality issues. If I were a customer I would definitely reject software which does not meet my needs no matter how matured the process used to produce such software
So we have projects which are declared as totally without process but highly successful from the customer perspective and vice versa. We also have members who request to be kept out of quality processes and left to concentrate on development :-) We have a organizations who decide that they have to start following agile processes to reduce turnaround time and so on...
Quality is a way of life and has to be the life's breath of every developer or team member. It has to be ingrained into all daily activities. I am all for making the best quality software possible and having in place whatever environment it takes to ensure that. One thing is sure good software means good quality..
Do these thoughts make me anti process / an agilist or anti establishment ??? Most Probably..
I would like to sign off this post by pointing you all to article titled "Software Engineering : An Idea whose time has come and gone" by Tom Demarco considered the father of software engineering and who is famous for this book "Controlling Software Projects: Management,Measurement, and Estimation"The books opening statement is the famous line: “You can’t control what you can’t measure.”
BTW this is article is not freely available. Hence if you are interested pls write to me and I can send you the pdf. I tried to embed it . I don't know if you will be able to access it..
SW_Engineering