Chương 1 giới thiệu tổng quan về định giá phần mềm ở Việt Nam và các kiến thức tổng quan về lượng giá phần mềm. Chương 2 tập trung vào trình bày chi tiết 4 mô hình thực nghiệm: COCOMO, COCOMOII, FPA và UCP. Sau đó, luận văn giới thiệu về mô hình UCP Việt Nam do bộ TT&TT đề xuất (trong công văn hướng dẫn). Qua đó, luận văn tiến hành so sánh, phân tích những điểm bất hợp lý trong mô hình này và đồng thời đưa ra những kiến nghị đóng góp xây dựng mô hình phù hợp hơn.
Chương 3 tiến hành áp dụng các mô hình thực nghiệm vào 3 dự án phần mềm thực tế đã được hiện tại công ty CMCSoft. Trên cơ sở đó, luận văn đưa ra những đánh giá nhận xét và đề xuất cải tiến cho các mô hình để phù hợp với ngành CNPM Việt Nam hiện nay (chương 4). Cuối cùng, phần kết luận trình bày những công việc đã thực hiện được và đưa ra những định hướng phát triển đề tài trong tương lai. Tổng quan về thực trạng vấn đề lượng giá phần mềm ở Việt Nam 1.
Lượng giá phần mềm ảnh hưởng đến sự phát triển dự án CNTT ở Việt Nam như thế nào? Những năm gần đây, vấn đề lượng giá phần mềm đã trở thành vấn đề “nóng”, thu hút sự quan tâm của nhiều ngành, nhiều cấp và đối tượng liên quan tham gia. Thực tế đã có nhiều phương án lượng giá phần mềm được đưa ra áp dụng thử, xong vẫn chưa có một phương pháp nào thực sự thuyết phục để có thể áp dụng thống nhất. Vấn đề này đã ảnh hưởng không nhỏ đến tốc độ xây dựng, phê duyệt cũng như giải ngân cho các dự án đầu tư ứng dụng CNTT ở Việt Nam. Tiến độ triển khai ký kết hợp đồng với khách hàng cũng là một vấn đề lớn đối với các doanh nghiệp phần mềm.
Chưa có một căn cứ chính thức để định giá, việc thẩm định, phê duyệt các dự án đầu tư phần mềm, thường là phải lặp lại quy trình rất lâu. Thông thường, để triển khai một hợp đồng đầu tư cho phần mềm với quy mô vừa và nhỏ mất vài tháng đến một năm, quy mô lớn thì phải mất đến vài năm [Vnnet03]. Hiện nay, trên thực tế tồn tại vấn đề nếu các doanh nghiệp phần mềm đưa ra giá cao thì khó được thị trường chấp nhận. Ngược lại, đưa ra giá quá thấp thì doanh nghiệp không đủ chi phí dẫn đến việc triển khai dự án cứ “giậm chân tại chỗ”.
Trong tình hình đó, không ít doanh nghiệp đã phải đối phó theo kiểu “tát nước theo mưa" [Vnnet03]. Nói đến việc triển khai các dự án CNTT sử dụng vốn ngân sách, các chuyên gia và các nhà quản lý trong ngành đều lắc đầu ngao ngán. Các dự án đầu tư ứng dụng và phát triển CNTT mới giải ngân được một phần nhỏ trong tổng số ngân sách chi cho các dự án CNTT. Trong số các dự án đầu tư này lại chủ yếu tập trung vào việc mua phần cứng.
Phần cứng mua về và "đắp chiếu" để đấy còn phần mềm thì phải đợi đơn giá để duyệt chi. Một trong những dự án CNTT điển hình cho những sai xót này phải kể đến sự thất bại của dự án 112 về tin học hoá quản lý hành chính nhà nước [TBVTSG08]. Cuối năm 2004, khi đánh giá lại kết quả thực hiện các chương trình ứng dụng CNTT 2001 - 2005, mới chỉ có 12% số vốn dự toán được giải ngân…Một trong những nguyên nhân chính là chưa có một quy chế hay quy định về quản lý đầu tư các dự án CNTT cho phù hợp. Trong quy chế quản lý dự án đầu tư CNTT thì vấn đề định giá là một trong những vấn đề có thể nói là nhạy cảm và then chốt nhất [Vnnet02].
Những kiến nghị và giải pháp của các nhà quản lý CNTT Để giải bài toán định giá phần mềm, nhiều nhà quản lý CNTT đã đưa ra giải pháp là: xác định việc thanh toán đầu tư vào sản phẩm phần mềm thuộc về “hậu kiểm” theo thực chi, hoàn toàn không liên quan gì tới vấn đề định giá phần mềm [Vnnet05]. Giải pháp này đưa ra do các nhà quản lý này không thấy được vai trò của lượng giá ảnh hưởng đến tiến độ, thời gian, ngân sách và chất lượng dự án thực hiện. Ngoài ra, một vài kiến nghị nên xây dựng một cơ sở dữ liệu (CSDL) về mức chi phí của các dự án đã tiến hành, từ đó có thể áp dụng cho các dự án sắp tiến hành [Vnnet05]. Đây là phương pháp lượng giá tương tự.
Nhưng với điều kiện là CSDL này phải chuẩn xác và mang tính chất khuôn mẫu để các dự án gần giống như vậy sẽ được ước lượng chính xác hơn. Nếu các dự án xây dựng sau là các dự án hoàn toàn mới thì ước lượng như thế nào? Vì vậy, suy cho cùng, các dự án vẫn cần một phương pháp định giá chung ngay từ ban đầu. Những đặc trưng của ngành CNPM Việt Nam ảnh hưởng đến quá trình lượng giá phần mềm Thế giới có nhiều phương pháp và mô hình định giá chi phí dự án phần mềm, tại sao Việt Nam lại không tìm hiểu và áp dụng? Do Việt Nam có những đặc trưng riêng không giống như ngành CNPM thế giới cho nên các phương pháp và mô hình này chưa thật sự phù hợp. Nên chúng ta cần phải tìm hiểu những đặc trưng này để có những điều chỉnh hợp lý về phương pháp và mô hình trước khi đưa vào áp dụng cho bài toán định giá phần mềm của Việt Nam như bối cảnh hiện nay.
- Năng suất lao động sản xuất phần mềm đạt mức thấp [cnpmvn09]. - Không đồng bộ về trình độ của nhân lực. - Thủ tục về tài chính và thanh toán gây nhiều cản trở cho tiến độ giải ngân dự án phần mềm [Vnnet01]. - Phát triển phần mềm không theo qui trình sản xuất phần mềm chung: khó có thể áp dụng một mô hình định giá nào [VNMed06].
- Môi trường phát triển chủ yếu bằng phần mềm không bản quyền: chi phí cho công cụ và môi trường phát triển phần mềm không được tính vào chi phí phát triển dự án. Hơn nữa, phần mềm không bản quyền ảnh hưởng nhiều đến năng suất làm việc cũng như chất lượng sản phẩm phần mềm [Vinasa07]. Tóm lại, những đặc trưng trên đã ảnh hưởng đến việc xây dựng mô hình lượng giá dự án phần mềm theo quy chuẩn của ngành CNPM hiện đại. Vì vậy, lời giải cho bài toán định 5 giá phần mềm không những là thách thức đặt ra cho doanh nghiệp phần mềm mà còn làm đau đầu các nhà quản lý CNTT như hiện nay.
Những bất cập của công văn hướng dẫn lượng giá phần mềm 3364 Trước tình hình thực tế đòi hỏi cần phải có một cơ chế chung cho định giá phần mềm, ngày 17 tháng 10 năm 2008, bộ TT & TT ban hành công văn 3364/BTTTT- ƯDCNTT về việc hướng dẫn lượng giá phần mềm. Công văn này hướng dẫn lượng giá các dự án phần mềm theo mô hình UCP đã cải tiến và chỉnh sửa cho phù hợp với ngành CNPM Việt Nam (mô hình UCP Việt Nam). Đây là một trong những mô hình lượng giá phần mềm “hiện đại” và được sử dụng khá phổ biến trong thời gian gần đây. Tuy nhiên, việc quyết định sử dụng mô hình UCP cho lượng giá dự án phần mềm của bộ lại gây khó khăn cho các đơn vị sản xuất phần mềm.
Bởi vì, muốn áp dụng phương pháp này thì đòi hỏi các đơn vị phải sử dụng ngôn ngữ mô hình hoá thông nhất UML (Unified Modeling Language) để đặc tả yêu cầu người dùng. Ngoài ra, mô hình còn chưa kể đến quy trình phát triển phần mềm phải tuân theo quy trình RUP. Trong thực tế, các kỹ thuật này vẫn chưa được phổ biến ở Việt Nam. Vì vậy, công văn hướng dẫn sẽ chỉ được áp dụng cho số ít công ty và doanh nghiệp đủ điều kiện.
Ngoài ra, còn nhiều vấn đề bất cập khác của công văn hướng dẫn được nêu ra:như sau: - Khó hiểu và phức tạp: “bảng tính toán giá trị phần mềm quá phức tạp để thực hiện” [NDan09]. - Kết quả lượng giá theo công văn hướng dẫn thấp hơn nhiều so với chi phí thực tế. Văn bản hướng dẫn cung cấp mô hình ước lượng chưa bao quát hết các khoản chi phí [Pcworld09]. - “Các hướng dẫn về chi phí khi làm phần mềm trong văn bản này chưa thể đủ được mà mới chỉ dừng ở mức phát triển phần mềm, còn các công đoạn khác thì chưa tính đến” [NDan09].
- Mức lương lao động bình quân để định giá là quá thấp [Vtv09]. Tóm lại, xa rời thực tế, thiếu tính xác thực là một trong những lý do khiến cho công văn hướng dẫn đưa ra là bất khả thi. Mục tiêu của công văn là đưa ra một phương pháp chung cho việc lượng giá dự án phần mềm nhưng với những bất cập này thì các doanh nghiệp, đơn vị sản xuất phần mềm không thể triển khai thực hiện. Vì vậy, Các nhà quản lý không thể vội vàng đưa ra một phương pháp lượng giá chung mà không dựa trên những cơ sở nghiên cứu và ứng dụng thực nghiệm để kiểm nghiệm và điều chỉnh cho phù hợp.
Giới thiệu kiến thức tổng quan về lượng giá phần mềm 1. Giải thích thuật ngữ Thuật ngữ lượng giá phần mềm (Software Cost Estimation) được hiểu là quá trình vận dụng các phương pháp và mô hình ước lượng để dự toán ngân sách cho dự án phần mềm sẽ thực hiện. Lượng giá là cơ sở để quản lý chi phí dự án sao cho dự án kết thúc trong khoảng thời gian và kinh phí cho phép [gtqldapm01]. Lượng giá là một công việc khó khăn và thiếu chính xác.
Bởi vì, quá trình ước lượng còn phụ thuộc vào nhiều nhân tố khác nhau mà các nhân tố này lại không được tính toán một cách chính xác. Vì vậy, lượng giá chỉ là quá trình tính toán một cách phỏng đoán giá trị công sức, thời gian và chi phí để dự án hoàn thành và đạt được mục tiêu đề ra [LaiBre06]. Vai trò của lượng giá phần mềm Vì sao phải lượng giá chi phí phần mềm? Giống như một người muốn xây dựng môt ngôi nhà, anh ta cần phải tính toán được mình phải tiêu bao tiền. Một dự án phần mềm cũng vậy, người quản trị dựa trên những yêu cầu của khách hàng phải ước lượng được cần bao nhiêu công sức và thời gian để hoàn thành mục tiêu dự án đề ra.
Ước lượng càng chính xác bao nhiêu thì khả năng thành công của dự án đạt được nhiều bấy nhiêu. Sự chính xác này thể hiện được khả năng kiểm soát và nắm bắt thực trạng về toàn bộ nguồn tài nguyên dùng cho phát triển dự án.