Let's Get Connected!

Enhancing Software Quality PDF Print E-mail
User Rating: / 3
PoorBest 
Technology
Written by Deepti Sharma   
Tuesday, 21 July 2009 15:05
Article Index
Enhancing Software Quality
Page 2 Enhance Your Software
All Pages


Read on to learn all about what goes into improving the quality of software products.

A customer trusting you with a project, puts a great deal of responsibility on your shoulders. You have to deliver a product that meets high quality standards, and is better than others in the market. But what does it take to deliver a high quality product?


Software quality

In simple terms, your software is said to be high in quality when: It meets customer requirements and satisfaction.

  • It is (close to being) defect-free.
  • It is delivered as per the committed schedule.

Essentials of a high quality product

The following are some of the prime contributors to delivering a high quality product:

1. Planning

It's not the plan that is important, it's the planning.
- Graeme Edwards

The success of a project largely depends on the amount of thoughtful processes applied to plan it. Whatever be the task, big or small, it is important to plan for it. List down the activities involved in the task, and lay down the various milestones to be achieved. Of course, to do that, it is important to understand the customer's requirements clearly. Deliberate on this aspect, get your understanding confirmed by the customer, and then prepare a plan.

Nowadays, the emphasis is on making use of agile methods for planning. The customer requirements may change every now and then; your plan should be able to adapt to those changes quickly and easily.
To prepare a realistic plan, make use of past data (collect metrics for the products developed earlier), and the resources that you have in hand.

PlanningFig1Figure 1: Planning for a project

Using historical data for planning will lead to better estimates. Your aim should be to reduce the gap between the ‘estimated time' and the ‘actual time spent' on an activity.

One can use a Work Breakdown Structure (WBS) to chart out the Project Plan. The entire project is divided into various sets of activities, which are then broken down into various sub-activities.

PlanningFig2Figure 2: Breaking a task into sub-tasks

2.Commitment

In software development, a commitment is an agreement between an organisation and the customer, where the organisation promises to fulfill some or all the requirements of the customer.

Commitment

While making a commitment, it is important that we do not over-commit to the customer. Do not promise more than what you can deliver. Will it not be better to under-promise, and deliver more?

3.Tracking of tasks

Track your tasks on a regular basis. Set specific daily/weekly targets. Tools like a Gantt Chart can be used to monitor the project's progress and keep track of the various milestones achieved or yet to be achieved.

While monitoring the tasks, ask the following questions:

  • "Is my task on schedule?" Check the deadlines.
  • "Is there any delay?" If yes, then why? Were there any unforeseen issues? What could have been done to avoid such a situation in future? [Please note that deliberating on these points would help you in making more accurate estimations in the future]
  • "Do I need to re-evaluate my plan?"

In case the project's progress is not as per schedule, update the plan. Reschedule it using the lessons learnt. Always keep the customer informed of the status.

You should see to it that there is no hurrying up of tasks at the 11th hour. Avoid unnecessary panic. Last minute scribbling may fetch you some marks in the exams, but can prove costly when applied to software development.

4.Being honest

Be honest to yourself and the customers. Never get tempted to please the customer, by providing false information.

Do not try to sweep things under the carpet. Whatever be the status, the customer must be promptly informed. Hiding facts will have disastrous consequences in the long run.

5.Humility and courage

Confidence comes not from always being right but from not fearing to be wrong.
- Peter T. Mcintyre

Humility and courage are vital components for delivering a high quality product. One must be ready to accept ones mistakes, and have the courage to learn and improve upon them.

6.Team work

What is the difference between a community and a team?

A community involves a group of people living in a particular locality. A community may have winners/losers. A team, on the other hand, involves a group of people, striving for a common goal. There are no winners or losers within a team.

Functioning as a team is a skill. Delivering a high quality product is not the responsibility of any one individual. It's the entire team that is responsible for it. If the product fails, each team member is responsible for it.

7.Peer review

Review is an important part of teamwork. Peer review refers to the participation of team members in the development and assessment of tasks/activities performed by an individual.

In the peer review process, a member who wishes to get an item (say ‘X') reviewed will send a mail to the team requesting their opinions.

Now, the team members review the item ‘X' and send their comments about it.


 
+/-
Write comment
Name:
Email:
 
Website:
Title:
UBBCode:
[b] [i] [u] [url] [quote] [code] [img] 
 
 
:angry::0:confused::cheer:B):evil::silly::dry::lol::kiss:
:D:pinch::(:shock::X:side::):P:unsure::woohoo:
:huh::whistle:;):s:!::?::idea::arrow:
 
Please input the anti-spam code that you can read in the image.
+/- Comments
Add New Search RSS

3.25 Copyright (C) 2007 Alain Georgette / Copyright (C) 2006 Frantisek Hliva. All rights reserved."