• Dự án là một tập hợp các công việc, được thực hiện bởi một tập thể, nhằm đạt được một kết quả dự kiến, trong một thời gian dự kiến, với một kinh phí dự kiến.. • Lợi ích khi lập kế hoạc
Trang 1CÁC KHÁI NIỆM CƠ BẢN
CỦA DỰ ÁN PHẦN MỀM
ThS Thạc Bình Cường
Trang 2TÌNH HUỐNG DẪN NHẬP
• Chi tiêu cho Công nghệ thông tin (CNTT) thế giới tiếp
tục tăng, và Forrester Research dự đoán rằng chi tiêu
cho CNTT của Mỹ sẽ tăng 5.7% trong năm 2005, lên
đến $795 tỷ
• Trong năm 2003, trung bình quản trị dự án cấp cao ở
Mỹ thu nhập khoảng $90,000 một năm, và Giám đốc
Trung tâm Quản trị dự án (PMO) kiếm nhiều hơn
Trưởng phòng Công nghệ (CIO) ($118,633 so với
$103,925)
• Quản trị dự án CNTT giống như một công trường Mọi
việc đều rất ngổn ngang bừa bãi cần một nhà quản lý
để đưa vào trật tự
Vai trò của quản trị dự án trong việc phát triển một dự án CNTT?
Trang 3Trình bày được các khái niệm về các vấn đề dự án và quản trị dự án.
Trình bày được các bước quá trình phát triển dự án CNTT
Liệt kê được các kỹ thuật và mô hình kinh tế, nền kinh tế khi áp dụng
các mô hình quản trị dự án
Trang 5• Dự án là gì?
• Quản lý dự án là gì?
• Nói về người quản lý dự án
Trang 6• Dự án là một tập hợp các công việc, được thực hiện bởi một tập thể, nhằm đạt được
một kết quả dự kiến, trong một thời gian dự kiến, với một kinh phí dự kiến.
Phải dự kiến nguồn nhân lực;
Phải có ngày bắt đầu, ngày kết thúc;
Phải có kinh phí thực hiện công việc;
Phải mô tả được rõ ràng kết quả (output) của công việc
• Dự án kết thúc khi:
Hoàn thành mục tiêu đề ra và nghiệm thu kết quả (kết thúc tốt đẹp) trước
thời hạn;
Hết kinh phí trước thời hạn (kết thúc thất bại);
Đến ngày cuối cùng (nếu tiếp tục nữa cũng không còn ý nghĩa)
• Dự án thất bại khi:
Không đáp ứng các mục tiêu ban đầu;
Không đáp ứng được thời hạn;
Vượt quá ngân sách cho phép (20 - 30%)
1.1 DỰ ÁN LÀ GÌ?
Trang 7Không rõ mục tiêu: 18%
Không quen thuộc với Phạm vi và sự phức Của dự án: 17%
Lý do khác: 12%
Tại sao dự án thất bại?
• Để tránh việc thất bại dự án
Cải tổ việc quản lý dự án
Nghiên cứu khả thi Tăng số các thành viên tham gia
Tăng các phương sách từ bên ngoài
Không phải những lý do trên
Trang 8 Phân cấp có mức độ (không nên chia thành quá nhiều mức);
Tài liệu cô đọng và có chất lượng (quá nhiều tài liệu tức là có quá ít thông tin);
Kết quả quan trọng hơn công cụ hay kĩ thuật (thực dụng);
Tạo ra các độ đo tốt (để có đánh giá đúng);
Suy nghĩ một cách nhìn xa trông rộng;
Cải tiến liên tục (kế hoạch không xơ cứng)
1.2 QUẢN LÝ DỰ ÁN LÀ GÌ?
Trang 10• Lợi ích của kế hoạch quản lý:
Rủi ro khi không lập kế hoạch;
Khởi đầu sai lệch;
Bị nhầm lẫn;
Không đáp ứng được sự mong đợi của các nhà tài trợ hoặc các mục tiêu;
Thông tin nghèo nàn
• Lợi ích khi lập kế hoạch quản lý:
Đáp ứng các mục tiêu;
Gây dựng lòng tin từ người góp vốn;
Thiết lập hướng làm việc chung;
Mở ra các kênh thông tin liên lạc;
Bắt đầu dự án với một phương thức có hệ thống
1.2 QUẢN LÝ DỰ ÁN LÀ GÌ? (tiếp theo)
Trang 11• Lập kế hoạch quản lý bao gồm:
Xác định ranh giới của dự án: Đội lập kế hoạch, văn bản/thông tin hiện có;
Xây dựng các lựa chọn tiếp cận của dự án: Chiến lược thực hiện và các phươngpháp luận tổ chức dự án;
Xây dựng các ước tính ban đầu;
Xây dựng cơ sở hạ tầng nguồn: Môi trường làm việc, MOC;
Xây dựng cơ sở hạ tầng của dự án: Quản lý cấu hình, chất lượng, rủi ro, sựkiện, sự thay đổi, kiểm soát dự án, lập báo cáo và lập kế hoạch;
Lập thành văn bản về kế hoạch quản lý
Thiết lập hướng làm việc chung;
Không lo lắng đến thời hạn giao nộp sản phẩm, đến khi dự án sắp hết hạn thìmới lo huy động thật đông người làm cho xong;
Quản lý chủ động, tích cực Suốt quá trình thực hiện dự án không bị động vềkinh phí, nhân lực và tiến độ đảm bảo (lý tưởng)
Trang 12 Không kiểm soát được tình thế, nhiều khi phải thay đổi kế hoạch và tổ chức.
• Hậu quả của QLDA thụ động:
Kết quả thu được không ổn định;
Tinh thần làm việc không cởi mở, hợp tác;
Năng suất thấp, công việc không chạy;
Rối loạn trong điều hành;
Không sử dụng hiệu quả tài nguyên;
Người quản lý dự án bị dự án quản lý;
Hồ sơ dự án kém chất lượng;
Chậm tiến độ, tiêu vượt quá kinh phí;
Chất lượng dự án không đảm bảo
1.2 QUẢN LÝ DỰ ÁN LÀ GÌ? (tiếp theo)
Trang 13• Các thuộc tính của dự án IT:
Kết quả bàn giao có thể là ít hữu hình;
Phạm vi có thể khó kiểm soát;
Kỹ năng, kinh nghiệm, thái độ và kỳ vọng trái ngược nhau;
Có thể bất đồng về mục tiêu kinh doanh;
Thay đổi quan trọng về tổ chức;
Các yêu cầu, phạm vi, và lợi nhuận chính xác có thể rất khó xác định;
Sự thay đổi nhanh chóng về công nghệ
Thiết lập kế hoạch chỉnh sửa dễ dàng;
Dám đối mặt với sự kiện;
Sử dụng quản trị để hỗ trợ cho các mục đích của dự án;
Thời gian mục tiêu đối với từng nhiệm vụ không được giống như đã nêu trong
kế hoạch;
Đọc lại phạm vi và các mục tiêu của dự án mỗi tuần một lần;
Không ngạc nhiên
Trang 14• Người kỹ sư mang nhiều đặc tính của công nghệ
• Người quản lý mang nhiều đặc tính của nghệ thuật
• Dự án nhỏ thì người kỹ sư kiêm người quản lý dự án Dự án lớn sẽ cần nhóm quản lý
dự án
• Bảng phân vai trong dự án:
Người quản lí dự án (PM - Project Manager): Chịu trách nhiệm chính về kết quảcủa dự án Có vai trò chủ chốt trong việc xác định các mục đích và mục tiêu,xây dựng các kế hoạch dự án, đảm bảo dự án được thực hiện có hiệu lực vàhiệu quả
Người tài trợ dự án (PS - Project Sponsor) Cấp tiền cho dự án hoạt động, phêduyệt dự án, quyết định cho dự án đi tiếp hay cho chết giữa chừng
Tổ dự án (PT - Project Team) Hỗ trợ cho PM để thực hiện thành công dự án.Bao gồm những người vừa có kỹ năng (skill) và năng lực (talent)
Khách hàng (Client): Thụ hưởng kết quả dự án nêu yêu cầu, cử người hỗ trợ
dự án Là người chủ yếu nghiệm thu kết quả dự án
Ban lãnh đạo (Senior Mangement): Bổ nhiệm PM và PT, tham gia vào việc hìnhthành và xây dựng dự án
Các nhóm hỗ trợ (có thể có nhiều hay ít, tuỳ từng dự án): Ban điều hành(Steering Committee), nhóm tư vấn, nhóm kỹ thuật, nhóm thư ký,
1.3 NÓI VỀ NGƯỜI QUẢN LÝ DỰ ÁN
Trang 16• Trách nhiệm của QLDA:
Nêu ra những điểm bao quát chung Về công việc, cấu trúc phân việc, lịch biểu và
ngân sách
Trao đổi với các đồng nghiệp Bao gồm các báo cáo, biểu mẫu, bản tin, hội
họp và thủ tục làm việc Ý tưởng là trao đổi cởi mở và trung thực trên cơ sở đều đặn
Động viên, khuấy động tinh thần làm việc Bao gồm khích lệ, phân việc, mời tham gia
và ủy quyền Định hướng công việc Bao gồm điều phối, theo dõi, thu thập hiện
trạng và đánh giá hiện trạng
Hỗ trợ cho mọi người
1.3 NÓI VỀ NGƯỜI QUẢN LÝ DỰ ÁN (tiếp theo)
Trang 17• Chọn nhân sự cho dự án:
Kiến thức kỹ thuật;
Chuyên môn đặc biệt;
Đã có kinh nghiệm;
Đã tham gia dự án nào chưa?
Quyền lực của phòng, ban của người đó?
Hiện có tham gia dự án nào khác không?
Khi nào kết thúc?
Dành bao nhiêu thời gian cho dự án?
Khối lượng công việc chuyên môn hiện nay;
Quan hệ đồng nghiệp;
Có hăng hái tham gia;
Có truyền thống làm việc với hiệu quả cao không?
Có ngăn nắp và quản lý thời gian tốt không?
Có tinh thần trách nhiệm không?
Có tinh thần hợp tác không?
Thủ trưởng của người đó có ủng hộ không?
Trang 18 Cung cấp môi trường làm việc tốt;
Trao đổi với đồng nghiệp
• Sức ép với QLDA: Kinh tế, marketing, các chuẩn về công nghệ, mục tiêu, uy tín danh
dự, nguồn nhân lực, nhân sự, thủ tục hành chính, quan hệ với người đặt hàng, môitrường kinh doanh
• Phẩm chất QLDA: Trung thực, toàn tâm toàn ý, khả năng diễn đạt, khả năng chia sẻthông cảm với người khác, nhất quán, kiên nhẫn, tính kiên quyết, khách quan, tầmnhìn xa trông rộng, …
1.3 NÓI VỀ NGƯỜI QUẢN LÝ DỰ ÁN (tiếp theo)
Trang 19• Sơ lược về quá trình – dự án truyền thống:
Dạng Văn bản không
theo thể thức
Sơ đồ luồng Chương trình nguồn Vạch ranh giới cấu hình
Hoạt động Yêu cầu phân tích Thiết kế chương
trình
Lập trình và kiểm thử
Tích hợp theo tỷ lệ mở rộng và kiểm sửa
Sản phẩm Tài liệu Tài liệu Chương trình Vạch ranh giới yếu ớt
Các hoạt động kế tiếp: Yêu cầu – thiết kế - lập trình – tích hợp – kiểm sửa
Bắt đầu tích hợp
Điểm gián đoạn thiết kế chậm
Ngày đạt mục tiêu gốc
Trang 20• Các kinh nghiệm của quá trình phát triển phần mềm:
Quá trình phát triển là không dự đoán được rất cao Chỉ có 10% dự án là đúnghạn và ngân sách;
Các nguyên tắc quản lý là khó phân biệt được thành công hay thất bại như cáctiến bộ công nghệ;
Các mức vụn vặt và làm lại phần mềm là xác định trong tiến trình tăng trưởng
• Hai bước cơ bản để xây một chương trình:
Phân tích và lập trình sẽ bao gồm các công việc
sáng tạo mà nó đóng góp trực tiếp tới tính hữu
Trang 21Yêu cầu hệ thống
Yêu cầu phần mềm
Phân tích
Thiết kế chương
Trang 23• Sơ lược rủi ro:
Kiểm sửa
Sơ lược rủi ro
Sơ lược rủi roYêu cầu
Điều khiển chu kỳ quản
lý rủi ro
Chu kỳ khai thác rủi ro
Chu kỳ chi tiết hóa rủi ro
Vòng đời dự án
Trang 24• Lập tài liệu và điều khiển dự án:
Nhà dự thầu (contractor) chuẩn bị một tài liệu hợp đồng để phân phát chokhách hàng duyệt mà nó bảo đảm nắm bắt được các mẫu phát triển qua cácbước trung gian;
Khách hàng có góp ý trở lại (trong vòng 15 đến 30 ngày);
Nhà thầu sau khi xem xét lại các ý kiến của khách hàng và nộp lại bản cuối cùng
để duyệt (cũng trong vòng 15 tới 30 ngày)
• Các kinh nghiệm cụ thể:
Các kinh nghiệm ban đầu thường thấy thông qua thiết kế trên giấy và qua đóthường rất tóm tắt
Vi phạm về sự mã hoá muộn trong vòng đời dự án;
Việc tích hợp hệ thống gây ra ác mộng về các vấn đề thể hiện không nhìn thấytrước và sự nhập nhằng về các giao diện giữa chúng;
Thờì gian và tài chính là các áp lực cho hệ thống làm việc;
Một sản phẩm không tối ưu nhưng đã chót làm và không có thời gian thiết
kế lại;
Một sản phẩm rất yếu ớt, khó bảo trì và phân phối rất muộn mằn
2 PHÁT TRIỂN PHẦN MỀM TRUYỀN THỐNG (tiếp theo)
Trang 25• Tóm tắt các vấn đề về thực tiễn:
Việc tích hợp kéo dài và phá vỡ thiết kế sau này;
Sự giải quyết rủi ro quá muộn;
Có yêu cầu phân rã theo chức năng;
Mối quan hệ giữa các cổ đông đối nghịch nhau;
Chỉ tập trung vào tài liệu và các cuộc họp rà soát lại
• Năm cải tiến cần thiết đối với mô hình thác nước:
Hoàn thiện thiết kế chương trình trước khi bắt đầu phân tích và mã hóa (xâydựng) chương trình;
Bảo trì hiện hành và hoàn thiện tài liệu;
Làm các nhiệm vụ hai lần nếu có thế;
Lập kế hoạch, điều khiển và theo dõi kiểm tra;
Trao đổi sâu sát và thu hút khách hàng
Trang 262 PHÁT TRIỂN PHẦN MỀM TRUYỀN THỐNG (tiếp theo)
• Danh sách dẫn đầu 10 độ đo phần mềm công nghiệp của Boehm:
Sửa chữa sau khi đã phân phối tốn kém hơn 100 lần so với sửa ngay từ đầu;
Bạn có thể nén lịch trình thời gian kế hoạch tới 25%, nhưng không thể nhiềuhơn được;
Với $1 cho phát triển thì cần $2 cho bảo trì;
Chi phí chủ yếu là hàm của dòng chương trình nguồn;
Sự thay đổi con người sẽ gây ra sự khác nhau rất lớn của năng suất (inproductivity);
Tỷ lệ chi phí giữa phần mềm và phần cứng là 85:15 và ngày càng tăng lên;
Chỉ có khoảng 15% của các chi phí phần mềm là liên quan đến lập trình;
Các hệ thống phần mềm chi phí gấp 3 lần so với chương trình phần mềm riêng
rẽ Các sản phẩm phần mềm hệ thống chi phí còn gấp cả 9 lần;
Duyệt qua phần mềm chỉ bắt được 60% lỗi;
80% đóng góp đến từ 20% các nhà góp vốn
• Luật 80/20:
80% công nghệ tiêu thụ bởi 20% yêu cầu;
80% chi phí phần mềm tiêu thụ bởi 20% thành phần;
80% sai sót là nguyên nhân gây ra bởi 20% thành phần;
80% phần mềm bị loại bỏ và phải làm lại là do nguyên nhân của 20% sai sót;
80% nguồn tài nguyên tiêu thụ là do 20 % thành phần;
80% công nghệ là hoàn thành bởi 20% công cụ;
80% sự tiến bộ của dự án được thực hiện bởi 20 % con người
Trang 27• Nền kinh tế phần mềm;
• Sự ước lượng chi phí phần mềm thực tế
Trang 28• Mô hình chi phí phần mềm bao gồm 5 tham số:
Kích cỡ của sản phẩm cuối thông thường số dòng chương trình nguồn
Tiến trình xử lý để đưa ra sản phẩm cuối
Khả năng của nhân sự
Môi trường – Các công cụ và kỹ thuật
Chất lượng yêu cầu của sản phẩm cuối
• Công thức lượng giá chi phí:
Chi phí = (Nhân sự)(Môi trường)(Chất lượng)(Kích thướctiến trình)
• Ba giai đoạn phát triển phần mềm được thể hiện ở hình vẽ sau:
3.1 NỀN KINH TẾ PHẦN MỀM
Trang 29- Cải tiến tiến trình
- Dựa vào bao bọc
Sự phù hợp môi trường, kích thước và các công nghệ tiến trình
Hiệu năng của dự án điển hình
Khả năng dự đoán tồi
Luôn luôn:
Vượt quá ngân sách
Vượt quá lịch trình
Không có khả năng dự đoán
Không thường xuyên:
Đúng ngân sách Đúng lịch trình
Có khả năng dự đoán
Thường xuyên:
Đúng ngân sách Đúng lịch trình
Trang 30• Đánh giá các điểm chức năng:
Sự biến đổi chương trình nguồn làm cơ sở cho việc đánh giá;
Sử dụng các điểm chức năng “Function Points” để đánh giá chi phí:
Các dữ liệu đầu vào của người sử dụng
Các dữ liệu đầu ra
Nhóm các dữ liệu cục bộ
Giao diện dữ liệu ngoài
Các dạng câu hỏi ngoài
• Độ chính xác: Toàn bộ độ chính xác của việc đánh giá chi phí phần mềm hiện tạiđược mô tả như là "… 20 % sự chính xác , 70 % về thời gian…“
• Tiến trình chi phí nổi bật được mô tả như sau:
Các rủi ro, sự lựa chọn, trả giá, thay thế
“Dự án này phải có giá trị là $X để chiến thắng trong nền thương mại này”
3.2 SỰ ƯỚC LƯỢNG CHI PHÍ PHẦN MỀM THỰC TẾ
Trang 31• Các thuộc tính của đánh giá tốt:
Việc đánh giá phải được nhận thức và hỗ trợ bởi mọi các thành viên tham gia
Việc đánh giá dựa vào mô hình xác định chuẩn với nền tảng tin cậy;
Việc đánh giá dựa trên các kinh nghiệm của các dự án trước;
Việc đánh giá được chi tiết cụ thể và đặc biệt quan tâm hiểu biết tới lĩnh vựcrủi ro
Trang 32• Năm tiêu chí cải tiến nền kinh tế phần mềm:
Giảm kích cỡ của phần mềm;
Cải tiến tiến trình phát triển phần mềm;
Sử dụng các nhân sự có kỹ năng và nhóm đội tốt hơn;
Sử dụng môi trường, công cụ phát triển phần mềm tốt hơn;
Thoả hiệp, cân nhắc, hoặc thúc đẩy các mặt còn yếu dựa vào ngưỡng chấtlượng
• Giảm kích thước phần mềm:
Lựa chọn ngôn ngữ lập trình;
Áp dụng các phương pháp hướng đối tượng và mô hình hoá trực quan;
Sử dụng lại phần mềm;
Các thành phần phần mềm thương mại hoá
• So sánh các điểm chức năng qua ví dụ ngôn ngữ:
1,000,000 dòng lệnh - ngôn ngữ Assembly;
400,000 dòng lệnh - ngôn ngữ C;
220,000 dòng lệnh - ngôn ngữ Ada 83;
175,000 dòng lệnh - ngôn ngữ Ada 95 hoặc C++
4 CẢI TIẾN NỀN KINH TẾ PHẦN MỀM
Trang 33• Phương pháp hướng đối tượng và mô hình trực quan:
Việc nắm bắt tính trừu tượng hoá của phần mềm dẫn đến giao tiếp và làm việctheo đội nhóm tốt hơn;
Việc tích hợp liên tục thường xuyên dẫn đến nhận biết các rủi ro sớm và hạnchế chi phí chỉnh sửa;
Kiến trúc hướng đối tượng đảm bảo phân tách các thành phần của hệ thống vàtạo bức tường ngăn cản các sự cố lan truyền nhằm giảm chi phí;
Mô hình hướng đối tượng và trực quan tạo ra kiến trúc vững chắc nhằm tạo rasản phẩm sạch và giảm chi phí
Trang 34• Chi phí sử dụng lại và lập lịch:
1 giải pháp dự án: $N và M tháng
2 giải pháp dự án: trên 50% chi phí và 100% thời gian
5 giải pháp dự án: trên 125% chi phí và trên 150% thời gian
Giải pháp nhiều dự án: Thao tác với giá trị cao tên đơn vị
đầu tư, các sản phẩm thương mại điển hình
Trang 35Xu hướng nền kinh tế phần mềm trong những năm gần đây như thế nào?
Trang 36TÓM LƯỢC CUỐI BÀI
• Phát triển phần mềm thông thường ngày nay không đáng tincậy và lạc hậu
• Mô hình thác nước cần cải tiến để làm việc thỏa đáng Thựctiễn thông thường đảm bảo các tiêu chuẩn cho việc cải tiếntrong tương lai và thay đổi các phương pháp phát triểnphần mềm
• Đánh giá phần mềm phải dựa vào việc phân tích cụ thể vàđược hỗ trợ bởi các thành viên
• Cải tiến nền kinh tế phần mềm phải dựa vào việc giảm kíchthước, sử dụng các thành viên có kỹ năng và cân đối các chỉtiêu phần mềm tương lai