Một sinh viên hỏi: “Kế hoạch chất lượng là gì? Khi nào bạn xây dựng kế hoạch phát triển? Ai nên chịu trách nhiệm cho chất lượng?”

Đáp: Kế hoạch chất lượng mô tả cách việc quản lí chất lượng sẽ được áp dụng cho dự án và xác nhận bất kì chuẩn, thủ tục, kĩ thuật chất lượng nào sẽ được dùng trong dự án. Kế hoạch chất lượng phải được phát triển ngay từ đầu dự án. Nó có thể là một bản kế hoạch tách rời hay là một phần của kế hoạch dự án, tuỳ theo kiểu dự án. Chất lượng phải là một phần của qui trình phát triển phần mềm, không phải là cái gì đó được đo ở cuối. Mọi người trong dự án nên có trách nhiệm về chất lượng, kể cả người quản lí dự án, người phát triển, người kiểm thử, đảm bảo chất lượng v.v.

Chất lượng thường được xác định tuỳ theo miền. Trong hoàn cảnh của phần mềm hay hệ thông tin, chất lượng là chức năng và cấu trúc của sản phẩm phần mềm. Chất lượng chức năng dựa trên việc sản phẩm tuân thủ tốt tới đâu theo thiết kế đã cho, dựa trên các đặc tả yêu cầu phần mềm. Chất lượng cấu trúc dựa trên thuộc tính chất lượng mà thường không được xác định rõ ràng bởi khách hàng nhưng người phát triển phần mềm giỏi phải thêm vào cho sản phẩm như hiệu năng, tính dùng được, tính kiểm thử được, tính bảo trì được v.v. Sản phẩm cuối cùng có thể đáp ứng mọi yêu cầu nhưng nếu nó chạy rất chậm hay khó dùng thì nó vẫn bị coi là sản phẩm có chất lượng không tốt vì nó không đáp ứng cho các yêu cầu chất lượng cấu trúc. Các yêu cầu chức năng có thể được đo qua việc kiểm thử nhưng chất lượng cấu trúc chỉ có thể được đo qua phân tích mã nguồn và kiến trúc và thiết kế của nó.

—-English version—-

Software quality

A student asked: What is a quality plan? When do you develop the quality plan? Who should be responsible for quality?”

Answer: The Quality plan describes how the management of quality will be applied to the project and confirms any quality standards, procedures, techniques that will be used in the project. Quality plan must be develop at the beginning of the project. It can be a separate plan or a part of the project plan, depending on the types of the project. Quality must be part of the software development process, not something to be measured at the end. Everybody on the project should be responsible for the quality, including project manager, developers, testers, quality assurance etc.

Quality is often defined differently depend on the domain. In the context of software or information system, quality is the functionality and the structure of the software product. The functional quality is based on how well the product complies with a given design, based on the software requirements specifications. The structural quality is based on the quality attributes that often is not clearly defined by the customers but a good software developer must add to the product such as performance, usability, testability, maintainability etc. A final product may meet all requirements but if it run very slow or difficult to use then it is still consider not a good quality product because it does not meet the structural quality requirements. Functional requirements can be measured through testing but structural quality can only be measured via the analysis of the source code and its architect and design.