Giáo trình Kỹ nghệ phần mềm - Bài 3: Quản lý dự án phần mềm
Mục tiêu
• Giải thích các công việc chính của người quản
lý dự án (PM)
• Giới thiệu quản lý dự án nói chung và đặc thù
của quản lý dự án phần mềm
• Nêu qui trình lập kế hoạch dự án
• Biểu diễn lịch trình dự án dưới dạng sơ đồ
• Giới thiệu khái niệm rủi ro và qui trình quản lý
rủi ro
tổ chức để tạo ra các kết quả rõ ràng – Để người quản lý có thể đánh giá được tiến độ • Cột mốc (milestone) là điểm cuối của một hoạt động qui trình. • Sản phẩm (deliverable) là kết quả dự án có thể chuyển giao được cho khách hàng • Qui trình thác nước có sẵn các cột mốc dự án Hoạt động Các cột mốc trong qui trình RE Nghiên cứu khả thi Phân tích yêu cầu Làm bản mẫu Nghiên cứu thiết kế Đặc tả yêu cầu Cột mốc Báo cáo khả thi Yêu cầu người dùng Báo cáo đánh giá Thiết kế kiến trúc Yêu cầu hệ thống Lập lịch trình dự án • Chia dự án thành các tác vụ và ước lượng thời gian và tài nguyên cần thiết để hoàn thành từng việc • Tổ chức thực hiện song song các tác vụ để tối ưu việc sử dụng con người, tài nguyên • Giảm thiểu sự phụ thuộc giữa các tác vụ để tránh chậm chễ dây chuyền • Phụ thuộc vào trực giác và kinh nghiệm của người QLDA Qui trình lập lịch dự án Xác định các hoạt động Xác định sự phụ thuộc giữa các hoạt động Ước lượng tài nguyên cho các hoạt động Phân bổ người vào các hoạt động Lập biểu đồ lịch trình dự án Yêu cầu phần mềm Biểu đồ lịch trình Vấn đề với lập lịch trình • Đánh giá độ khó của tác vụ là không đơn giản – Do đó khó ước lượng chính xác chi phí để phát triển • Năng suất không tỷ lệ thuận với số người làm việc trong dự án – Thêm người vào dự án có thể làm chậm thêm • Mất thời gian trao đổi, giải thích cho người mới • Phải luôn có dự phòng khi lập kế hoạch – Hầu như luôn có điều không lường trước xảy ra Mạng công việc và biểu đồ lịch trình • Là các hình vẽ để mô tả lịch trình dự án • Cho thấy các tác vụ cụ thể của dự án – Tác vụ không nên quá nhỏ • Nên để 1-2 tuần để hoàn thành một tác vụ • Mạng công việc cho thấy sự phụ thuộc giữa các tác vụ và đường trọng yếu (critical path) • Biểu đồ lịch trình thể hiện diễn biến của dự án trên lịch Thời gian và phụ thuộc tác vụ Tác vụ Thời gian (days) Phụ thuộc (Mốc) T1 8 T2 15 T3 15 T1 (M1) T4 10 T5 10 T2, T4 (M2) T6 5 T1, T2 (M3) T7 20 T1 (M1) T8 25 T4 (M5) T9 15 T3, T6 (M4) T10 15 T5, T7 (M7) T11 7 T9 (M6) T12 10 T11 (M8) Mạng tác vụ Biểu đồ lịch trình dự án Phân bổ nhân lực Quản lý Rủi ro Dự án Quản lý rủi ro • Xác định các rủi ro và kế hoạch giảm thiểu tác động của chúng đến dự án • Rủi ro là xác suất một tình huống bất lợi sẽ xảy ra – Rủi ro dự án ảnh hưởng đến lịch trình hoặc tài nguyên dự án – Rủi ro sản phẩm ảnh hưởng đến chất lượng và hiệu năng của phần mềm đang được phát triển – Rủi ro kinh doanh ảnh hưởng đến tổ chức phát triển hoặc đặt hàng làm phần mềm Rủi ro phần mềm Rủi ro Ảnh hưởng Mô tả Thay đổi nhân sự Dự án Nhân viên kinh nghiệm bỏ việc trước khi dự án kết thúc Thay đổi quản lý Dự án Lãnh đạo mới ưu tiên việc khác, không ưu tiên dự án như trước Phần cứng chưa có Dự án Phần cứng, phương tiện để thực hiện dự án không đến đúng hạn Thay đổi yêu cầu Sản phẩm và Quá nhiều thay đổi yêu cầu, nhiều hơn dự kiến dự án Đặc tả chậm Sản phẩm và dự án Đặc tả giao diện quan trọng giữa các module không hoàn thành đúng tiến độ Ước lượng thấp chi phí Sản phẩm và dự án Đánh giá kích thước hệ thống thấp hơn thực tế Công cụ CASE kém Sản phẩm Công cụ CASE hỗ trợ dự án không hoạt động như mong đợi Công nghệ thay đổi Kinh doanh Công nghệ nền tảng của hệ thống bị thay đổi bởi các công nghệ mới hơn Hoàn thiện sản phẩm Kinh doanh Sản phẩm cạnh tranh được tung ra trước khi hệ thống hoàn thành Qui trình quản lý rủi ro • Xác định rủi ro – Cho cả 3 loại rủi ro: dự án, sản phẩm, và kinh doanh • Phân tích rủi ro – Đánh giá tác động của từng rủi ro • Lập kế hoạch đối phó rủi ro – Lên kế hoạch tránh hoặc giảm thiểu tác động cho từng rủi ro • Theo dõi rủi ro – Luôn theo dõi rủi ro trong suốt quá trình thực hiện dự án Qui trình quản lý rủi ro Hoạt động Xác định rủi ro Phân tích rủi ro Kế hoạch đối phó Theo dõi rủi ro Cột mốc Danh sách rủi ro tiềm tàng Danh sách rủi ro sắp xếp theo ưu tiên Kế hoạc tránh rủi ro và kế hoạch dự phòng Đánh giá rủi ro Xác định rủi ro • Rủi ro công nghệ • Rủi ro con người • Rủi ro tổ chức • Rủi ro yêu cầu • Rủi ro ước lượng Rủi ro và phân loại Loại rủi ro Rủi ro có thể Công nghệ CSDL không xử lý đồng thời được nhiều giao dịch như mong đợi; Thành phần phần mềm sử dụng lại có nhiều khiếm khuyết; Con người Không tuyển được người có kỹ năng và kinh nghiệm cần thiết; Các thành viên chủ chốt bị ốm hoặc không tham gia vào dự án được vào thời điểm quan trọng; Khóa học đào tạo cho nhân viên không có; Tổ chức Tổ chức tái cơ cấu do đó đội ngũ lãnh đạo chịu trách nhiệm dự án thay đổi Tổ chức gặp vấn đề tài chính nến phải cắt giảm ngân sách của dự án Công cụ Công cụ sinh mã chương trình không hiệu quả Công cụ không tích hợp được vào môi trường phát triển Yêu cầu Thay đổi yêu cầu lớn, gây ra phần lớn công việc phải làm lại Khách hàng không hiểu rõ tác động của việc thay đổi yêu cầu Ước lượng Thời gian cần thiết để phát triển phần mềm được được ước lượng thấp quá Tỷ lệ lỗi bị đánh giá thấp quá Kích cỡ phần mềm bị ước lượng thấp quá Phân tích rủi ro • Đánh giá xác suất và độ nghiêm trọng của mỗi rủi ro • Xác xuất có thể phân loại là rất thấp, thấp, trung bình, cao, và rất cao • Tác động của rủi ro có thể phân loại: thảm họa, nghiêm trọng, chấp nhận được, và không đáng kể Phân tích rủi ro Rủi ro Xác xuất Tác động Tổ chức gặp vấn đề và phải cắt giảm ngân sách dự án Thấp Thảm họa Không tuyển được người đáp ứng công việc Cao Thảm họa Nhân viên chủ chốt bị ốm, không đi làm được Trung bình Nghiêm trọng Thành phần phần mềm cần sử dụng lại bị lỗi Trung bình Nghiêm trọng Yêu cầu thay đổi dẫn đến phải làm lại phần lớn công việc Trung bình Nghiêm trọng Tổ chức tái cấu trúc nên người quản lý thay đổi Cao Nghiêm trọng Phân tích rủi ro Rủi ro Xác suất Tác động CSDL không xử lý đồng thời được nhiều giao dịch như mong đợi Trung bình Nghiêm trọng Thời gian cần thiết để phát triển phần mềm được được ước lượng thấp quá Cao Nghiêm trọng Công cụ không tích hợp được vào môi Cao Chấp nhận được trường phát triển Customers fail to understand the impact of requirements changes. Trung bình Chấp nhận được Khóa học đào tạo cho nhân viên không có; Trung bình Chấp nhận được Tỷ lệ lỗi bị đánh giá thấp quá Trung bình Chấp nhận được Kích cỡ phần mềm bị ước lượng thấp quá Cao Chấp nhận được Công cụ sinh mã chương trình không hiệu quả Trung bình Không đáng kể Lập kế hoạch rủi ro • Cân nhắc từng rủi ro và phát triển chiến lược quản lý rủi ro đó • Chiến lược tránh rủi ro – Giảm xác suất xảy ra rủi ro • Chiến lược giảm thiểu tác động – Giảm tác động của rủi ro lên dự án hoặc sản phẩm • Kế hoạch dự phòng – Nếu rủi ro xảy ra thì có sẵn kế hoạch dự phòng để đối phó với rủi ro Chiến lược quản lý rủi ro Rủi ro Chiến lược Vấn đề tuyển dụng Thông báo khách hàng về những khó khăn này và khả năng chậm chễ, xem xét khả năng mua các thành phần có sẵn Nhân viên ốm Tổ chức lại đội dự án sao cho công việc giao nhau nhiều để mọi người hiểu công việc của nhau hơn Thành phần bị kiếm khuyết Thay thế bằng các thành phần có độ tin cậy tốt hơn Chiến lược quản lý rủi ro Rủi ro Chiến lược Yêu cầu thay đổi Suy ra thông tin có dấu vết để đánh giá tác động của thay đổi yêu cầu, áp dụng triệt để che giấu thông tin trong thiết kế Tái cơ cấu tổ chức Chuẩn bị tài liệu chứng tỏ dự án đang có đóng góp rất quan trọng cho các mục tiêu kinh doanh CSDL chậm Điều tra khả năng mua cơ sở dữ liệu mạnh hơn Ước lượng thời gian phát triển thiếu Điều tra việc mua các thành phần có sẵn, hoặc sử dụng các công cụ sinh mã Theo dõi rủi ro • Thường xuyên đánh giá từng rủi ro xem nguy cơ của chúng tăng hay giảm • Đồng thời đánh giá xem tác động của chúng có thay đổi hay không • Tất cả rủi ro cần được thảo luận ở các cuộc họp tiến độ dự án Dấu hiệu rủi ro Loại rủi ro Dấu hiệu Công nghệ Chuyển giao phần cứng hoặc phần mềm hỗ trợ muộn, có nhiều vấn đề công nghệ đã được công bố Con người Đạo đức kém, quan hệ giữa các thành viên dự án kém Tổ chức Tin đồn nhảm về tổ chức, thiếu hành động từ ban quản lý. Công cụ Thành viên ngại sử dụng công cụ, kêu ca về các công cụ CASE, đòi hỏi máy cấu hình cao hơn Yêu cầu Quá nhiều báo cáo thay đổi yêu cầu, phàn nàn của khách hàng Ước lượng Không làm xong đúng tiến độ, không sửa lỗi đã báo cáo Các điểm chính • Quản lý dự án tốt là then chốt để dự án thành công • Thuộc tính vô hình của phần mềm làm việc quản lý khó khăn • Người QLDA có nhiều vai trò, nhưng các hoạt động quan trọng nhất là lập kế hoạch, ước lượng, và lập lịch trình • Lập kế hoạch và ước lượng là các qui trình lặp và các công việc này cần được tiến hành liên tục trong suốt thời gian thực hiện dự án Các điểm chính • Một mốc dự án là một tình trạng dự án được thể hiện qua một báo cáo tiến độ cho lãnh đạo • Lập lịch trình dự án liên quan đến việc chuẩn bị các sơ đồ hình vẽ thể hiện các hoạt động dự án, khoảng thời gian và phân bổ nhân lực thực hiện chúng • Quản lý rủi ro là việc xác định các rủi ro có thể ảnh hưởng đến dự án và kế hoạch giảm thiểu tác động của chúng. Bài tập nhóm • Sử dụng Microsoft Project, hoặc openproj hoặc cộng cụ tương tự để lập kế hoạch cho bài tập nhóm – Phân bổ nhân lực cho 5 người – Các cột mốc và thời gian – Thể hiện đường trọng yếu (critical path) • Liệt kê các rủi ro của dự án và đưa vào công cụ trên để quản lý, theo dõi. • Từng người trong nhóm lập kế hoạch bằng các công cụ, rồi thảo luận thống nhất kế hoạch, đưa vào tài liệu bài tập nhóm. Bài tập về nhà • Vẽ sơ đồ mô hình qui trình quản lý dự án phần mềm? • Tác vụ (task), cột mốc (milestone), và sản phẩm (deliverable) quan hệ với nhau như thế nào? • Những biểu đồ nào được dùng để quản lý dự án? Chúng thay đổi như thế nào trong quá trình thực hiện dự án? • Nêu các hoạt động quản lý rủi ro và vẽ sơ đồ tiến trình quản lý rủi ro? • Nêu ví dụ về mỗi loại rủi ro của một dự án phần mềm? • Đọc về quản lý cấu hình phần mềm trong sách.
File đính kèm:
- Giáo trình Kỹ nghệ phần mềm - Bài 3 Quản lý dự án phần mềm.pdf