Process and Quality, they come together!

I have listened to presentations of third party vendors trying to get a project that we put out there.  (which i believe is an impossible task, given that part of the project is a legacy system older than me and almost half of the people who knows about the system is gone) . Most of the vendors as part of their presentation talks about their software development process which in general follows best practices in the industry and a keen to the latest trend on how to develop a quality software product. 
Our group needs a little bit of room to grow in terms of formalizing our development process and handling the quality of the software we develop. One of the vendors asked to describe our current process because having compatible processes can largely affect the success of the project. Our group responded that we have a 'hybrid process' . Even though our group prides itself in delivering results trying to re-use and not reinvent wheels all over, a 'hybrid process' is really saying that we are re-inventing the wheel because we don't have a concrete process in place that's why we ignore all best practices out there and try to come out with our own process, which might not be the same for every project. 


As a developer there is just one thing I can control from my point of view the outcome of my work. Don't have any say much about schedules, goals and budgets. I can only affect a project based on the quality of my work, which is greatly improved if i follow a strict process. No guessing, this is how you do your work. 
What is a Process Anyway?
As defined in the PMBOK (Project Management Book of Knowledge) it is a set of inter-related actions and activities performed to achieve a pre-specified product, result or service.The keyword here is 'pre-specified', which means that the product, result or service expected from the outcome of a process is defined in one shape or form so that it can be produced. Processes are an attempt to make our activities more systematic, well-defined, unambiguous, understood.  A process also provides a mechanism so that activities can be repeatable and improvable. There is always a way of doing things better. But you have to define what better means. In our daily lives we have a process for almost everything. In software development there are a lot of processes out there defined by experts in the field for almost any stage of the Software life cycle. Experts already thought about how to do things better and we can just follow and adapt them. But following and adapting a process is greatly dependent in an organization's maturity.


How does a Process relate to Quality ?
It has been said that quality is a process not a product. It is a culture and way of thinking that means a little bit or realignment on how we do things right now. In order to begin evaluating the quality of a product that an organization produces a process should be in place because every next step or sub component of the process can be broken and analyzed to be improved. Improving the process often mean an improvement on it's outcome.


Training for to use a new process is not Cheap!
In a project training staff to use a new process is not that cheap and often trying to improve one's self to desired level or goal might take 2 to 6 years.


But not having a Process and 'Good Enough' Quality is not Cheap Either!
[English 2009]
2004 - Ford Motor Company
    - purchasing system was abandoned after deployment - cost $400 million dollars
2006 - Federal Bureau of Investigation
    - networked system intended to replace paper-based system scrapped one year after delivery - cost $170 million dollars
There are lot more example of poor quality resulting in more serious consequences than mere money
    - medical, judicial , military, educational
Here is one recent news in California freeing violent inmates.


Why is software quality important ?
Due to our ever increasing dependence on software. (There is an app for that) Our lives will ultimately be impacted negatively with poor software whether we like it our not. Like the link above we need to do better in creating systems that will hold the integrity of our society. You will never know how a software project would impact the people around you.



Comments

Popular posts from this blog

OAuth 1.0a Request Signing and Verification - HMAC-SHA1 - HMAC-SHA256

Spark DataFrame - Array[ByteBuffer] - IllegalAurmentException

Gensim Doc2Vec on Spark - a quest to get the right Vector