Dự án phần mềm là một đối tượng quản lý phức tạp và có nhiều đặc trưng riêng. Đó là một hệ thống phức hợp của các mối quan hệ công việc – công việc, con người – công việc, con người
Trang 1CHƯƠNG 1 - GIỚI THIỆU
1.1 Đặt Vấn Đề
Dự án phần mềm là một đối tượng quản lý phức tạp và có nhiều đặc trưng riêng
Đó là một hệ thống phức hợp của các mối quan hệ công việc – công việc, con người – công việc, con người – con người, với nhiều yếu tố tương tác lẫn nhau
Mỗi tác động và giải pháp của chúng ta đều dẫn đến các hiệu ứng phụ không mong muốn Mặc dù phương pháp quản lý dự án đã được hoàn thiện qua nhiều năm, tình trạng trễ hạn, vượt chi phí hay không đạt về chất lượng trong các dự án phần mềm vẫn diễn ra khá phổ biến trên thế giới
Để khắc phục tình trạng này, một số phương pháp và công cụ mới được đã nghiên cứu và đưa vào ứng dụng trong quản lý dự án Trong đó mô phỏng liên tục là một công cụ có nhiều tiềm năng Mô phỏng liên tục đã được ứng dụng từ hàng chục năm nay trong nhiều lĩnh vực quản lý, nhưng các nghiên cứu để ứng dụng mô phỏng liên tục trong quản lý dự án thì chỉ phát triển mạnh trong 10 năm gần đây Nhiều mô hình mô phỏng liên tục đã được xây dựng cho quản lý dự án nói chung và dự án phần mềm nói riêng Mặc dù có nhiều ưu điểm, mô phỏng liên tục vẫn chưa trở thành một phương pháp quản lý dự án độc lập có thể thay thế phương pháp truyền thống (với WBS, sơ đồ Gantt/PERT/CPM…) Do đó một số nhà nghiên cứu đã đề xuất giải pháp tích hợp, áp dụng cả hai phương pháp nhằm đạt được hiệu quả cao nhất trong quản lý dự án Tuy nhiên các kết quả hiện tại chỉ dừng lại ở mức độ tổng quan rất khó cho các nhà quản lý dự án phần mềm áp dụng trong thực tế
1 2 Mục Đích Và Nội Dung Của Đề Tài
Mục đích của đề tài là xây dựng được một mô hình tích hợp giữa phương pháp
quản lý dự án truyền thống và mô phỏng liên tục ở mức độ chi tiết, cho phép phối
Trang 2hợp ưu điểm của cả hai phương pháp để đạt được hiệu quả cao nhất và các nhà quản lý dự án dễ dàng vận dụng mô phỏng liên tục trong công việc quản lý dự án
Mô hình tích hợp sẽ bao gồm:
Quy trình quản lý dự án gia công phần mềm đang được sử dụng phổ biến ở Việt Nam
Các vấn đề cần giải quyết trong quản lý dự án gia công phần mềm
Những vấn đề nào nên sử dụng phương pháp truyền thống
Những vấn đề nào nên sử dụng mô phỏng liên tục và sử dụng như thế nào (sử dụng các mô hình đã được xây dựng)
Các nhà quản lý dự án có thể sử dụng các mô hình này để khảo sát các vấn đề của dự án Tuy nhiên mục tiêu chính của đề tài không phải là các mô hình sẵn có, mà
là đem đến cho các nhà quản lý dự án tư duy hệ thống, phương pháp tiếp cận hệ
thống để giải quyết các vấn đề của dự án
Ý nghĩa thực tiễn của đề tài là đưa phương pháp và các thành tựu của mô phỏng
liên tục đến các công ty phần mềm Việt Nam với hy vọng công cụ tiên tiến và hiệu quả này sẽ giúp nâng cao trình độ quản lý dự án và khả năng cạnh tranh của ngành công nghiệp phần mềm Việt Nam
Trang 31.3 Đối Tượng Và Phạm Vi Nghiên Cứu
Đối tượng chính mà đề tài nhắm tới là các công ty gia công phần mềm xuất khẩu Các công ty phần mềm khác ở Việt Nam có thể sử dụng các kết quả của nghiên cứu này nếu quy trình phát triển phần mềm các công ty này đang sử dụng tương đồng với quy trình gia công phần mềm
Đối tượng sử dụng là các nhà quản lý dự án (project manager), quản lý doanh nghiệp phần mềm (manager) và các trưởng nhóm (team leader) Đặc điểm của các đối tượng này là có kinh nghiệm làm việc trong các dự án phần mềm, hàng ngày tiếp xúc và giải quyết các vấn đề của dự án phần mềm với các mức độ khác nhau
Các loại dự án được khảo sát:
Dự án gia công phần mềm: là tạo ra sản phẩm và dịch vụ phần mềm
theo yêu cầu đặt hàng của một khách hàng (khác với việc tạo ra sản phẩm phần mềm để bán hàng loạt cho nhiều khách hàng)
Phát triển sản phẩm: Gia công phần mềm có thể chỉ làm một dịch vụ
hay công đoạn nào đó: nhập liệu (data entry), hỗ trợ khách hàng (customer support), kiểm tra sản phẩm (testing), mã hoá chương trình (coding)…Đối tượng mà đề tài nhắm đến là các dự án phát triển sản phẩm với nhiều công đoạn
Nghiên cứu được thực hiện dựa trên các giả định sau:
Hiệu quả của mô phỏng liên tục trong quản lý dự án: nếu áp dụng hợp
lý, mô phỏng liên tục sẽ đang lại hiệu quả nhất định trong việc quản lý dự án nói chung và dự án phần mềm nói riêng
Tính đúng đắn của mô hình: mục tiêu của đề tài không phải là xây dựng
mới hay các thay đổi mô hình mô phỏng liên tục mà là tìm cách sử dụng hiệu quả, hợp lý các mô hình đã được xây dựng Các mô hình đó được phát triển và thử nghiệm bởi các chuyên gia, các nhà nghiên cứu và
Trang 4được công bố trên các tạp chí uy tín nên ta có thể giả định về tính đúng đắn của mô hình mà không cần kiểm chứng lại
Đề tài không khảo sát tất cả các mô hình mô phỏng liên tục đã được xây dựng cho dự án phần mềm mà chỉ tập trung vào các mô hình thuộc 3 nhóm sau:
Nhóm 1 – Quy trình thực hiện dự án
Nhóm 2 – Hoạch định và quản lý nhân sự cho dự án Nhóm 3 – Quản lý các thay đổi trong dự án
Trang 51.4 Phương Pháp Thực Hiện
Mô hình tích hợp chi tiết sẽ được xây dựng từ cơ sở lý thuyết Sau đó sẽ thử nghiệm trong thực tế để kiểm chứng hiệu quả và hoàn thiện dần
Hình 1.1 Phương pháp thực hiện đề tài
1 Mô hình tích hợp PMIM được sử dụng như là cơ sở ban đầu của mô hình tích hợp mới Tuy nhiên những đặc điểm và hạn chế của PMIM cũng được chỉ rõ để làm định hướng cho mô hình mới
2 Các đặc điểm của dự án phần mềm và quy trình gia công phần mềm được tìm hiểu để rút ra các công việc, vấn đề của quản lý dự án gia công phần Mô hình tích hợp
PMIM
Các đặc điểm của dự án phần mềm Quy trình gia công
phần mềm
So sánh phương pháp quản lý dự án truyền thống với mô phỏng liên tục
Cơ sở của giải pháp tích hợp
Các công việc, vấn đề của quản lý dự án gia công phần mềm
Lựa chọn phương pháp phù hợp cho từng công việc, vấn đề cụ thể
Mô hình tích hợp chi tiết
Thử nghiệm, đánh giá
Điều chỉnh, tối ưu mô hình
Trang 6mềm Các công việc và vấn đề này sẽ được đưa vào mô hình tích hợp mới để khảo sát
3 So sánh phương pháp quản lý dự án truyền thống với mô phỏng liên tục (sử dụng kết quả một số nghiên cứu đã được thực hiện) để rút ra ưu và nhược điểm của từng phương pháp Kết quả này được sử dụng để lựa chọn phương pháp phù hợp cho từng công việc, vấn đề cụ thể từ bước #2 4 Kết hợp kết quả của các bước #1, #2 và #3 để đưa ra mô hình tích hợp đầu
tiên, được xây dựng hoàn toàn trên cơ sở lý thuyết 5 Thử nghiệm mô hình trong thực tế và đánh giá kết quả
6 Điều chỉnh và tối ưu mô hình từ kết quả thực nghiệm của bước #5 và các phản hồi thu được
7 Quay lại bước #5 để thực hiện các thử nghiệm mới
Sau một thời gian thực hiện chu trình thử nghiệm và tối ưu: #5 #6 #5 #6
…ta sẽ xây dựng được mô hình tích hợp hiệu quả có khả năng áp dụng rộng rãi trong thực tế
Tuy nhiên do hạn chế về thời gian và số lượng thử nghiệm, mô hình tích hợp được xây dựng trong đề tài này chưa thể đạt mức độ hiệu quả cao
Trang 7 Tư duy hệ thống (system thinking)
Là phương pháp suy nghĩ trong đó coi hệ thống là một thể thống nhất Ngược lại với phương pháp phân tích, chia sự vật hiện tượng thành các thành phần nhỏ mà ta có thể hiểu được, tư duy hệ thống là cách suy nghĩ theo phương pháp tổng hợp
Hình 2.1 Phương pháp phân tích và phương pháp tổng hợp
Nguồn: “System Dynamics and its Use in an Organisation” [16]
Thể thống nhất
HỆ THỐNG
Phương pháp tổng hợp
Phương pháp phân tích
Hiểu hệ thống
Có kiến thức về hệ thống
Các thành phần riêng lẽ
Trang 8Các phương pháp tư duy hệ thống cung cấp cho chúng ta các công cụ hữu hiệu để hiểu được các hành vi của một hệ thống động, phức tạp và có thể đưa ra các tác động phù hợp
Mục tiêu của tư tưởng hệ thống:
Tối ưu hệ thống, cải thiện mối phụ thuộc tương hỗ giữa các phần tử trong hệ thống
Hiểu rõ cấu trúc hệ thống để có thể đưa ra các chính sách phù hợp Một số tính chất của hệ thống động
Cấu trúc bên trong của hệ thống quyết định hành vi của hệ thống
Xu hướng của các hành vi của hệ thống là để xóa bỏ sự khác biệt giữa trạng thái hiện tại và trạng thái mong muốn của hệ thống
Quá trình động
Các nguyên nhân gây ra kết quả nhưng kết quả cũng tác động lên các nguyên nhân Ngyên nhân của vấn đề thường nằm ở cách xa hiện tượng về không gian và thời gian Mỗi vấn đề là kết quả của một quá trình tích lũy sự tương tác giữa nhiều vấn đề nhỏ trong hệ thống
Hiệu ứng lề
Các chính sách giải quyết vấn đề trong hệ thống thường tạo ra hiệu ứng lề Hiệu ứng lề là những kết quả ngoài dự kiến và nó là nguyên nhân gây ra sự bất ổn trong hệ thống Nguyên nhân của hiệu ứng lề là do khuynh hướng trở về trạng thái ổn định ban đầu của hệ thống
Trang 9 Mô Phỏng Liên Tục (System Dynamics)
Là công cụ để mô hình tổ chức và hành vi của hệ thống theo tư duy hệ thống Đây là một phương pháp hiệu quả để khảo sát các vấn đề phức tạp của quản lý
Các khái niệm và kỹ thuật của mô phỏng liên tục:
Vòng phản hồi âm Vòng phản hồi dương Giản đồ nhân quả Giản đồ cấu trúc Kho và dòng
2.2 Ứng dụng trong quản lý dự án
Phần này tóm tắt một số nghiên cứu đã được thực hiện nhằm ứng dụng tư duy hệ thống và mô phỏng liên tục trong quản lý dự án Những kết quả này là nền tảng cho mô hình tích hợp được thực hiện trong đề tài
2.2.1 Cơ sở của việc ứng dụng mô phỏng liên tục trong quản lý dự án
Sau khi Forrester đề xuất mô phỏng liên tục như là một phương pháp hữu hiệu để khảo sát các hệ thống xã hội – kinh tế phức tạp, mô phỏng liên tục đã phát tiển mạnh và được áp dụng trong nhiều lĩnh vực quản lý
Nếu John D.Sterman là một trong những người đi tiên phong trong việc đưa mô phỏng liên tục vào quản lý dự án thì Abdel-Hamid và Madnick là những người tiên phong trong việc ứng dụng mô phỏng liên tục vào quy trình phần mềm Qua một số mô hình riêng lẽ được xây dựng và chứng minh được hiệu quả trong thực tế, tư duy hệ thống và mô phỏng liên tục dần phát triển và phổ biến trong quản lý dự án như là một cách tiếp cận mới có khả năng giải quyết những giới hạn của các phương pháp quản lý hiện tại
Trang 10Trong “System Dynamics Modeling for Project Management” [20], John
D.Sterman tóm tắt việc sử dụng mô hình mô phỏng liên tục trong việc quản lý các dự án lớn Mô phỏng liên tục đang được sử dụng rộng rãi trong nhiều công ty lớn như là một công cụ phân tích hiệu quả trong cả nghiên cứu và thực tế Bên cạnh quản lý dự án, mô phỏng liên tục còn được dùng để đánh giá các chiến lược và chính sách kinh doanh
Tác giả cũng đưa ra các giải thích lý do tại sao chúng ta phải sử dụng mô hình máy tính một cách chính quy thay vì mô hình nhận thức (mental model) hình thành trong đầu chúng ta Mô hình tri thức có nhiều ưu điểm như xử lý nhiều loại thông tin dưới nhiều dạng khác nhau, dễ thay đổi và điều chỉnh Tuy nhiên với những hạn chế lớn như không tường minh (khó khảo sát, kiểm chứng bởi người khác), diễn dịch khác nhau, có các giả định ẩn, các mâu thuẫn khó bộc lộ để giải
quyết…cùng với những hạn chế của bộ não như giới hạn về bộ nhớ, khả năng xử lý, thiếu thông tin, thành kiến… mô hình tri thức không thích hợp cho các dự án lớn Mô hình máy tính có thể khắc phục những hạn chế của mô hình tri thức bởi vì nó:
o Tường minh Các giả định có thể được xem xét, khảo sát o Có thể tính toán tác động của các giả định một cách chính xác o Có thể khảo sát đồng thời nhiều yếu tố có quan hệ với nhau
o Mô phỏng được: cho phép thực hiện các thí nghiệm trước khi tiến hành trong hệ thống thực
Do chi phí và tính phức tạp của phương pháp mới, mô phỏng liên tục chỉ được ứng dụng nhiều trong các dự án lớn và phức tạp James M Lyneis, Kenneth G
Coopera và Sharon A Elsa đã khảo sát vấn đề quản lý chiến lược các dự án loại
này trong “Strategic management of complex projects:a case study using system dynamics”[15] Mô phỏng liên tục cho phép quản lý dự án theo các mục tiêu của
Trang 11công ty, hỗ trợ trong việc ra các quyết định chiến lược, lâu dài và quan trọng nhất, là những vấn đề mà các phương pháp khác chưa giải quyết được
Quy trình và phương pháp mô phỏng cho quy trình phần mềm được Marc
I.Kellner, Raymond J.Madachy, and David M.Raffo khảo sát trong “Software Process Simulation Modeling:Why? What? How?”[13] Mục tiêu của mô phỏng sẽ
quyết định yếu tố nào cần đưa vào mô hình
Hình 2.2 - Quan hệ giữa mục tiêu với các thành phần của mô phỏng
Nguồn: “Software Process Simulation Modeling:Why? What? How?”[13]
Mục tiêu của mô hình
Các biến kết quả Phạm vi của
mô hình
Mức độ chi tiết của quá trình
Các biến đưa vào
Trang 12Mô phỏng có thể áp dụng trong nhiều cấp độ khác nhau: Trong một giai đoạn của dự án (phân tích, thiết kế ) Trong toàn bộ một dự án
Trong một tập các dự án song song Trong một sản phẩm
Trong toàn bộ công ty/tổ chức
Các tác giả cũng đề xuất một số hướng nghiên cứu:
Tìm cách thức tích hợp giữa mô phỏng, thực thi, hướng dẫn và cách thể hiện để làm cho các mô hình dễ sử dụng và dễ hiểu đối với nhiều đối
tượng (đây là một trong những ý tưởng dẫn đấn việc hình thành đề tài này)
Cải tiến cách thức kiểm chứng mô hình với những giới hạn về dữ liệu thực
So sánh các phương pháp mô phỏng để đưa ra cách sử dụng phù hợp
Xây dựng các kỹ thuật cho mô phỏng hỗn hợp cũng như các trường hợp ứng dụng
Phát triển các công cụ hỗ trợ cho các vấn đề hoạch định
Xây dựng những mô hình mô phỏng quá trình tổng quát có thể điều chỉnh để ứng dụng cho nhiều trường hợp
So sánh giữa mô phỏng liên tục và phương pháp quản lý dự án truyền thống được
Alexandre Rodrigues và John Bowers phân tích chi tiết trong “System Dynamics in Project Management: A Comparative Analysis With Traditional Methods”[17] Các tác giả đã so sánh hai phương pháp trên nhiều khía cạnh (được giới thiệu chi
Trang 13tiết trong chương 4) Phương pháp quản lý dự án truyền thống tập trung vào các
thành phần bên trong dự án Nó cần được mở rộng ra bối cảnh lớn hơn, có tính đến các hiệu ứng về mặt quản lý Các vấn đề mang tính chiến lược không được khảo sát tường minh mà thường dựa vào kinh nghiệm chủ quan Mô phỏng liên tục cung cấp cái nhìn tổng quát hơn, tập trung vào các phản hồi đối với các hành vi của dự án và cách tiếp cận mang tính hệ thống hơn đối với các vấn đề của dự án Các tác giả cũng đề xuất việc tạo ra một mô hình duy nhất chứa đựng những ưu điểm của cả hai phương pháp
Một số nghiên cứu về giải pháp tích hợp cũng đã được thực hiện Rodrigues và Terry Williams đưa ra một mô hình tổng quát để áp dụng mô phỏng liên tục trong quản lý dự án [19] Mô hình mang tên PMIM (Project Management Integrated Model) và dựa trên PMBOK PMIM cho phép ứng dụng mô phỏng liên tục ở cả cấp độ quản lý chiến lược và điều hành, bằng cách đưa kết quả hiện tại của dự án của dự án vào mô hình để dự đoán kết quả tương lai và phân tích rủi ro Các mô hình mô phỏng liên tục được sử dụng như “phòng thí nghiệm” để phân tích hành
vi quá khứ và xác định nguyên nhân của các sai hỏng
Trang 14Hình 2.3 Sơ đồ tồng thể của mơ hình PMIM
Nguồn: System Dynamics in Software Project Management: towards the development of a formal integrated framework [19]
Quy trình quản lý dự án truyền thống: 1 5 6 7 11 13 PMIM thêm hai chu trình mới:
(B1) Hỗ trợ lập kế hoạch: 1 2 3 4
Dữ liệu trong các bản kế hoạch dạng sơ đồ Gantt/PERT được đưa vào các mơ hình mơ phỏng liên tục để thử nghiệm và đánh giá Kết quả sẽ được dùng để hiệu chỉnh kế hoạch
(B2) Hỗ trợ kiểm sốt dự án: 7 8 9 10
Các mơ hình mơ phỏng liên tục được sử dụng để giải thích kết quả và báo cáo các thơng tin mà phương pháp truyền thống khơng thể cung cấp (tỷ lệ lỗi chưa được phát hiện, yếu tố nhân sự…)
Vấn đề gia cơng phần mềm được Gordon E McCraya và Thomas D Clark khảo
sát trong “Using system dynamics to anticipate the organizational impacts of
Báo cáo tiến độ LẬP KẾ HOẠCH
Báo cáosố liệu
quá khứ
MÔ HÌNHMÔ PHỎNG
LIÊN TỤC
(B1) Hỗtrợ kiểmsoát dự án
(B2) Hỗtrợ lập kế
13