Tuesday 7 June 2011

Software Quality – Differencing you from the rest of the world

Nowadays, the world becomes flat and people have so many options for their expected products and services. How can you make your products becomes the first choice of consumers? how can your products and services compete the others’? and most importantly, how can you create the new world for your products and services?
Not covering all kinds of products and services, I do believe in creating differences in the world of software development. It’s “Quality”.

1. Introduction

Software quality is the level of satisfaction which client has from their needs. There’re three factors forming up the quality: people, process and tool.
• People: who directly or indirectly create or provide the software products.
• Process: steps required to produce the software products.
• Tool: including software, templates, guidelines etc. to increase the team’s productivity.

Let’s talk a look in details on these factors. For me, if you really put the quality on top of your mind, you’ve already had a good start to succeed.

2. Achieving software quality

Firstly, you need to understand sufficiently client’s need. Sun Tzu said “if you know your enemies and know yourself, you can win a hundred battles without a single loss”. The need must be written down, not putting in one’s mind, “no document no work”.
The way you write the need effectively is “Tool”. Is there any pre-defined template? “who invents the wheel”. Which template is the most suitable? If you find nothing suitable, start developing a template. By the time, templates need to be kept improving.

Is it right for delivering only the installation package or the source code? The answer is obviously “No”. There are many other artifacts need to be considered such as Software Requirement Document (SRS), Software Architecture Document (SAD), Test Cases (TCs) and so on. All of deliverables need to be discussed and agreed clearly with client at the beginning phase of the project. This often takes you at least 20% effort and you need to plan clearly for this, “fail to plan means plan to fail”.

The next step is to analyze to find out the solution. You need to explore all possible options before making decision. Using historical database is one of the very best practices. One another best practice could be “asking the expert” to find out the best option/solution.

Once you have the solution, don’t start coding immediately. There must be at least some design work before coding. “First coding and last questioning” is the common reason of many failed projects. It is for the product to be used in the present, not in the future. Lacking of analyzing and designing will produce the product which doesn’t meet client’s expectation. You need to rework to satisfy client or they’ll not pay for the product. If the product is not paid, you will not be paid.

The next step is testing, what need to be tested and who perform the test. We need to understand two important roles of who involve in testing/checking. Firstly, Quality Assurant (QA) needs to involve from the beginning to ensure the project team is following the right steps. Following the right steps/process reduces the risk of low quality. Quality Control (QC) performs the test on the product before it is shipped. The focus of testing is to make sure the product has high quality before shipping, not to find bugs.

So who is responsible for the software product quality? The answer is all project team members. The project manager needs to control and set this right expectation to the team. Moreover, work performed by the team needs to be monitored for quality frequently. I like the Germany saying “Trust but verify”

3. Conclusion

The software product quality is a series of relative steps and each step needs the cooperation of people, process and tool to define and satisfy unified request of customer which make the important part in creating compete factor in “Quality”.

4. About the Author

Vo Thi Ly – Project Manager/Quality Assurance Manager.

3 comments:

  1. Just had a talk with some colleagues about "Quality" and for me I think "People" is the most important factor among the three. Good people can deliver good quality even though they don't have process in place and strong tools.

    ReplyDelete
  2. Security is a top concern when you take your business to the cloud. Your company's dataroom software could be compromised if the service you use lacks the right features.

    ReplyDelete
  3. Virtual data rooms is no longer just a buzz word inside the corporate Information Technologies department. In fact, virtual data rooms potential has captured the attention of business leaders across all types of idustries, looking to make better their speed, scale, control and economics.
    virtual data room business

    ReplyDelete