Quality Management Program of Software organization
Quality service is the most critical for any organization both commercial and non-profit organization. To attain the goals of your organization about the margin also large user community, deliver the quality product and continuous improve your quality service is the most challenge for any organization. Some organizations consider the Quality Management Program is less important than others such as Marketing, Sell plan. In fact, the Quality Management Program aims to the longer goals than Marketing or Selling plan. You can get more clients, increase the margin of organization but the important question is 'How long you can keep the good finacial status'. In fact, the only way to keep the client with you for long time is your quality service. The promise of delivering the quality services to client is the smart way to save cost, expanding the existing businesses and look for new business branch.
There are several models-processes for quality management in software industry such as CMM, CMMI, TQM, ISO. However, software industry is different with manufractoring industry. In manufactoring industry, to measure the quality of service is rather simple: the assessment can be based on the number of products fail compare with its specification. In software industry, the factors to make the product fail is many:
- Number of defects.
- Quality of architecture, component and source code.
- Cost of development
- Effort of external support etc
Because software is delivered to specific group of users, the list of factors to assess the project success are different among projects. To some clients, they only assess the quality of product base on the number of defects. Others can assess the quality of product base on many criteria such as source code quality, effort to support development. The Quality Management Program is the program of one organization and above events do not mean organization will manage the quality services base on the client needs only (what happens when they change their criteria in future). So the organization must has its own criteria to assess the service they deliver.
In fact, the relationship among cost - architecture - productivity in software industry is very closed. If application has a good architecture, it can lead saving effort of development that means the productivity is increased also the quality is better. By having more productivity, that means you will save development cost. The benefit is clear enough, however how to increase the productivity of an organization is a big challenge. My proposals to improve the quality falls in the following categories:
- Recruitment process
- Training plan and execution
- Software Development Process
- Project Management
- Technical and Quality management
- Knowledge management
In fact, identifying the organization's problems is the difficult task but it is harder if you propose solutions that can work. The solution does not come not only from research yourself but the organizational behavior must be included. I have read the suggestion that how the organization can improve on specific problem and it is theoretic. It is not hard to read books and exceprt the others' experience and force others follow that, after that say that we can not apply because I am right and you are wrong or they are done successfully in practice. In order to make the change impacts to organization, the following factors must be considered:
- The executive team must lead Quality Improvement Program.
- The culture of organization.
- As TQM principle, all members must be responsibility of Quality management and continuous quality improvement program.
- The program should be divided into short phases (2-3 months at much) for assessment.
- The goals and achievements must be measurable and practical.
According to Nayantara Padhi (http://software.isixsigma.com/library/content/c021230a.asp), the eight key elements must be considered while implementing the Quality Management Program:
- Ethics
- Integrity
- Trust
- Training
- Teamwork
- Leadership
- Recognition
- Communication.
These key elements are divided into 4 groups:
1. Foundation - It includes: Ethics, Integrity and Trust.
2. Building Bricks - It includes: Training, Teamwork and Leadership.
3. Binding Mortar - It includes: Communication.
4. Roof - It includes: Recognition.
I will keep the post of managing quality of each above functional area in future besides more posts focus on Portal, Spring, Osgi, php and java scripting language that I am focusing recently.