Qui trình phần mềm bao gồm các hoạt động, thủ tục, phương pháp, công cụ, mục đích và nguyên tắc hướng dẫn cho các hành vi, và các quyết định của nhóm. Khi mọi người cùng chia sẻ một mục đích chung và tuân theo qui trình, họ có thể làm gia tăng hiệu quả và cơ hội thành công.
Tất cả các tổ chức thành công đều yêu cầu mọi người làm việc đúng và làm đúng việc. Tôi biết nhiều kĩ sư phần mềm làm “việc” đúng bởi vì họ được huấn luyện tuân theo qui trình đã xác định nhưng làm đúng việc thì đòi hỏi hiểu biết về điều khách hàng mong đợi.
Người quản lí dự án phải làm việc cần mẫn để tăng sự tham gia của khách hàng vào các hoạt động phát triển bởi vì thất bại của hầu hết các dự án phần mềm là chỗ sản phẩm không đáp ứng được trông đợi của khách hàng. Để làm giảm bớt vấn đề này, mọi dự án đều phải trải qua các cuộc họp kiểm điểm yêu cầu chính thức bằng việc chuẩn bị bản kiểm điểm tường minh, nhất quán, nhận diện rõ ràng mọi chức năng phải có trong sản phẩm để đáp ứng mong đợi của khách hàng.
Trong pha kiến trúc, người quản lí dự án phải nhận diện các nhân tố chất lượng riêng như an ninh, tính khả dụng, tính mở rộng được, tính khả chuyển, tính tin cậy, và hiệu năng. Bằng việc nhận diện các nhân tố này người quản lí dự án phải nghĩ trước về chúng thay vì chờ đợi cho tới khi hệ thống được chuyển giao cho khách hàng và làm cho họ thất vọng vì một nhu cầu quan trọng chưa bao giờ được thực hiện.
Tại cuối mọi pha phát triển, người quản lí dự án phải tiến hành giám định bằng một nhóm người lấy từ bộ phận đảm bảo chất lượng và một người bên ngoài, người không tham gia đặc biệt vào dự án. Người ngoài có thể là ai đó từ một nhóm phần mềm khác, có khả năng đánh giá phê phán về hiệu năng của dự án từ cảnh quan không thiên lệch. Lỗi được nhận diện trong các cuộc giám định này được ghi lại để có hành động sửa chữa và người quản lí phải kiểm lại để đảm bảo rằng tất cả đều đã được sửa chữa trước khi tiếp tục sang pha sau.
Trong phần mềm, chất lượng rất quan trọng. Thời gian đầu tư cho việc xây dựng sản phẩm có chất lượng cao tốn nhiều hơn thời gian sửa lỗi và hầu hết các khách hàng sẽ sẵn lòng chờ đợi lâu thêm chút ít để có được sản phẩm tốt hơn, giúp họ làm việc đúng đắn, không phí thời gian qua việc hỏng hóc và sửa lỗi.
Sau khi chuyển giao sản phẩm cho khách hàng, phần lớn các công ti cũng sẽ cung cấp dịch vụ bảo trì. Về căn bản, pha bảo trì có thể được phân loại thành bốn loại: sửa chữa (chữa lỗi), hoàn thiện (nâng cao), thích nghi (sửa đổi đáp ứng theo thay đổi môi trường), và hỗ trợ khách hàng. Với việc có sản phẩm chất lượng, công ti có thể làm giảm thời gian cần cho bảo trì sửa chữa và có nhiều thời gian hơn để hỗ trợ cho khách hàng.
Từng giờ không mất cho chữa lỗi là giờ người ta có thể thực hiện cái gì đó mới để giúp khách hàng. Chúng ta càng hỗ trợ cho khách hàng tốt hơn, họ càng thoả mãn hơn và công việc của công ti cũng tốt hơn cho những người làm việc ở đó.
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.