GIÁO TRÌNH

GIÁO TRÌNH QUẢN LÝ DỰ ÁN

Science and Technology

Các đặc điểm của dự án CNTT

Lịch sử của việc làm phần mềm

Xu thế

Trước đây Ngày nay
Dữ liệu thuần nhất Thông tin không thuần nhất (multimedia)
Mainframes Mạng (cục bộ, diện rộng)
Lập trình tuần tự Lập trình phân tán, lập trình hướng đối tượng, lập trình song hành
Xây dựng các hệ thống thụ động Xây dựng các hệ thống chủ động

Đặc điểm của việc xây dựng những phần mềm lớn

  • 10 000 đến 100 000 dòng lệnh (SLOC - Source Line Of Code, hoặc KSLOC = 1000 SLOC)
  • Nhiều thành viên tham gia
  • Những chươg trình không được phép sai (ví dụ: điều khiển máy bay, quản lý các giao dịch ngân hàng, tính hoá đơn bán hàng ...)

Phân loại dự án

Phân loại Lập trình viên Thời gian Số dòng lệnh (SLOC)
Rất nhỏ 1 1 tháng 500
Nhỏ 1 1-6 tháng 1-2 K
Vừa 2-5 1-2 năm 5-50K
Lớn dưới 100 2-3 năm 50-100K
Rất lớn dưới 500 4-5 năm 1000 K
Cực lớn trên 500 5-10 năm trên 1000 K

Dự án càng lớn => khả năng thành công càng ít.

Sự khủng hoảng của những dự án phần mềm vào đầu những năm 70

  • Phần mềm nhiều lỗi
  • Chạy không ổn định
  • Trễ hạn
  • Vượt quá kinh phí dự kiến
  • Khó bảo trì
  • Phần cứng ngày càng rẻ => Nhu cầu làm phần mềm ngày càng tăng

Sự khủng hoảng đó vẫn còn dư âm đến tận ngày nay

- Theo Kiểm tra kế toán Mỹ (1979)

  • 50% dự án phần mềm vượt quá ngân sách
  • 60% dự án phần mềm bị trễ hạn
  • 45% phần mềm giao nộp nhưng không dùng được ngay
  • 22% phần mềm phi thiết kế lại
  • 29% phần mềm không bao giờ giao nộp

- Theo một số nguồn khác

  • Tom De Marco (1982) : 25% Hệ mềm lớn thất bại
  • Copers Jones (1991) : trung bình các hệ thông tin qun lý bị trễ 1 năm và vượt ngân sách 100%

- Một vài ví dụ

  • Cơ quan “Internal Revenue System” của Mỹ đã phi hủy bỏ dự án “hiện đại hóa hệ thống thuế”, sau khi đã chi phí 4 tỉ USD
  • Bang California đã chi 1 tỉ USD cho hệ thống c sở dữ liệu phúc lợi xã hội mà không dùng được
  • Dự án “xây dựng hệ thống kiểm soát không lưu” của Anh với kinh phí 339 triệu £ đã bị trễ 2 năm
  • Dự án tin học hóa Cục xuất nhập cảnh, Vương quốc Anh, đã trễ hạn 9 tháng
  • Uỷ ban “Public Account” của Anh đã thông báo về hệ thống tin học cài đặt tại Bộ Nông nghiệp (để quản lý các trang trại) có quá nhiều lỗi phần mềm, sau khi kết thúc 1 dự án 12 triệu £
  • Dự án CNTT tại Cục Thuế thu nhập Thái Lan: vay ngân hàng thế giới 41 triệu USD (phần cứng) + 11 triệu USD (phần mềm) + 1,2 triệu USD (đào tạo) + 2 triệu USD (truyền thông, điện, nước,...). Bị đánh giá là thất bại, ngân hàng thế giới đã không đồng ý để Chính phủ Thái Lan kéo dài dự án!
  • Dự án "Hệ thống Điện tử xử lý thông tin tại SeaGames 22 của VN": kinh phí dự kiến 15 tỷ VND, đến tháng 6/2003 đã chi tới 90 tỷ VND (tạp chí PC Word B, 7/2003).

- Khó khăn về phía người làm phần mềm

  • Ước lượng dự án không chính xác
  • Thiếu chuẩn và độ đo, không nhìn được tiến độ công việc
  • Không làm tài liệu tốt

- Khó khăn về phía khách hàng

  • Không hiểu rõ CNTT
  • Nghĩ rằng thay đổi yêu cầu là dễ dàng

- Xu thế tiến bộ

  • Các hệ mềm ngày càng lớn, có thể lên đến vài triệu dòng lệnh, và chất lượng ngày càng cao
  • Năng suất lập trình (tính theo dòng lệnh) tăng khong 6% / năm
  • Những ngôn ngữ lập trình ngày càng mạnh
  • Phong cách làm việc theo Công nghệ phần mềm phát huy tác dụng
  • Phương pháp luận quản lý dự án phát huy tác dụng

Đặc thù riêng của việc làm phần mềm

  • Không nhìn thấy được (invisibility)
  • Không xác định rõ thế nào là "xong" (conformity)
  • Độ phức tạp lớn (complexity)
  • Dễ (bị) thay đổi (flexibility)

Độ đo của dự án CNTT

- Là những gì có thể định lượng hoá, nhằm đánh giá tiến độ, độ ổn định và chất lượng của việc phát triển phần mềm.

  • Số liệu khách quan: số lượng giờ làm việc của các thành viên trong nhóm, SLOC, số lỗi mắc phải
  • Số liệu chủ quan: phụ thuộc vào đánh giá chủ quan, ví dụ: mức độ khó khăn của bài toán, độ rõ ràng của các yêu cầu,...

- Các thông tin về khách quan và chủ quan là bổ sung cho nhau.

  • Các số liệu chủ quan là cơ sở để giải thích cho các số liệu khách quan
  • Các số liệu khách quan là chỗ dựa để người phụ trách xem lại xem sự đánh giá của mình, sự hiểu của mình về bài toán đã chính xác chưa
  • Những thông tin khách quan phản ánh tiến độ hoặc tình trạng dự án. Ví dụ: số các module đã lập trình xong, số lượng các kiểm thử đã thực hiện. Những con số này sẽ cho thấy tiến độ đến đâu.
Kiểu độ đo Ví dụ Nguồn lấy độ đo Thời gian lấy độ đo Mục đích
Khối lượng - Total SLOC (new, modified, reused)- Total modules/units- Total effort Người quản lý Hàng tháng - Xem độ ổn định của sự tiến triển dự án
Lao động - Số giờ làm việc- Số giờ máy tính - Lập trình viên- Có thể thông qua phần mềm chuyên dụng Hàng tuần - Độ ổn định của dự án- Căn cứ để lập kế hoạch lại
Trạng thái - Yêu cầu hệ thống (Số lượng các yêu cầu chung, yêu cầu chưa rõ)- Các Modules/Units đã thiết kế, đã lập trình, đã kiểm thử- SLOC- Số lượng các kiểm thử - Người quản lý- Lập trình viên- Lập trình viên 2 tuần - Tiến độ dự án- Độ ổn định của các yêu cầu
Lỗi/sửa đổi - Số lỗi- Số các thay đổi - Lập trình viên Hàng tuần Chất lượng công việc