Tổ chức phần mềm chưa trưởng thành và trưởng thành
Việc thiết lập mục tiêu cải tiến quy trình trong tổ chức phần mềm yêu cầu hiểu biết về sự khác biệt giữa tổ chức trưởng thành và chưa trưởng thành Trong tổ chức chưa trưởng thành, quy trình phần mềm thường bị tùy biến và không được thực hiện một cách đồng bộ, dẫn đến việc quản lý chỉ tập trung vào giải quyết các vấn đề ngắn hạn Kế hoạch và ngân sách thường bị vượt quá do thiếu ước lượng chính xác Khi thời hạn gần kề, chức năng và chất lượng sản phẩm thường bị điều chỉnh để đáp ứng yêu cầu kế hoạch.
Trong các tổ chức phần mềm chưa phát triển, việc thiếu mục tiêu rõ ràng cho việc cải thiện chất lượng sản phẩm và giải quyết vấn đề dẫn đến sự khó khăn trong việc đo lường chất lượng Các hoạt động nâng cao chất lượng như xem xét và kiểm thử thường bị xem nhẹ hoặc chỉ được thực hiện khi có áp lực từ dự án.
Một tổ chức phần mềm trưởng thành có khả năng quản lý phát triển và bảo trì quy trình phần mềm hiệu quả Quy trình này được trao đổi thường xuyên giữa nhân viên hiện tại và nhân viên mới, với các hoạt động được thực hiện theo kế hoạch đã định Việc thực hiện quy trình phù hợp với cách làm việc thực tế và được cập nhật khi cần thiết Cải tiến được phát triển thông qua kiểm thử có điều khiển và phân tích lợi ích tài chính Vai trò và trách nhiệm trong quy trình được xác định rõ ràng trong dự án và tổ chức.
Trong một tổ chức trưởng thành, các nhà quản lý giám sát chất lượng sản phẩm và tiến trình sản xuất, với mục tiêu rõ ràng và khả năng điều chỉnh chất lượng Lịch làm việc và ngân sách được xây dựng dựa trên các năng lực thực tế từ quá khứ, giúp đạt được kết quả mong muốn về giá cả, thời gian, chức năng và chất lượng sản phẩm Một quy trình cơ bản được tuân thủ nhất quán nhờ sự hiểu biết chung về giá trị của nó, cùng với một cấu trúc hạ tầng phù hợp hỗ trợ cho các quy trình này.
Các khái niệm cơ bản trên khía cạnh trưởng thành tiến trình
Tiến trình phần mềm là tập hợp các hành động, phương thức và trải nghiệm mà con người áp dụng để phát triển và duy trì phần mềm cùng các sản phẩm liên quan như kế hoạch dự án, tài liệu thiết kế, mã nguồn, ca kiểm thử và hướng dẫn sử dụng Khi tổ chức ngày càng trưởng thành, tiến trình phần mềm sẽ được xác định rõ ràng hơn và thực hiện một cách chính xác, nhất quán trong toàn bộ tổ chức.
Khả năng tiến trình phần mềm phản ánh một loạt kết quả mong muốn đạt được thông qua việc tuân theo quy trình phần mềm Nó cung cấp cho tổ chức một công cụ dự đoán chính xác các công việc cần thực hiện và kết quả dự kiến cho dự án sắp tới.
Hiệu năng tiến trình phần mềm phản ánh kết quả thực tế đạt được từ việc tuân thủ quy trình phần mềm Trong khi đó, khả năng tiến trình phần mềm tập trung vào kết quả mong muốn và kế hoạch dự kiến Do đó, hiệu năng và khả năng tiến trình phần mềm đều có vai trò quan trọng trong việc đánh giá hiệu quả của quy trình phát triển phần mềm.
Sự trưởng thành của tiến trình phần mềm phản ánh khả năng xác định, quản lý và đo lường hiệu quả của các quy trình trong tổ chức Điều này không chỉ thể hiện tiềm năng phát triển về năng lực tổ chức và quản lý, mà còn chỉ ra mức độ hoàn thiện của các tiến trình phần mềm được lập kế hoạch, cũng như sự đồng nhất trong việc áp dụng các quy trình này trong các dự án trên toàn tổ chức.
Khi một tổ chức phần mềm đạt được sự trưởng thành trong tiến trình phần mềm, nó sẽ tích hợp quy trình của mình thông qua các chính sách, chuẩn mực và cấu trúc tổ chức Sự tích hợp này bao gồm việc xây dựng cơ sở hạ tầng và văn hóa doanh nghiệp nhằm hỗ trợ các phương thức, thực hành và thủ tục, đảm bảo rằng chúng tồn tại bền vững ngay cả khi người sáng lập không còn.
Năm mức trưởng thành tiến trình phần mềm
Đặc tính cư xử của các mức trưởng thành
Các mức trưởng thành từ 2 đến 5 được phân biệt qua các hành động cải tiến quy trình phần mềm và thực hiện trong từng dự án Đặc tính cư xử của mỗi mức trưởng thành cung cấp cơ sở để so sánh sự cải tiến quy trình ở các mức độ trưởng thành cao hơn.
Tại giai đoạn khởi đầu, nhiều tổ chức không tạo ra môi trường ổn định cho việc phát triển và bảo trì phần mềm, dẫn đến những khó khăn trong việc đảm bảo nhân viên tuân thủ quy trình kỹ nghệ Kết quả là các dự án thường xuyên rơi vào khủng hoảng, không theo kế hoạch đã định và phải quay lại giai đoạn lập trình và kiểm thử Thành công của dự án phụ thuộc vào sự hiện diện của một người quản lý giỏi và một nhóm phát triển có kinh nghiệm Tuy nhiên, khi người quản lý tài ba rời đi, sự ổn định của dự án cũng theo đó biến mất, cho thấy rằng ngay cả quy trình kỹ nghệ tốt cũng không thể khắc phục được sự thiếu vắng các thực tiễn quản lý hợp lý.
Mặc dù quy trình ở mức 1 khó xác định và có thể lộn xộn, các tổ chức tại mức này vẫn thường phát triển các sản phẩm hoạt động, mặc cho việc vượt ngân sách và thời gian Thành công của các tổ chức ở mức 1 chủ yếu phụ thuộc vào năng lực và yếu tố cá nhân của con người, điều này không thể tái tạo trừ khi có những cá nhân có năng lực tương tự tham gia vào các dự án sau Vì vậy, tại mức 1, năng lực được xem là đặc điểm của cá nhân chứ không phải của tổ chức.
Các chính sách quản lý dự án phần mềm và thủ tục thực hiện chúng được thiết lập ở mức lặp lại được Việc lập kế hoạch và quản lý dự án mới thường dựa vào kinh nghiệm từ các dự án tương tự trước đó Năng lực tiến trình được cải thiện thông qua việc áp dụng các quy tắc quản lý tiến trình cơ bản từ dự án này sang dự án khác Một tiến trình hiệu quả được nhận diện qua việc thực hành, tài liệu hóa, tuân thủ, đào tạo, đo đạc và khả năng cải tiến liên tục.
Các dự án trong tổ chức mức 2 thường thiết lập các điều khiển quản lý phần mềm cơ bản, dựa trên kết quả quan sát từ các dự án trước và yêu cầu hiện tại Các nhà quản lý theo dõi chi phí, lịch trình và chức năng phần mềm, đồng thời xác định các vấn đề trong các cuộc họp cam kết Yêu cầu phần mềm và sản phẩm công việc được phát triển đúng mốc thời gian, với sự tích hợp được quản lý chặt chẽ Các chuẩn dự án phần mềm được xác định và tổ chức đảm bảo tuân thủ một cách thích hợp Trong trường hợp làm việc với nhà thầu phụ, dự án sẽ xây dựng mối quan hệ khách hàng – nhà cung cấp bền vững.
Các tiến trình trong tổ chức có thể khác nhau giữa các dự án ở mức 2 Để đạt được mức này, yêu cầu tổ chức cần thiết lập chính sách hướng dẫn cho các dự án, nhằm tạo ra các tiến trình quản lý hợp lý.
Năng lực tiến trình phần mềm ở mức 2 trong các tổ chức được xác định bởi việc lập kế hoạch và theo dõi dự án một cách ổn định, cho phép lặp lại các thành công đạt được từ sớm Dự án được quản lý hiệu quả thông qua một hệ thống quản lý dự án, tuân theo các kế hoạch thực tế dựa trên hiệu suất của các dự án trước đó.
2.1.3 Mức đã được xác định
Tại mức đã được xác định, tổ chức phát triển và bảo dưỡng phần mềm theo một tiến trình chuẩn, bao gồm các tiến trình kỹ nghệ phần mềm và quản lý, được tích hợp thành một hệ thống thống nhất Tiến trình này được tham chiếu đến CMM như là chuẩn mực phần mềm của tổ chức Các tiến trình tại CMM mức 3 được áp dụng và điều chỉnh để hỗ trợ hiệu quả cho các nhà quản lý phần mềm và nhân viên kỹ thuật Tổ chức cũng khám phá các thực hành kỹ nghệ phần mềm hiệu quả nhằm chuẩn hóa tiến trình của mình Một nhóm có trách nhiệm về các hoạt động tiến trình phần mềm, như nhóm tiến trình kỹ nghệ phần mềm (SEPG), được thành lập Để đảm bảo tất cả nhân viên và quản lý có đủ kiến thức và kỹ năng cần thiết, một chương trình đào tạo rộng khắp được triển khai trong tổ chức.
Các dự án phần mềm có thể thay đổi quy trình chuẩn của tổ chức nhằm phát triển quy trình phần mềm riêng biệt, mang lại những đặc tính độc đáo cho từng dự án Quy trình này được gọi là quy trình phần mềm đã được xác định, theo CMM, bao gồm một tập hợp các công nghệ phần mềm và các quy trình quản lý được tích hợp chặt chẽ Một quy trình phần mềm được định nghĩa tốt sẽ có các chỉ tiêu sẵn sàng, đầu vào, tiêu chuẩn và thủ tục thực hiện công việc, kèm theo cơ chế xác minh như xem xét ngang cấp, đầu ra và các chỉ tiêu hoàn thành Nhờ vào quy trình này, cấp quản lý có cái nhìn rõ ràng về tiến trình kỹ thuật của tất cả các dự án.
Năng lực tiến trình phần mềm của các tổ chức đạt mức 3 được đặc trưng bởi sự chuẩn hóa và tính nhất quán, với các hoạt động kỹ nghệ phần mềm và quản lý ổn định và có thể lặp lại Các yếu tố như sản phẩm, giá cả, thời gian hoàn thành và chức năng đều được kiểm soát chặt chẽ, đảm bảo chất lượng phần mềm được theo dõi thường xuyên Sự hiểu biết chung về các hoạt động, vai trò và trách nhiệm trong quy trình phần mềm được xác định rõ ràng, góp phần nâng cao hiệu quả của tổ chức.
Tại mức quản lý, tổ chức đặt ra mục tiêu chất lượng phần mềm cho cả sản phẩm và quy trình Năng suất và chất lượng được đo lường cho các hoạt động quy trình phần mềm quan trọng trong tất cả các dự án như một phần của chương trình đánh giá tổ chức Một cơ sở dữ liệu quy trình phần mềm toàn tổ chức được sử dụng để thu thập và phân tích dữ liệu từ các quy trình phần mềm đã xác định của dự án Các quy trình phần mềm được trang bị công cụ đo lường được xác định rõ ràng và thống nhất tại mức 4, cung cấp cơ sở lượng hóa cho việc đánh giá quy trình phần mềm của dự án và sản phẩm.
Dự án đạt được hiệu quả thông qua sản phẩm và tiến trình của mình bằng cách kiểm soát các thay đổi trong hiệu năng, giữ cho chúng nằm trong giới hạn cho phép Những thay đổi quan trọng trong hiệu năng có thể được phân biệt nhờ vào các yếu tố ngẫu nhiên, đặc biệt trong dòng sản phẩm đã được triển khai Đồng thời, các rủi ro liên quan đến việc điều chỉnh nâng cao trong việc học miền ứng dụng mới cần được nhận diện và quản lý một cách chặt chẽ.
Năng lực tiến trình phần mềm của các tổ chức mức 4 được đặc trưng bởi khả năng lượng hóa và dự đoán, nhờ vào việc đo đạc các tiến trình trong giới hạn cụ thể Điều này cho phép tổ chức dự đoán xu hướng và chất lượng sản phẩm trong một biên lượng hóa nhất định Với tính ổn định và khả năng đo đạc của tiến trình, các nguyên nhân đặc biệt của sự biến đổi có thể được xác định và xử lý khi xảy ra ngoại lệ Khi giới hạn của tiến trình bị vượt qua, các hành động khắc phục sẽ được thực hiện, đảm bảo rằng sản phẩm phần mềm đạt chất lượng cao và có tính dự đoán.
Tại mức tối ưu, tổ chức tập trung vào cải tiến liên tục, sử dụng công cụ để xác định và khắc phục điểm yếu trong quy trình Mục tiêu là ngăn ngừa lỗi bằng cách phân tích dữ liệu hiệu quả của tiến trình phần mềm, từ đó đánh giá giá trị và lợi ích của công nghệ mới Sự năng động trong việc áp dụng các thực hành kỹ nghệ phần mềm tốt nhất được duy trì và chia sẻ rộng rãi trong toàn bộ tổ chức.
Nhóm dự án phần mềm ở cấp độ 5 thực hiện phân tích lỗi để xác định nguyên nhân gốc rễ Họ đánh giá quy trình phần mềm nhằm ngăn chặn sự tái diễn của các lỗi đã biết và chia sẻ bài học kinh nghiệm cho các dự án khác.
Năng lực tiến trình và dự báo hiệu năng
Sự trưởng thành của tiến trình phần mềm trong tổ chức đóng vai trò quan trọng trong việc dự báo khả năng của dự án đáp ứng các mục tiêu đề ra Các dự án ở mức độ 1 thường gặp nhiều biến động lớn liên quan đến giá cả, lịch trình, chức năng và chất lượng Như minh họa trong hình 2.4, ba cải tiến trong việc đạt được các mục tiêu kỳ vọng phản ánh sự trưởng thành của quy trình phần mềm trong tổ chức Những kỳ vọng này dựa trên các kết quả định lượng từ việc cải tiến quy trình đã được thực hiện trong các ngành công nghiệp khác và phù hợp với những kết quả ban đầu đã được báo cáo bởi các tổ chức phần mềm.
Khi mức độ trưởng thành của tổ chức tăng lên, sự chênh lệch giữa kết quả mục tiêu và kết quả thực tế trong các dự án sẽ giảm Các tổ chức ở mức độ trưởng thành thấp thường gặp khó khăn trong việc tuân thủ thời gian giao hàng, dẫn đến độ chênh lệch lớn, trong khi những tổ chức có mức độ trưởng thành cao hơn có khả năng đạt được ngày giao hàng với độ chính xác cao hơn Điều này được minh họa rõ ràng trong hình 2.4, cho thấy diện tích dưới đường cong ở phía bên phải của ngày đích.
Khi độ trưởng thành của tổ chức tăng lên, khả năng thay đổi kết quả thực tế so với mục tiêu giảm đi Cụ thể, trong các tổ chức có mức trưởng thành thấp, ngày giao hàng cho các dự án cùng kích cỡ thường khó đoán và có sự biến động lớn Ngược lại, ở các tổ chức có mức trưởng thành cao hơn, các dự án tương tự sẽ được giao hàng với thời gian ổn định hơn, thể hiện qua việc vùng dưới đường cong tập trung gần đường đích hơn.
Khi mức độ trưởng thành của tổ chức phần mềm tăng lên, các kết quả đích được cải tiến, dẫn đến giá phần mềm giảm, thời gian phát triển ngắn hơn, và năng suất cùng chất lượng được nâng cao Ở tổ chức có mức trưởng thành thấp, thời gian phát triển thường kéo dài do phải làm lại nhiều để sửa lỗi Ngược lại, các tổ chức có mức trưởng thành cao hơn đã cải thiện hiệu quả quy trình và giảm thiểu việc làm lại, từ đó rút ngắn thời gian phát triển Sự cải thiện này được thể hiện qua sự dịch chuyển ngang của đường đích trong hình 2.4.
Sự cải tiến trong việc dự báo kết quả dự án phần mềm cho thấy đầu ra trở nên dễ đoán hơn và ít nhiễu hơn, thường thông qua việc loại bỏ các yếu tố không cần thiết trong quy trình phát triển Các hệ thống chưa có tiền lệ làm phức tạp tình hình do công nghệ mới gia tăng sự thay đổi Tuy nhiên, các tổ chức có độ trưởng thành cao hơn có khả năng xác định và giải quyết vấn đề sớm hơn trong vòng đời phát triển, so với các tổ chức có mức trưởng thành thấp hơn Điều này cho phép những dự án "thất bại" được nhận diện sớm, từ đó giúp tối thiểu hóa tổn thất đầu tư.
Các nghiên cứu về cải tiến quy trình phần mềm cho thấy có sự gia tăng rõ rệt về chất lượng và năng suất nhờ vào những nỗ lực cải tiến Tỷ lệ tái đầu tư cho các nỗ lực này thường dao động từ 5:1 đến 8:1, cho thấy hiệu quả của việc cải tiến quy trình.
Bỏ qua các mức trưởng thành
Việc bỏ qua các mức trưởng thành trong mô hình CMM là không hiệu quả, vì mỗi mức đều tạo ra một cơ sở cần thiết để đạt được mức tiếp theo Mô hình CMM hướng dẫn tổ chức xây dựng văn hóa kỹ nghệ phần mềm hoàn hảo Các tổ chức có thể thực hiện cải tiến quy trình bất cứ lúc nào, nhưng cần nhận thức rằng sự ổn định của các cải tiến này có thể gặp rủi ro cao hơn do cơ sở của chúng chưa hoàn thiện Các quy trình thiếu nền tảng phù hợp sẽ không thành công khi cần thiết nhất và không cung cấp cơ sở cho cải tiến trong tương lai.
Một tiến trình phần mềm được định nghĩa rõ ràng là đặc điểm của các tổ chức ở mức 3, nhưng có thể gặp rủi ro lớn hơn nếu quản lý không cam kết với một lịch trình được lập kế hoạch hợp lý hoặc không kiểm soát được các thay đổi đối với yêu cầu cơ bản Nhiều tổ chức đã thu thập dữ liệu chi tiết ở mức 4, nhưng lại phát hiện rằng dữ liệu này không thể hiểu được do sự không nhất quán trong các tiến trình phát triển phần mềm.
Các nỗ lực cải tiến tiến trình nên tập trung vào nhu cầu của tổ chức trong bối cảnh môi trường kinh doanh của nó Việc áp dụng các thực hành ở mức cao hơn có thể giúp đáp ứng nhu cầu hiện tại của tổ chức hoặc dự án Một ví dụ điển hình là việc tạo ra nhóm kỹ nghệ tiến trình phần mềm (SEPG) khi tổ chức chuyển từ mức 1 sang mức 2 Mặc dù SEPG không phải là yêu cầu bắt buộc cho tổ chức ở mức 2, nhưng chúng có thể đóng vai trò hữu ích trong việc mô tả các bước cần thực hiện để đạt được mức cao hơn.
Định nghĩa theo kiểu hoạt động của mô hình CMM
Cấu trúc bên trong của các mức trưởng thành
Mỗi mức trưởng thành được chia thành các phần nhỏ, ngoại trừ mức 1 Việc phân chia này diễn ra từ các tổng kết trừu tượng đến định nghĩa hoạt động trong các thực hành then chốt, như thể hiện trong hình 3.1 Mỗi mức trưởng thành bao gồm nhiều vùng tiến trình then chốt, được tổ chức thành 5 phần gọi là các đặc điểm chung Những đặc điểm này xác định các thực hành then chốt, và khi được giải quyết tập trung, sẽ giúp đạt được mục tiêu của vùng tiến trình then chốt.
Các mức trưởng thành
Mức trưởng thành là một trạng thái ổn định trong tiến trình phát triển, nhằm đạt được tiến trình phần mềm trưởng thành Mỗi mức trưởng thành phản ánh khả năng tiến trình của tổ chức, như minh họa trong hình 2.1 Chẳng hạn, tại mức 2, năng lực tiến trình của tổ chức đã được cải thiện từ tình trạng lộn xộn sang có quy tắc nhờ vào việc áp dụng các biện pháp quản lý dự án hợp lý.
Các vùng tiến trình then chốt
Mỗi mức trưởng thành, ngoại trừ mức 1, đều kết hợp từ các vùng tiến trình then chốt, chỉ ra những lĩnh vực mà tổ chức cần tập trung để cải tiến quy trình phần mềm Các vùng tiến trình then chốt này xác định các vấn đề cần được giải quyết nhằm đạt được mức trưởng thành cao hơn.
Một vùng tiến trình then chốt xác định chuỗi các hoạt động liên quan, khi thực hiện tập trung sẽ đạt được các mục tiêu quan trọng để cải thiện khả năng tiến trình Các vùng tiến trình này được định nghĩa nhằm tạo ra một mức trưởng thành đơn, như thể hiện trong hình 3.2 Con đường để đạt được mục tiêu của vùng tiến trình then chốt có thể khác nhau giữa các dự án, tùy thuộc vào lĩnh vực ứng dụng và môi trường Tuy nhiên, để thỏa mãn một vùng tiến trình then chốt, tổ chức cần đạt được tất cả các mục tiêu đã đề ra.
Tính từ “then chốt” chỉ ra rằng có những vùng tiến trình không phải là yếu tố quyết định để đạt được mức trưởng thành trong phát triển và bảo trì phần mềm Mô hình CMM không đề cập chi tiết đến tất cả các vùng tiến trình liên quan, mà chỉ xác định một số vùng nhất định là nhân tố quyết định chính cho khả năng tiến trình Những vùng này được mô tả trong CMM và đóng vai trò quan trọng trong việc cải thiện quy trình phát triển phần mềm.
Các vùng tiến trình then chốt là yêu cầu cần thiết để đạt được một mức trưởng thành Để đạt được mức trưởng thành, tất cả các vùng tiến trình then chốt của mức đó phải được đáp ứng đầy đủ.
Các thực hành đặc biệt trong từng vùng tiến trình then chốt sẽ liên quan đến mức độ trưởng thành của tổ chức Chẳng hạn, khả năng ước tính phần mềm trong vùng tiến trình Lên kế hoạch dự án phần mềm cần được kết hợp để quản lý dữ liệu dự án hiệu quả hơn.
3, như được miêu tả trong “Quản lý dự án tích hợp” (Integrated Software Management)
Các vùng tiến trình then chốt tại mức 2 tập trung vào việc giải quyết các vấn đề liên quan đến dự án phần mềm, đặc biệt là trong việc thiết lập các điều khiển quản lý dự án cơ sở.
Quản lý yêu cầu nhằm tạo ra sự hiểu biết chung giữa khách hàng và dự án phần mềm về các yêu cầu cần được giải quyết Sự đồng thuận này với khách hàng là nền tảng cho việc lập kế hoạch và quản lý hiệu quả dự án phần mềm.
Mục đích của Lên kế hoạch dự án phần mềm là xây dựng một kế hoạch phù hợp nhằm thực hiện các kỹ nghệ phần mềm và quản lý dự án hiệu quả Những kế hoạch này đóng vai trò quan trọng trong việc quản lý dự án phần mềm, đảm bảo tiến độ và chất lượng công việc.
Mục đích của Giám sát và Trông trước Dự án Phần mềm là cung cấp cái nhìn chính xác về tiến độ thực tế của dự án Điều này giúp cấp quản lý thực hiện các hành động hiệu quả khi tiến độ thực tế có sự thay đổi so với kế hoạch đã định.
The purpose of Software Subcontract Management is to select high-quality software subcontractors and manage them effectively.
Mục đích của Đảm bảo chất lượng phần mềm (Software Quality Assurance) là cung cấp cho cấp quản lý cái nhìn rõ ràng về quy trình mà dự án đang áp dụng cũng như các sản phẩm đang được phát triển.
Quản lý cấu hình phần mềm (Software Configuration Management) nhằm mục đích thiết lập và duy trì sự tích hợp cho các sản phẩm trong dự án phần mềm, đảm bảo tính liên tục và ổn định trong suốt vòng đời của dự án.
Các vùng tiến trình then chốt ở mức 3 tập trung vào việc giải quyết các vấn đề tại cấp độ dự án và tổ chức Tổ chức cần xây dựng một cấu trúc hạ tầng kết hợp hiệu quả giữa kỹ nghệ phần mềm và các tiến trình quản lý, đảm bảo sự đồng bộ và hiệu quả trong tất cả các dự án.
Điểm chính của Điểm Tập Trung Tiến Trình Tổ Chức là xác định trách nhiệm của tổ chức trong các hoạt động liên quan đến quy trình phần mềm, nhằm nâng cao khả năng tổng thể của quy trình phần mềm trong tổ chức.
Tiến trình tổ chức (Organization Process Definition) là việc phát triển và duy trì một bộ đánh giá tiến trình phần mềm nhằm cải thiện hiệu suất trong các dự án Nó cung cấp nền tảng cho việc xác định dữ liệu có ý nghĩa để quản lý tiến trình một cách định lượng Những đánh giá này tạo ra một cơ sở ổn định, có thể được kết hợp thông qua các cơ chế như đào tạo.
Các mục tiêu
Các mục tiêu tổng hợp các thực hành then chốt của một vùng tiến trình then chốt và giúp đánh giá hiệu quả thi hành của tổ chức hoặc dự án Những mục tiêu này cụ thể hóa phạm vi, ranh giới và mục đích của từng vùng tiến trình then chốt Sự thỏa mãn một vùng tiến trình then chốt (KPA) được xác định dựa trên việc đạt được các mục tiêu đã đề ra.
Các đặc điểm chung
Để thuận tiện, các thực hành mô tả các vùng tiến trình then chốt được tổ chức thành các đặc tính chung, giúp đánh giá hiệu quả, khả năng lặp lại và tính bền vững của sự thi hành và kết hợp Có năm đặc điểm chung quan trọng cần lưu ý.
Cam kết thực hiện là yếu tố quan trọng mà tổ chức cần tuân thủ để đảm bảo tiến trình được thiết lập và duy trì bền vững Điều này thường liên quan đến việc ban hành các chính sách ở cấp độ tổ chức và đạt được sự đồng thuận từ các cấp quản lý cao.
Để thực hiện sự cạnh tranh trong tiến trình phần mềm, tổ chức hoặc dự án cần có những điều kiện ban đầu nhất định Những điều kiện này bao gồm việc đảm bảo các nguồn lực đầy đủ, cấu trúc tổ chức hợp lý và chương trình đào tạo hiệu quả cho nhân viên.
Các hoạt động được thực hiện
Các hoạt động trong quá trình thi hành một vùng tiến trình then chốt bao gồm việc lập kế hoạch, thực hiện công việc, kiểm soát và thực hiện các hành động phòng ngừa khi cần thiết Đo đạc và phân tích là những bước quan trọng để xác định nhu cầu đo đạc tiến trình và phân tích các số liệu thu thập được Những số liệu này giúp đánh giá tình trạng và hiệu quả của các hoạt động đã thực hiện.
Xác nhận là quá trình quan trọng để đảm bảo các hành động được thực hiện theo đúng tiến trình đã thiết lập Quá trình này thường bao gồm việc xem xét và kiểm toán từ cấp quản lý cũng như sự tham gia của nhóm đảm bảo chất lượng phần mềm.
Các thực hành trong đặc điểm chung "Các hoạt động được thực hiện" cần thiết để thiết lập khả năng tiến trình Những thực hành này, khi được thực hiện đồng bộ, tạo ra một nền tảng cho tổ chức nhằm kết hợp các thực hành đã được mô tả.
Các thực hành then chốt
Mỗi vùng tiến trình then chốt được xác định qua các thực hành then chốt, góp phần đạt được mục tiêu đề ra Những thực hành này không chỉ mô tả cấu trúc hạ tầng mà còn bao gồm các hoạt động cần thiết để thực hiện và kết hợp hiệu quả trong từng vùng tiến trình then chốt.
Các thực hành then chốt bao gồm một câu đơn và giải thích chi tiết, thường kèm theo ví dụ Chúng được coi là những thực hành quan trọng nhất, chỉ ra các chính sách, thủ tục và hoạt động cho một vùng tiến trình cụ thể Các thành phần trong giải thích chi tiết được gọi là các thực hành con Mặc dù các thực hành then chốt mô tả những gì cần thực hiện, nhưng không chỉ rõ cách thức đạt được mục tiêu Các thực hành thay thế cũng có thể giúp đạt được mục tiêu của vùng tiến trình đó Việc phiên dịch các thực hành then chốt có thể giúp đánh giá hiệu quả của các mục tiêu, mặc dù có thể đạt được qua những cách khác Thông tin chi tiết về các thực hành then chốt có thể tìm thấy trong cuốn sách “Các thực hành then chốt trong mô hình trưởng thành năng lực, phiên bản 1.1” cùng với hướng dẫn thực hiện.
Tương lai của CMM
Việc đạt được sự trưởng thành cao hơn trong quy trình phần mềm đòi hỏi một cam kết lâu dài cho cải tiến liên tục Các tổ chức phần mềm thường cần tới 10 năm hoặc hơn để thiết lập nền tảng cho sự cải tiến văn hóa Mặc dù chương trình cải tiến này chủ yếu áp dụng cho các công ty Mỹ, nhưng nỗ lực này là cần thiết để xây dựng các tổ chức phần mềm trưởng thành.
CMM không phải là giải pháp hoàn hảo cho tất cả các vấn đề liên quan đến sự thành công của dự án Nó không giải quyết được các vấn đề về năng lực chuyên môn trong các lĩnh vực ứng dụng cụ thể, hỗ trợ công nghệ phần mềm đặc thù, hay đưa ra các gợi ý về việc tuyển dụng, tạo động lực và giữ chân nhân tài Mặc dù những yếu tố này rất quan trọng cho thành công của dự án, nhưng chúng vẫn chưa được tích hợp vào CMM.
Trong những năm tới, CMM sẽ tiếp tục trải qua các kiểm thử toàn diện để áp dụng trong đánh giá tiến trình phần mềm, năng lực phần mềm và các chương trình cải tiến Các sản phẩm và chương trình đào tạo phát triển từ CMM sẽ được điều chỉnh phù hợp CMM được xem là một tài liệu sống, có khả năng cải tiến, tuy nhiên, phiên bản 1.1 dự kiến sẽ là nền tảng cho đến ít nhất năm 1996.
Cuốn sách về CMM, đang được biên soạn cho loạt sách của SEI và sẽ được xuất bản bởi Addison – Wesley, cung cấp sự cân bằng hợp lý giữa nhu cầu ổn định và sự phát triển liên tục.
SEI đang hợp tác với tổ chức chuẩn hóa quốc tế ISO để xây dựng các tiêu chuẩn quốc tế cho việc đánh giá tiến trình phần mềm, nhằm cải thiện và nâng cao khả năng Nỗ lực này sẽ kết hợp các khái niệm từ nhiều phương thức cải tiến tiến trình khác nhau Sự phát triển của các tiêu chuẩn ISO và những đóng góp từ các phương thức khác sẽ tác động đến CMM phiên bản 2.0, đồng thời các công việc tiến trình của SEI cũng sẽ ảnh hưởng đến hoạt động của ISO.
Tiến trình sử dụng lại được và các mức tăng trưởng của nó trong một tổ chức (RMM) 30 1 Tổng quan
Khía cạnh hiện nay: Kỹ nghệ tiến trình
Hiện nay, ngành công nghiệp phần mềm đang đối mặt với "khủng hoảng phần mềm", tập trung vào việc cải thiện các tiến trình Mặc dù đã áp dụng nhiều thủ tục, kỹ thuật và công cụ để giải quyết vấn đề, kết quả vẫn không đạt yêu cầu Đồng thời, sự phức tạp trong môi trường làm việc, công nghệ phát triển phần mềm và phần cứng hiện tại đòi hỏi cần tổ chức lại các tiến trình phần mềm trong kỹ nghệ hệ thống để nâng cao hiệu quả.
Tiến trình được hiểu là sự kết hợp của con người, thủ tục, phương pháp, thiết bị và công cụ nhằm tạo ra kết quả mong muốn.
Tổ chức ISO vừa công bố chuẩn “Tiến trình vòng đời phần mềm”, định nghĩa tất cả các tiến trình liên quan đến vòng đời phần mềm Đồng thời, ISO cũng giới thiệu bản phác thảo cho chuẩn “Đánh giá tiến trình phần mềm”, nhằm đánh giá các tiến trình này Mục tiêu của chuẩn này là khuyến khích văn hóa cải tiến liên tục thông qua kỹ nghệ tiến trình, giúp các tổ chức đáp ứng tốt hơn các yêu cầu kinh doanh.
SEI đã phát triển mô hình CMM, tập trung vào kỹ nghệ tiến trình, giúp xác định mức trưởng thành của tổ chức Mô hình này đánh giá chất lượng, năng suất và rủi ro, những yếu tố quyết định sự thành công của các dự án máy tính.
Cộng đồng Châu Âu (EC) đã có những bước tiến quan trọng trong việc tăng năng suất thông qua các dự án như ESPRIT và ACTS Những dự án này tập trung vào việc tái sử dụng các thành phần phần mềm như EUROWARE, REBOOT, RECYCLE, SCALE và ROBUST.
Tuy nhiên, hiện tại không có nghiên cứu nào từ Châu Âu, ngoại trừ dự án REBOOT, cũng như không có các công trình từ tổ chức quốc tế ISO trong lĩnh vực kỹ nghệ tiến trình, hay mô hình CMM của SEI, xem tái sử dụng như một tiến trình chính thức.
Chúng tôi ủng hộ việc tái sử dụng quy trình và các tác giả đã đề xuất nhiều mô hình khác nhau để mở rộng khả năng tái sử dụng do tổ chức cung cấp Đặc biệt, các đề xuất của Koltun và Hudson tại Hội nghị nâng cao năng suất phần mềm rất có giá trị và đã được áp dụng trong dự án REBOOT (Reuse Based on Object Oriented Techniques) của Liên minh Châu Âu.
Mô hình của Koltun và Hudson được coi là chính xác nhất trong việc xác định các hành động cần thực hiện, với 5 mức trưởng thành được định nghĩa để tái sử dụng.
1 Khởi đầu lộn xộn (Initial Chaotic)
4 Được lên kế hoạch (Planned)
Các tiêu chí đánh giá mức độ trưởng thành trong tổ chức bao gồm động lực thúc đẩy, kế hoạch tái sử dụng, sự rộng rãi trong tái sử dụng, trách nhiệm trong việc thực hiện tái sử dụng, tiến trình phân cấp tái sử dụng, kiểm kê tái sử dụng, hoạt động phân lớp, hỗ trợ kỹ thuật, các ma trận đánh giá và các vấn đề pháp lý liên quan.
Mô hình tăng trưởng tái sử dụng (RMM)
Mô hình tăng trưởng tái sử dụng giúp xác định mức độ tăng trưởng mà tổ chức có thể đạt được thông qua việc tái sử dụng Mô hình này được cấu thành từ ba yếu tố tái sử dụng, mỗi yếu tố được xác định bởi một tập hợp các hành động tái sử dụng cụ thể Mỗi hành động này đại diện cho một đơn vị đo lường, từ đó quyết định mức độ tái sử dụng hiện có cho tổ chức.
Trong mô hình RMM, việc tái sử dụng trong tổ chức cần được xem xét độc lập với khả năng của các dự án cụ thể Tuy nhiên, mức độ tái sử dụng từ các dự án có thể là tiêu chí quan trọng để đánh giá sự tăng trưởng tái sử dụng của tổ chức Để xác định chất lượng trưởng thành của tổ chức, các yếu tố như cấu trúc kỹ thuật, kiến trúc phần mềm và quản lý tổ chức thường được xem xét.
Các nhân tố tái sử dụng
Cấu trúc của mô hình này dựa trên việc giám sát ba nhân tố tái sử dụng khác nhau
-Cấu trúc kho lưu trữ
-Kiến trúc phát triển phần mềm
Mỗi một nhân tố bao gồm một phần nhất định của môi trường tái sử dụng, bao trùm các vùng điều khiển sau:
Một trong những yêu cầu quan trọng để tái sử dụng phần mềm là sự tồn tại của kho lưu trữ thông tin có thể tái sử dụng Để đạt được điều này, cần có cấu trúc biểu diễn thông tin cho phép phân loại và khôi phục trong tương lai, bao gồm các lĩnh vực như Lập trình, Thiết kế, Phân tích, Kiểm thử, Lập tài liệu và Quản lý dự án Việc đánh giá cấu trúc lưu trữ hiện tại không đồng nghĩa với việc tất cả các thành phần lưu trữ đều có thể tái sử dụng hoàn toàn, do đó, cấu trúc lưu trữ cần được xem xét độc lập với kiến trúc phát triển.
Sự phân lớp và kỹ thuật khôi phục
Phân lớp và kỹ thuật khôi phục là nền tảng quan trọng cho việc tái sử dụng thông tin Về khía cạnh đánh chỉ số, cả phương pháp đánh chỉ số thủ công và tự động đều cần được xem xét, đặc biệt là khi thiếu sự hỗ trợ chuyên nghiệp Đối với việc khôi phục, cần chú trọng đến việc khôi phục các thuộc tính trực tiếp và tài liệu hóa các khái niệm để đảm bảo tính chính xác và hiệu quả.
Quản lý và sử dụng các công cụ tự động là rất quan trọng, đặc biệt trong việc cấp phép, loại bỏ và thay đổi các thành phần lưu trữ Cần cân nhắc kỹ lưỡng khả năng thực hiện những thao tác này Bên cạnh đó, việc áp dụng các kỹ thuật thông báo tự động để thông báo về sự hợp nhất hoặc thay đổi các thành phần mới cũng rất cần thiết, đặc biệt trong bối cảnh sử dụng công nghệ nhóm (Groupware).
2 Kiến trúc phát triển phần mềm
Ý tưởng đánh giá kiến trúc phần mềm dựa trên khả năng tái sử dụng của nó, đồng thời xem xét các phương pháp hướng đối tượng, hướng sự kiện và các kỹ thuật cấu trúc như phương pháp ống và lọc Tuy nhiên, với sự phổ biến của phương pháp giao diện người dùng (GUI), khía cạnh này cũng cần được chú trọng.
Tái sử dụng các yếu tố trong tổ chức hoặc dự án phần mềm là một quá trình có hệ thống, bao gồm việc sử dụng lại các phân tích, thiết kế, mã nguồn và các thành phần khác Mặc dù việc tái sử dụng này có thể liên quan đến việc hiển thị thông tin trong kho lưu trữ, nó cũng có thể được đánh giá độc lập Việc tích hợp các thành phần đã được xác định là có thể tái sử dụng, cho dù do kỹ sư phần mềm thực hiện hay vì lý do khác, là một phần quan trọng trong việc tối ưu hóa quy trình phát triển phần mềm.
Kiểm thử thành phần là một quá trình quan trọng trong phát triển phần mềm, đặc biệt khi phần mềm được thiết kế với tính đối ngẫu và khả năng tái sử dụng Để đảm bảo hiệu quả, cấu trúc kiểm thử cần được xác định rõ ràng và phù hợp với mục tiêu tái sử dụng của phần mềm.
Có ba khía cạnh khác nhau được đề cập đến:
Các khía cạnh hành chính của tái sử dụng đóng vai trò quan trọng trong việc nâng cao hiệu quả của nguồn nhân lực, góp phần hoàn thiện quy trình làm việc.
Động cơ thúc đẩy và kế hoạch để đạt được tái sử dụng
Mức độ tái sử dụng của các dự án trước đây phản ánh sự cải tiến đạt được từ những nỗ lực trong dự án.
Các hoạt động tái sử dụng
Mỗi yếu tố tái sử dụng bao gồm một tập hợp các hành động cần được quản lý Mức độ trưởng thành của tổ chức và mức độ tái sử dụng của dự án sẽ quyết định việc chấp nhận các hành động khác nhau được đề xuất dưới đây.
1-1 Cách thể hiện thông tin 3 điểm
1.1.1 Cấu trúc lưu trữ để lưu trữ các thành phần mã nguồn 0.5
1.1.2 Cấu trúc lưu trữ để lưu trữ các thành phần giao diện người dùng 0.5
1.1.3 Cấu trúc lưu trữ để lưu trữ các thành phần mã thực thi được 0.5
1.1.4 Cấu trúc lưu trữ để lưu trữ các thành phần phân tích & thiết kế 0.5
1.1.5 Cấu trúc lưu trữ để lưu trữ các thành phần tài liệu 0.5
1.1.6 Cấu trúc lưu trữ để lưu trữ các thành phần quản lý dự án 0.5
1-2 Các kỹ thuật phân lớp và khôi phục 3 điểm
1.2.1 Đánh chỉ số các thành phần bằng tay và nhóm phân lớp 0.5
1.2.2 Khôi phục các thành phần thông qua việc nhận biết các thuộc tính 0.5
1.2.3 Tự động đánh chỉ số các thành phần mà chấp nhận sửa mã 0.5
1.2.4 Tự động đánh chỉ số các thành phần nhị phân 0.5
1.2.5 Tự động đánh chỉ số các thành phần thiết kế, phân tích, lập tài liệu và quản lý dự án
1.2.6 Khôi phục các thành phần bằng việc hỏi có tài liệu 0.5
1-3 Các công cụ quản lý và tự động 3 điểm
1.3.1 Xác thực hệ thống, từ chối và thay đổi các thành phần 0.6
1.3.2 Sự tồn tại của môđun tính toán thống kê trên tái sử dụng thành phần
1.3.3 Tự động thông báo khi các thành phần được tích hợp hay thay đổi
1.3.4 Các kỹ thuật cho việc tạo tự động kho lưu từ các dự án trước 0.6
1.3.5 Các kỹ thuật tích hợp tự động các thành phần trong các dự án mới
Mô tả các hoạt động:
1.1.1 - Cấu trúc lưu trữ để lưu trữ các thành phần mã nguồn
Cấu trúc này không chỉ lưu trữ các thuộc tính được mô tả bởi mã nguồn mà còn lưu trữ cả mã Sự kết hợp giữa các thành phần khác nhau trong kho lưu trữ cần được định nghĩa rõ ràng thông qua các quy tắc nhất định của phương pháp luận áp dụng.
1.1.2 - Cấu trúc lưu trữ để lưu trữ các thành phần giao diện người dùng
Giao diện người sử dụng (GUI) thường được tái sử dụng, vì vậy việc xác định các thành phần cơ bản của GUI là rất quan trọng Các thành phần này cần phải được lựa chọn dựa trên các quy tắc của phương pháp luận được áp dụng.
1.1.3 - Cấu trúc lưu trữ để lưu trữ các thành phần mã thực thi được
Các thành phần nhị phân có khả năng tương tác đa giao diện thông qua các công nghệ như COM của Microsoft, CORBA cho hệ thống mở, và gần đây là công nghệ JAVA với applets Những công nghệ này nhằm nâng cao mức độ tái sử dụng thông tin, bao gồm chương trình và các tài nguyên khác.
1.1.4 - Cấu trúc lưu trữ để lưu trữ các thành phần phân tích & thiết kế
Việc định nghĩa phương pháp thể hiện các thành phần phân tích và thiết kế cũng phải được xác định bởi phương pháp luận sử dụng
1.1.5 - Cấu trúc lưu trữ để lưu trữ các thành phần tài liệu
1.1.6 - Cấu trúc lưu trữ để lưu trữ các thành phần quản lý dự án
1.2.1 - Đánh chỉ số các thành phần bằng tay và nhóm phân lớp
Sự tồn tại của vị trí người quản lý thư viện được xác định bởi tính chuyên nghiệp trong phân lớp tài liệu Điều này đặc biệt quan trọng trong các tổ chức lớn, ngay cả khi có sự hỗ trợ của các kỹ thuật phân lớp tự động.
1.2.2 - Khôi phục các thành phần thông qua việc nhận biết các thuộc tính
Các thuộc tính nhận dạng, đã được miêu tả trước đây, thể hiện mức độ cơ bản nhất của sự phân lớp thông tin
1.2.3 - Tự động đánh chỉ số các thành phần mà chấp nhận sửa mã
Việc đề cử các kỹ thuật phân lớp thông tin tự động thông qua việc đánh chỉ số mã nguồn tương ứng với các thành phần ở mức thấp
1.2.4 - Tự động đánh chỉ số các thành phần nhị phân
Kết luận
Tái sử dụng cần được tiếp cận qua việc tập trung vào quy trình thực hiện Một tổ chức muốn thực hiện tái sử dụng hiệu quả cần định nghĩa rõ ràng quy trình tái sử dụng của mình, sau đó nâng cao năng suất và chất lượng sản phẩm Điều này sẽ giúp đạt được các mức tăng trưởng tái sử dụng liên tục trong tổ chức.
Để đảm bảo hiệu quả của tiến trình tái sử dụng, cần có một phương thức sẵn sàng để đánh giá tình trạng của tiến trình Bên cạnh đó, việc sử dụng kết quả đánh giá là cần thiết để cải tiến tiến trình một cách mạch lạc và hiệu quả.
Trong chủ đề này, tiến trình tái sử dụng được xác định qua ba nhóm nhân tố tái sử dụng, dựa trên cách thực hiện và phương thức tái sử dụng Giá trị này giúp đánh giá mức độ trưởng thành của tổ chức trong việc sử dụng lại các tài nguyên.
Phân tích các hành động tái sử dụng giúp xác định những giá trị chưa đạt được và các mục tiêu của tổ chức trong việc tái sử dụng, từ đó đưa ra quyết định về những cải tiến cần thiết để nâng cao hiệu quả của tổ chức.
Mô hình tái sử dụng được đề xuất (RMM) cho phép xác định mức độ tái sử dụng trong từng dự án, tách biệt với mức độ trưởng thành tái sử dụng của tổ chức.