Software process part 3

The process of a company is the most important success factor in any business but it is critical in software. Software process consists of activities, procedures, methods, tools, goals and principles that guide the behaviors, and decisions of a software group. When people share a common goal and follow the process, they can increase their effectiveness and have better chance for success.

All successful organization requires that people both do the right thing, and do the thing right. I know many software engineers do the “thing” right because they are trained to follow a defined process but doing the right thing requires an understanding of what the customer expects.

Project manager must work hard to increase the involvement of customers in the development activities because the failure of most software projects is that the product does not meet expectations of the customer. To reduce this problem, every project must go through formal requirements reviews by preparing an explicit, consistent, review that clearly identifies all the functions that must be contained in the final product to meet customer’s expectations.

During architecture phase, the project manager must identify specific quality factors such as security, usability, extensibility, portability, reliability, and performance. By identifying these factors the project manager must think about them ahead of time, rather than waiting until the system is delivered to the customer and let them disappointed because an important need was never implemented.

At the end of every development phase, the project manager must conduct inspection by a group of people from quality assurance and one outside person who has no specific involvement in the project. The outsider can be someone from a different software group who can critically evaluate the performance of the project from an unbiased perspective. Defects identified during the inspection are recorded for corrective actions and manager must check to make sure that they all fixed before continue to the next phase.

In software, quality is very important. The time invests to build a quality product is much better than the time to fix defects and most customers are willing to wait a little longer to get a better product that will help them do their work correctly without wasting their time through failures and fixing defects.

After deliver the product to customer, most company will also provide maintenance service. Typically, maintenance phase can be classified into four categories: corrective (fixing defects), perfective (enhancements), adaptive (modifications in response to a changing environment), and customer support. By having a quality product, company can reduce the time that is needed for corrective maintenance and more time to support the customer. Every hour people do not spend fixing defects is an hour they can spend implementing something new to help customers. The better we support the customer, the more satisfaction they are and the better business for the company and for people who work there.


  • Blogs of Prof. John Vu, Carnegie Mellon University