MỞ ĐẦU 1. Hình thành vấn đề Sự phát triển của lĩnh vực gia công phần mềm ở Việt Nam nhờ có giá thành thấp dẫn đến ngày càng có nhiều nhà đầu tư nước ngoài mang dự án đến cho các công ty phần mềm trong nước thực hiện. Để quyết định có nhận một dự án phần mềm thì việc đầu tiên mà một công ty thực hiện trước hết là ước tính chi phí thực hiện, thời gian và số nhân lực cần phải có để tiến hành thực hiện dự án.Thông qua việc ước tính này công ty sẽ quyết định nhận hoặc từ chối đề nghị của khách hàng. Đây là giai đoạn quan trọng có tính quyết định sự thành công hay thất bại và lợi nhuận của doanh nghiệp đồng thời ảnh hưởng trực tiếp đến uy tín của doanh nghiệp trên thương trường.
Ước lượng chi phí dự án là một việc làm khó khăn và đầy rủi ro với độ chính xác là không cao. Có rất nhiều nguyên nhân dẫn đến điều này như không có đầy đủ thông tin về dự án trong giai đoạn tìm hiểu nghiên cứu về dự án. Khi đó quá trình ước lượng chi phí thực hiện không chính xác sẽ dẫn đến nhiều thiệt hại cho công ty. Nếu công ty ước lượng chi phí quá cao so với giá thực tế thì sẽ dẫn đến mất các hợp đồng mới và các khách hàng tiềm năng mới.
Còn nếu công ty ước lượng chi phí thấp hơn so với thực tế thì sẽ kiếm được nhiều hợp đồng hơn tạo ra lợi thế cạnh tranh với các đối thủ trên thương trường. Tuy nhiên hệ quả có thể thấy là các nhân viên buộc phải làm nhiều hơn với giá rẻ hơn thực tế điều này có thể làm giảm chất lượng của sản phẩm phần mềm do phát sinh nhiều lỗi không mong muốn và thời gian kéo dài hơn so với thời gian đã cam kết trước với khách hàng. Hậu quả là khách hàng sẽ hủy bỏ dự án đã kí với công ty hoặc công ty phải chịu đền bù thiệt hại. Điều này làm gây ra tổn thất không đáng có cho cả hai bên.
Việc ước tính chi phí có tầm quan trọng như vậy nhưng lại thường được thực hiện dựa trên kinh nghiệm sẵn có của những người trưởng dự án. Nếu kinh nghiệm đánh Khưu Quốc Bảo COCOMO II 11 giá của người trưởng dự án là không tốt thì sẽ dẫn đến những hậu quả như đã nêu ở trên. COCOMO II viết tắt của Constructive Cost Model là một mô hình ước lượng chi phí của dự án phần mềm được phát triển bởi Tiến sỹ Barry W. Mô hình này sử dụng một công thức hồi quy cơ bản với các thông số có nguồn gốc từ các dữ liệu dự án lịch sử và đặc điểm của dự án hiện tại.
Sử dụng những tham số đầu vào cơ bản cùng một số các yếu tố điều chỉnh chi phí được tính dựa vào đặc điểm của công ty, tổ chức và của bản thân dự án để từ đó có thể ước lượng thời gian và số nhân lực cần thiết cho dự án, từ đó ta có thể ước lượng được chi phí của dự án phần mềm một cách chính xác hơn. Một trong những việc khó khăn nhất trong trong việc phát triển một dự án phần mềm là việc ước lượng chi phí cho dự án đó. Có rất nhiều lý do dẫn đến việc ước lượng chi phí là không đúng. Tại thời điểm công ty quyết định về ngân sách cần để thực hiện dự án thì thường chưa có đầy đủ thông tin để có thể có một quyết định chính xác.
Để giải quyết thì cách ước lượng bằng kinh nghiệm sẽ được thực hiện dựa vào kinh nghiệm của các quản lý dự án sẽ thực hiện dự án đó. Đây có thể là một nguy cơ tiềm ẩn có thể nhìn thấy trước bởi vì nó phụ thuộc chủ quan vào người ước lượng. Lý do chọn đề tài Mặc dù có những bước đột phá về công nghệ trong nhiều năm qua như việc ra đời của nhiều ngôn ngữ lập trình mới và các quy trình phát triển phần mềm tiên tiến như Scrum hay Agile nhưng việc phát triển phần mềm vẫn tốn kém nhiều chi phí và chậm hơn so với ước lượng. Tuy nhiên sự ra đời của những quy trình này cũng đã làm giảm sự thất bại của các dự án, trong báo cáo The CHAOS Menifesto của nhóm Standish Group vào năm 2012[15] đã cho thấy tỷ lệ thành công của dự án có sử dụng Agile cao gấp ba lần so với dự án dùng Waterfall.
Khưu Quốc Bảo COCOMO II 12 Hình 1.1: Tỷ lệ thành công của dự án dùng Waterfall so với Agile (Nguồn: The CHAOS Menifesto của nhóm Standish Group vào năm 2012[15]) Trong nhiều thập kỷ qua vẫn có quá nhiều dự án kết thúc với tổng số tiền vượt quá mức dự chi ban đầu và bị chậm tiến độ. Theo kết quả nghiên cứu của tổ chức Standish Group, tại Mỹ mỗi năm tiêu tốn khoản 250 tỷ USD để phát triển khoản 175. Chi phí trung bình cho mỗi dự án ở các công ty lớn là 2.000 USD, cho một công ty trung bình là 1.000 USD và cho một công ty nhỏ là 434. Tuy nhiên theo nghiên cứu của tổ chức này, rất nhiều các dự án đều bị thất bại.
Nghiên cứu Standish Group còn cho thấy một kết quả đáng kinh ngạc 31,1% số dự án sẽ bị hủy bỏ trước khi chúng được hoàn thành. Hơn nữa kết quả cho thấy 52,7% các dự án sẽ chi phí đến 189% dự toán ban đầu của họ dẫn đến thất bại. Dựa trên nghiên cứu này, tập đoàn Standish đã ước tính rằng vào năm 1995 các công ty Mỹ và các cơ quan chính phủ chi tiêu 81 tỷ USD cho các dự án phần mềm bị hủy bỏ. Các tổ chức này sẽ phải trả thêm 59 tỷ USD cho các dự án phần mềm sẽ được hoàn thành, nhưng sẽ vượt quá dự toán ban đầu của họ.
Về mặt thành công, trung bình chỉ có 16,2% cho các dự án phần mềm được hoàn thành vào thời gian và ngân sách. Trong các công ty lớn hơn, thậm chí còn ít hơn hơn: chỉ có 9% các dự án của họ hoàn thành đúng thời gian và ngân sách. Dự án hoàn thành của các công ty Mỹ lớn nhất chỉ khoảng 42% các tính năng ban đầu được đề xuất và chức năng.Trong khi đó các công ty nhỏ hơn làm tốt hơn. Tổng Khưu Quốc Bảo COCOMO II 13 cộng có 78,4% các dự án phần mềm của họ sẽ được triển khai với ít nhất 74,2% các tính năng và chức năng ban đầu.
Ở trong nước, các công ty phần mềm đa số ước lượng chi phí chủ yếu là dựa vào kinh nghiệm từ các dự án đã thực hiện trước đây hoặc kinh nghiệm cá nhân của các trưởng dự án. Nhận thấy sự khó khăn trong việc ước lượng chi phí và dự đoán rủi ro trong các dự án phần mềm nên tôi đã quyết định chọn đề tài này nhằm bổ sung thêm một phương pháp ước lượng chi phí của các dự án giúp cho việc ước lượng được chính xác hơn. Những câu hỏi nghiên cứu Kiểm tra độ chính xác của COCOMO II bằng cách so sánh thời gian thực hiện thực của các dự án đã hoàn thành tại công ty Edge-works Software Ltd với thời gian ước lượng bằng COCOMO II ? Xác định các yếu tố điều chỉnh chi phí nào là quan trọng hơn các yếu tố khác thông? Mô hình COCOMO II có thực sự thích hợp khi áp dụng cho công ty phần mềm Edge-works Software Ltd. Những khó khăn nằm ở đâu và có hướng giải quyết hay không ? 1.
Phạm vi nghiên cứu 1. Đối tượng nghiên cứu Nghiên cứu được thực hiện cho các công ty gia công phần mềm, cụ thể hơn là cho các quản lý dự án những người cần ước lượng chi phí trước khi bắt đầu dự án. Trong phạm vi đề tài, công ty Edge-works Software Ltd được chọn để lấy các số liệu thực tế của các dự án đã hoàn thành để kiểm tra với số liệu được ước lượng. Không gian và thời gian thực hiện Không gian: đề tài được thực hiện trong phạm vi nước Việt Nam.
Thời gian: đề tài sẽ thực hiện trong 6 tháng. Mục tiêu đề tài Tìm hiểu mô hình lý thuyết của COCOMO II và hỗ trợ của nó cho ba dạng dự án Khưu Quốc Bảo COCOMO II 14 Dự án chỉ gồm nhóm phát triển nhỏ, có kinh nghiệm tốt (Organic projects). Dự án bao gồm nhóm phát triển có quy mô trung bình, có hoặc không có kinh nghiệm (Semi-detached projects). Là dạng kết hợp của hai dạng trên, có yêu cầu về phần cứng, phần mềm cao (Embedded projects).
Nghiên cứu mô hình COCOMO II và các yếu tố điều chỉnh chi phí. Đưa ra một số cải tiến để phù hợp với sự phát triển nhanh chóng của lĩnh vực phần mềm hiện nay. Điều này là cần thiết bởi sự phát triển vượt bậc của các công cụ hỗ trợ lập trình, những công cụ này không những có khả năng giúp cho việc viết mã chương trình nhanh hơn mà còn có khả năng sinh ra những đoạn mã đơn giản nhằm tiết kiệm thời gian của lập trình viên. Sử dụng phần mềm COCOMO II để giúp cho việc ước lượng dựa vào mô hình COCOMO II hiệu quả hơn và nhanh chóng hơn.
Đưa ra một công cụ tham khảo trong việc ước lượng chi phí và thời gian bên cạnh việc sử dụng kinh nghiệm của trưởng dự án. Giúp cho việc so sánh, lựa chọn dự án để triển khai và phân bổ nguồn nhân lực tốt hơn. Ý nghĩa đề tài Trình bày chi tiết và đầy đủ về mô hình ước lượng chi phí dự án COCOMO II cũng như các yếu tố điều chỉnh chi phí để giúp cho các trưởng dự án có thể hiểu và áp dụng một cách dễ dàng. Theo kinh nghiệm cá nhân của người viết, các trưởng dự án thường ước lượng dựa trên kinh nghiệm cá nhân là chủ yếu nên độ chính xác là không cao.
COCOMO II như là một phương pháp bổ sung để kiểm tra lại việc ước lượng chi phí dựa trên kinh nghiệm của người trưởng dự án. Xác định một số các yếu tố điều chỉnh chi phí có tầm ảnh hưởng cao hơn các yếu tố khác phù hợp với hoàn cảnh của các công ty phần mềm tại Việt Nam với điển hình là công ty phần mềm Edge-works Software Ltd. Khưu Quốc Bảo COCOMO II 15 1. Tóm tắt chương một Việc ước lượng chi phí dự án có tầm ảnh hưởng rất lớn đến sự thành công hay thất bại của một dự án cũng như sự phát triển bền vững của các công ty phần mềm.
Đó là việc đầu tiên tiên quyết phải làm trước khi bắt đầu mọi dự án.