Chương 1. TổNG QUAN Về QUảN LÝ Dự ÁN PHầN MềM 1. Định nghĩa dự án,quản lý dự án phần mềm 1. Dự án là gì Có rất nhiều cách định nghĩa một dự án, chung quy lại dự án là quá trình tạo ra sản phẩm hay dịch vụ.
Do vậy các định nghĩa dự án như sau đều được chấp nhận:Dự án là một quá trình gồm các công việc, nhiệm vụ có liên quan với nhau, được thực hiện nhằm đạt được mục tiêu đã đề ra trong điều kiện ràng buộc về thời gian, nguồn lực và ngân sách. Hoặc định nghĩa dự án là một nhiệm vụ cần hoàn thành để có được một sản phẩm, dịch vụ duy nhất trong một thời hạn đã cho với kinh phí dự kiến. Hoặc dự án là một sự cố gắng nhất thời để tạo sản phẩm dịch vụ[5]. Cũng giống như các dự án thông thường, dự án phần mềmmang những đặc điểm cơ bản như sau: - Mỗi dự ánphải có một hoặc một số mục tiêu rõ ràng do dự ánlà một quá trình tạo ra kết quả cụ thể.
- Mỗi dự án đều có một thời hạn nhất định, toàn bộ thời gian của dự án được chia thành các giai đoạn: Giai đoạnkhởi đầu, giai đoạn triển khai và giai đoạn kết thúc. Thời gian thực hiện dự án được chỉ định không được vượt quá một khoảng thời gian nhất định (ví dụ không quá một tháng, một năm, hai năm…). Thời gian thự hiện dự án được ước lượng thông qua các tính năng của sản phẩm (kết quả của dự án) mà khách hàng yêu cầu và được sự đồng ý của khách hàng. Để đảm bảo dự án hoàn thành theo đúng thời gian cho phép, bộ phận quản trị dự án cần áp dụng các công cụ, phương pháp quản lý dự án phù hợp cho từng loại hình dự án nhằm đảm bảo dự án hoàn thành đúng tiến độ đã đề ra.
- Mỗi dự án đều có sử dụng nguồn lực và nguồnlực này bị hạn chế. Các nguồn lực đó bao gồm nhân lực, nguyên vậtliệu, ngân sách. Do các nguồn lực này là hạn chế nên phải có phương pháp quản trị và sử dụng các nguồn lực này trong dự án một cách hợp lý. - Giữa các dự án, không có sự lặp lại hoàn toàn giữa các dự án.
Ví dụ như giữa hai dự án hoàn toàn giống nhau về sản phẩm đầu ra, quy trình phát triển nhưng có yếu tố nhân lực vật lực hoặc thời gian triển khai dự án khác nhau, do vậy giữa hai dự án không có sự trùng lặp hoàn toàn. Với các dự án phần mềm thì có nhiều điểm thuận lợi hơn các dự án khác. Những điểm thuận lợi mà dự án phần mềm có được như: - Sản phầm của dự án dễ sửa đổi hơn sản phẩm vật chất khác. Với dự án phần mềm khi có yêu cầu sửa đổi sản phẩm thì đội phát triển sẽ sửa đổi mã nguồn và biên dịch thành chương trình chạy và gửi lại khách hàng.
Nhưng với các sản LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 15 phẩm thông thường ví dụ như chiếc tivi, nếu khách muốn đổi các thông số trên chiếc tivi này, muốn có một số tính năng mới thì rất khó có thể làm được điều này. - Các pha của vòng đời dự án rõ ràng. Vòng đời chuẩn của quản lý dự án gồm 4 pha : Xác định dự án, Lập kế hoạch, Thực hiện và cuối cùng là Đóng dự án. - Có thể có nhiều giải pháp cho một yêu cầu.
Ví dụ cùng một yêu cầu xây dựng phần mềm kế toán có thể có hai giải pháp thực hiện vấn đề này, giải pháp thứ nhất là xây dựng phần mềm sử dụng online qua internet, giải pháp thứ hai là xây dựng phần mềm offline, không nhất thiết phải làm sao để có nhiều người dùng truy xuất một lúc với giải pháp offline.Tùy vào giải pháp cụ thể mà đội phát triển dự án sẽ có những phương án nguồn lực cụ thể để hoàn thành dự án, như với giải pháp xây dựng phần mêm có thể sử dụng online qua internet thì cần phải chọn nhân lực có các kỹ năng về lập trình web, ngược lại giải pháp offline thì cần các nhân lực có kỹ năng về lập trình ứng dụng window. - Định hình sản phẩm của dự án phần mềm không cứng nhắc miễn là đáp ứng được yêu cầu. Như ở ví dụ trên đã đưa ra về việc xây dựng phần mềm kế toán, đội phát triển có thể định hình sản phẩm theo hai hướng là phần mềm được sử dụng qua internet hoặc không cần kết nối qua internet miễn là phần mềm sao đáp ứng được các tính năng cần có của một phần mềm kế toán mà khách hàng yêu cầu. - Có nhiều công cụ trợ giúp và các công cụ này ngày càng tốt hơn mạnh hơn.
Đối với các dự án phần mềm các công cụ trợ giúp ngày càng mạnh, có thể kế đến các công cụ quản lý mã nguồn, công cụ hỗ trợ quản lý yêu cầu, công cụ quản lý lỗi, các công cụ hỗ trợ lập trình như Microsoft visual studio 2001, các công cụ quản lý cơ sở dữ liệu…Nhờ có các công cụ này mà các dự án phần mềm ngày càng được rút ngắn thời gian phát triển mà vẫn đảm bảo chất lượng phần mềm và làm hài lòng khách hàng. - Dự án phần mềm còn có đăc điểm nữa là cho phép bộ phận triển khai dự án vận dụng nhiều giải pháp: công nghệ, quản lý vào quản lý dự án. Sản phẩm của dự án phần mềm là phần mềm bao gồm chương trình (mã máy) và dữ liệu và tài liệu hướng dẫn, sản phẩm phần mềm mang các đặc trưng khác so với các sản phẩm của dự án thông thường: - Sản phẩm phần mềm là vô hình, không cầm nắm được như các sản phẩm thông thường. Sản phẩm phần mềm được lưu trữ trên máy tính bao gồm chương trình, cơ sở dữ liệu và các tài liệu hướng dẫn sử dụng.
Khi sử dụng sản phẩm phần mềm cần phải có máy tính, người sử dụng sản phẩm phần mềm cũng cần phải có một số kiến thức nhất định về công nghệ thông tin, cần phải biết cách sử dụng máy tính. LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 16 - Cùng một yêu cầu nhưng không xác định duy nhất sản phẩm đầu ra. Khi mà khách hàng yêu cầu xây dựng phần mềm thì mỗi đội phát triển sẽ cho ra một sản phẩm khác nhau, có thể có những khác nhau về giao diện, quy trình nghiệp vụ, tính năng sản phẩm. Những sự khác nhau này vẫn cần phải đảm bảo sản phẩm làm ra phải thỏa mãn yêu cầu và làm hài lòng khách hàng.
- Các nguyên tắc kỹ nghệ để làm ra phần mềm hoàn toán khác với các nguyên tắc tạo ra sản phẩm thông thường(như cơ, điện. - Sản phẩm phần mềm chịu nhiều yếu tố biến động hơn các sản phẩm khác, các yếu tố biến động như công nghệ, môi trường, nghiệp vụ và nguồn lực ảnh hưởng trực tiếp tới chất lượng phần mềm. - Nguyên liệu đầu vào để sản xuất phần mềm cũng rất đặc trưng, nguyên liệu đầu vào có thể là các sản phẩm phần mềm khác, các gói thư viện phần mềm, còn một nguyên liệu rất trừu tượng đó là chất sám. Dự án phần mềm cũng giống như các loại dự án khác về các nguyên nhân gây nên sự thất bại của dự án.
Các nguyên nhân thất bại như: - Dự án không có tính thực tế và sản phẩm không khớp với yêu cầu khách hàng - Dự án không hoàn thành đúng hạn dẫn đến sự không hài lòng của khách hàng làm cho khách hàng có thể kết thúc dự án - Chi phí dự án bị vượt quá dự toán - Khi lập kế hoạch người có thẩm quyền đã ước tính không chính xác nguồn lực cần thiết cho dự án - Xác định yêu cầu hệ thống không đúng - Báo cáo tình trạng dự án sơ sài - Dự án không thực hiện quản lý độ rủi ro - Việc giao tiếp khách hàng, người sử dụng và người phát triển dự án không tốt dẫn tới hiểu sai yêu cầu khách hàng - Dự án sử dụng công nghệ lạc hậu - Không có khả năng xử lý độ phức tạp của dự án - Phát triển thực hành không có hệ thống - Thiếu kinh nghiệm trong việc quản lý dự án - Các bên liên quan mang tính chính trị - Các áp lực mang tính thương mại Nhìn lại lịch sử về các dự án phần mềm, trong giai đoạn từ những năm 1970 và những năm 1980 ngành công nghiệp phần mềm phát triển như vũ bão,do sản xuất phần mềm giai đoạn này dễ hơn và giá thành rẻ hơn so với sản xuất phần cứng vì vậy ngành công nghiệp sản xuất phần mềm nhanh chóng phát triển trong giai đoạn từ thập niên 1970 đến thập niên 1980. Các công ty cũng đã ứng dụng các phương thức quản lý phần mềm, trong giai đoạn này các phương pháp quản lý phần mềm được đưa ra sử dụng luôn, chưa qua quá trình kiểm thử thực tế nên hiệu quả không được tốt, đặc biệt là sự không khớp giữa đặc tả người dùng và phần mềm được chuyển giao cho khách hàng, LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 17 dẫn đến một loạt các nguyên nhân thất bại của dự án phần mêm kể trên. Để tránh các vấn đề trên, các phương thức quản lý dự án phần mềm tập trung vào làm rõ các yêu cầu người dùng theo mô hình hình thác nước. Hiện này phần mềm máy tính đã được ứng dụng rộng khắp vào hầu như tất cả các hoạt động sản xuất, trong mọi ngành kinh tế, xã hội.
Do vậy các phần mềm hiện đại ngày nay nảy sinh nhiều vấn đề mới mà các nhà quản lý cần phải quan tâm, hoạch định để giải quyết các vấn đề này. Các vấn đề của phần mềm bao gồm: - Chi phí liên quan đến phần mềm ngày càng tăng.Do phần mềm ngày càng phức tạp và khó, với những phần mềm phức tạp và khó đòi hỏi người quản trị phải có kỹ năng nhất định để đảm bảo dự án phần mềm, và những người trong đội phát triển cũng phải có kỹ năng ở mức độ cho phép để tham gia dự án. Đó là một trong những nguyên nhân dẫn đến chi phí liên quan ngày càng tăng. - Các yêu cầu của khách hàng thì càng ngày càng nhiều.
Do phần mềm càng ngày càng phức tạp, dẫn đến tính năng phần mềm nhiều và phức tạp - Quy mô, độ phức tạp ngày càng lớn. - Yêu cầu hiệu năng phần mềm ngày càng tăng theo sự tăng trưởng của phần cứng và nhu cầu người dùng.