21 Feb, 2021
PSP/TSP
Nhiều sinh viên đã hỏi tôi về Qui trình phần mềm cá nhân (PSP) và Qui trình phần mềm tổ (TSP). Tôi đã viết nhiều bài báo về chủ đề này. Nhiều bài đã được đăng ở website này. Sau đây là tóm tắt:
Khi phần mềm tiến vào các khu vực mấu chốt như y học, khoa học hạt nhân, hệ thống vũ khí, và tăng trưởng lớn hơn và phức tạp hơn, khó mà quản lí được việc phát triển và đảm bảo chất lượng của sản phẩm phần mềm. Kiểm thử và kiểm điểm không thể đảm bảo vấn đề chất lượng, an toàn, an ninh và độ tin cậy. Nó cần cách khác về phát triển cũng như quản lí phát triển phần mềm.
Viện Kĩ nghệ phần mềm Software Engineering Institute (SEI) tại Đại học Carnegie Mellon đã đi tới một phương pháp mới về phát triển phần mềm, đặc biệt cho những kiểu tập trung cao độ này, có tên là Qui trình phần mềm cá nhân Personal Software Process (PSP). PSP là qui trình phát triển có cấu trúc được thiết kế để giúp các kĩ sư riêng lẻ hiểu và cải tiến hiệu năng riêng của họ, bằng việc tuân theo một “thủ tục có kỉ luật, được dựa theo dữ liệu”. Trong đào tạo tập trung này, kĩ sư phần mềm ước lượng và lập kế hoạch công việc riêng của họ bằng làm tài liệu qui trình riêng của họ, thu thập dữ liệu riêng của họ rồi so sánh điều họ đã lập kế hoạch và điều thực tế xảy ra khi học làm công việc. Bằng việc học từ sai lầm riêng của họ, dùng dữ liệu riêng của mình, họ có thể cải tiến qui trình phát triển cá nhân của họ.
Mục đích của PSP là giúp cho kĩ sư phần mềm tạo ra sản phẩm chất lượng cao, không lỗi theo lịch biểu. Sau khi kĩ sư phần mềm được đào tạo trong phương pháp PSP, họ có thể được đưa vào tổ gồm các kĩ sư phần mềm khác đã được đào tạo về PSP. Trong tổ này họ sẽ tuân theo một phương pháp có tên là Qui trình phần mềm tổ Team Software Process (TSP). TSP là việc thực hiện vận hành, “cách làm” của các nguyên lí này và thực hành kĩ nghệ phần mềm tốt nhất. Nó bao gồm nhiều khái niệm mà đã không được thực hiện trong phương pháp kĩ nghệ khác, bao gồm quản lí tổ tự quản, khuôn khổ đo tích hợp, hệ thống quản lí chất lượng trước kiểm thử, mô hình huấn luyện, chiến lược hội tụ vào tổ cho triển khai nhanh và qui trình vận hành.
Nguyên lí của TSP dựa trên khái niệm là hiệu năng của dự án phần mềm lớn thường tuỳ thuộc vào hiệu năng của tổ hay cá nhân. Nếu họ chuyển giao muộn hay cung cấp bộ phận bị lỗi, nó có thể làm trễ toàn thể dự án và tác động lên chất lượng của hệ thống lớn hơn. Cách tốt nhất để xây dựng phần mềm là hội tụ vào hiệu năng cá nhân và tổ.
Trong thực tế, kĩ năng PSP được dùng trong môi trường tổ TSP. Tổ TSP bao gồm những người phát triển đã được đào tạo về PSP người giả định trách nhiệm dự án nào đó, cho nên dự án được quản lí bởi bản thân tổ (tổ tự quản). Dùng dữ liệu cá nhân được thu thập dùng kĩ năng PSP của họ; tổ làm kế hoạch, ước lượng, và kiểm soát chất lượng sản phẩm dự án.
—-English version—-
PSP/TSP
Several students have asked me about Personal Software Process (PSP) and Team Software Process (TSP). I have written several articles on these topics. Many have been posted on the website. Following is a summary:
As software is advancing in critical areas such as medicine, nuclear science, weapons systems, and growing larger and more complex, it is difficult to manage the development and ensure the quality of the software product. Testing and reviewing cannot ensure quality, safety, security and reliability issues. It needs a different way of developing as well as managing software development.
The software Engineering Institute (SEI) at CarnegieMellonUniversity has come up with a new method of developing software, specifically for these highly intensive types, called Personal Software Process (PSP). PSP is a structured development process designed to help individual engineer to understand and improve their own performance, by following a “disciplined, data-driven procedure”. In this intensive training, software engineer estimates and plans their own work by document their own process, collect their own data than compare what they have planned and what actually happen when they do the work. By learning from their own mistake, using their own data they can improve their personal development process.
The goal of the PSP is to help software engineers produce zero-defect, high quality products on schedule. After software engineer is trained in PSP method, they can be put on a team consists of other PSP trained software engineers. In this team they will follow a method called Team Software Process (TSP). TSP is an operational, “how-to” implementation of the principles and best software engineering practices. It includes many concepts that have not been implemented in other engineering methods, including such as self-directed team management, integrated measurement framework, pre-test quality management system, coaching model, team-focused strategy for rapid deployment and operational process.
The principle of TSP is based on the concept that the performance of large software projects is often depending on the performance of a team or an individual. If they deliver late or provide a defective part, it can delay the entire project and impact the quality of the larger system. The best way to build software is to focus on individual and team performance.
In practice, PSP skills are used in a TSP team environment. TSP teams consist of PSP-trained developers who assume certain project responsibility, so the project is managed by the team itself. (Self-organizing team). Using personal data gathered using their PSP skills; the team makes the plans, the estimates, and controls the quality of software product.