14/9/2009
1
Chương 7
Quản lý dự án
Vai trò, mục tiêu quản lý dự án
—
Vấn đề thường xảy ra với dự án
—
Không hoàn thành đúng hạn
—
Xây dựng vượt quá dự toán
—
Chất lượng không đảm bảo
—
Các yếu tố quản lý
—
Thời gian: đúng thời hạn
—
Chi phí: không vượt dự toán
—
Sản phẩm: đầy đủ các chức năng đã định
—
Thỏa mãn yêu cầu của khách hàng
Quản lý dự án – vai trò
Bộ ba ràng buộc
—
Mọi dự án bị ràng buộc theo nhiều cách, do:
—
Các mục tiêu về phạm vi: dự án tìm cách đạt được
cái gì?
—
Các mục tiêu về thời gian: dự án mất bao lâu để
hoàn tất?
—
Các mục tiêu về chí phí: sẽ tốn kém bao nhiêu?
—
Nhiệm vụ của người quản lý dự án là cân đối các mục
tiêu thường xung đột nầy.
Quản lý dự án – trách nhiệm
Trách nhiệm của người quản lý
—
Quản lý thời gian
—
Quản lý tài nguyên
—
Quản lý sản phẩm
—
Quản lý rủi ro
—
Tổ chức cách làm việc
14/9/2009
2
Quản lý dự án – hoạt động
Các hoạt động quản lý
—
Xác định dự án: viết đề án
—
Lập kế hoạch và lập lịch
—
Tổ chức dự án
—
Giám sát, cân đối kế hoạch, lịch trình
—
Quản lý: rủi ro, thay đổi, cấu hình.
—
Viết báo cáo dự án
Xác định dự án
Xác định dự án
—
Mục tiêu, ý nghĩa
—
Hình thành dự án: hiểu dự án, đấu thầu,...
—
Cơ sở để lập kế hoạch, phát triển
—
Chuẩn bị viết đề án
—
Xác định bài toán
—
Thu thập, nghiên cứu tài liệu nghiệp vụ
—
Xác định nguồn lực sơ bộ của dự án
—
Viết phác thảo
Xác định dự án – viết đề án
—
Tài liệu mô tả dự án – Nội dung
—
Mô tả dự án
—
Mục đích và mục tiêu của dự án
—
Phạm vi dự án
—
Nguồn lực thực hiện dự án
—
Các điểm mốc thời gian quan trọng
—
Kinh phí: phân theo giai đoạn
—
Lựa chọn công nghệ phát triển
—
Phần hiệu chỉnh/điểu chỉnh
14/9/2009
3
Lập kế hoạch dự án
—
Là hoạt động tốn nhiều thời gian nhất. Nó liệt kê các hành
động từ pha khởi tạo cho đến khi đưa ra được hệ thống. Kế
hoạch phải được theo dõi thường xuyên, nhất là khi có
những thông tin hoặc những yêu cầu mới xuất hiện.
—
Trong quá trình thực hiện, có nhiều loại kế hoạch được xây
dựng để hỗ trợ cho kế hoạch chính của dự án như:
—
Kế hoạch chất lượng
—
Kế hoạch thẩm tra
—
Kế hoạch quản lý cấu hình
—
Kế hoạch bảo trì
—
Kế hoạch phát triển nhân sự …
Lập kế hoạch dự án
Khái niệm
—
Quản lý dự án cần nhiều thời gian, đặc biệt là công tác
lập kế hoạch
—
Là công việc tiếp tục suốt quá trình: từ khi bắt đầu đến
bàn giao sản phẩm.
—
Được điều chỉnh thường xuyên mỗi khi có thông tin
mới
—
Nhiều kế hoạch khác cần được lập để trợ giúp kế hoạch
chính về lịch trình và ngân sách
Lập kế hoạch dự án
Các loại kế hoạch khác
Lập kế hoạch dự án – tiến trình
14/9/2009
4
Lập kế hoạch dự án – tiến trình
Tiến trình lập kế hoạch
—
Thiết lập các ràng buộc, hạn chế
—
Tiến hành đánh giá sơ bộ các tham số dự án
—
Xác định cột mốc và các xuất phẩm cần có
Lập kế hoạch dự án – tiến trình
—
Thực hiện các hoạt động lặp lại suốt tiến trình:
—
Lập lịch trình dự án
—
Khởi động hoạt động theo lịch trình
—
Theo dõi việc thực hiện
—
Ước lượng lại các tham số dự án
—
Cập nhật tiến trình
—
Thoả thuận lại về các hạn chế và xuất phẩm
—
Nếu có vấn đề: xem lại kỹ thuật và phiên bản
Lập kế hoạch dự án
Nội dung kế hoạch dự án
—
Mở đầu
—
Xác định tiến trình dự án
—
Phân tích rủi ro
—
Các yêu cầu về nguồn lực
—
Phân đoạn công việc
—
Lịch trình dự án
—
Cơ chế điều hành và báo cáo
Lập kế hoạch dự án
Phân đoạn công việc – Bảng công việc
—
Là cách thức để hoàn thành mục tiêu dự án
—
Danh sách chi tiết những gì cần để hoàn thành dự án
(danh sách sản phẩm, công việc)
—
Là cơ sở để ước lượng chi phí, kinh phí dự án
—
Cơ sở để xác định nhiệm vụ giữa các cá nhân
—
Cơ sở để xây dựng lịch trình dự án
14/9/2009
5
Lập kế hoạch dự án
—
Các bước xây dựng
—
Bước 1: Viết ra sản phẩm chung nhất
—
Bước 2: Tạo danh sách sản phẩm
—
Bước 3: Tạo lập danh sách công việc, mô tả công
việc ở dưới mỗi sản phẩm mức thấp nhấtv
—
Bước 4: Đánh mã cho mỗi ô của bảng công việc
—
Bước 5: Xét duyệt lại bảng công việc
Lập kế hoạch dự án
—
Ví dụ: bảng công việc cho dự án phần mềm,
Lập kế hoạch dự án
Ước lượng công việc
—
Các yếu tố cần ước lượng
—
Kích cỡ phần mềm
—
Thời gian
—
Số người
—
Chi phí
—
Mức độ ước lượng
=> Là đầu vào cho lập lịch
Quản lý dự án - Lịch biểu
Lập lịch biểu
—
Yêu cầu đặt ra cho lập lịch
—
Lượng hóa làm cơ sở ước lượng dự án
—
Lịch trình phụ thuộc vào mô hình lựa chọn
—
Người tham gia thay đổi theo từng pha của dự án
—
Cần phải phân tích công việc chi tiết hơn và lập lịch để
kiểm soát
14/9/2009
6
Quản lý dự án - Lịch biểu
Mục tiêu của lập lịch
—
Mục tiêu của lập lịch là kiểm soát công việc
—
Xác định nhiệm vụ
—
Thời điểm bắt đầu, thời điểm kết thúc
—
Người thực hiện (số người, yêu cầu,...)
—
Ràng buộc (mối liên hệ giữa các nhiệm vụ)
=> Cần có độ mềm dẻo về thời gian
Quản lý dự án - Lịch biểu
Quy trình lập lịch biểu
Quản lý dự án - Lịch biểu
Nhiệm vụ được giao phải:
—
Là công việc có kết quả bàn giao
—
Quy trách nhiệm cho một cá nhân
—
Có hạn định về thời gian
—
Có thể đo được (tiến độ, chất lượng)
Quản lý dự án - Lịch biểu
Xác định ràng buộc nhiệm vụ
—
Các ràng buộc về tài nguyên (con người, thiết bị)
—
Ràng buộc về tiến trình
—
Các nhiệm vụ phải được kết thúc trước
các nhiệm
vụ có thể được thực thi kế tiếp
—
Thời gian thực hiện
—
Giảm tối đa các nhiệm vụ phụ thuộc
—
Thực hiện các nhiệm vụ song song khi có thể
14/9/2009
7
Quản lý dự án - Lịch biểu
Nội dung của hoạt động lập lịch
—
Phân dự án thành các nhiệm vụ và ước lượng thời
gian, nguồn lực thực hiện chúng
—
Tổ chức thực hiện đồng thời các nhiệm vụ để tối ưu
luồng công việc
—
Hạn chế sự phụ thuộc giữa các nhiệm vụ để tránh tác
động gây chậm trễ lẫn nhau
—
Sắp xếp các nhiệm vụ để tận dụng các nguồn lực
khác: người, thiết bị,..
=> Phụ thuộc vào trình độ & kinh nghiệm người quản lý
Quản lý dự án - Lịch biểu
Khuyến cáo cho lập lịch
—
Giảm tối đa thời gian thừa
—
Tận dụng tối đa các nguồn lực
—
Điều phối tài nguyên (chỗ thừa/thiếu)
—
Xem xét các hạn chế
—
Là một quy trình lặp lại
—
Sử dụng các công cụ tự động
Quản lý dự án - Lịch biểu
—
Ví dụ
Tổ chức dự án
14/9/2009
8
Tổ chức dự án
—
Lập tổ dự án (vẽ thành sơ đồ, mô tả)
—
Chức năng nhiệm vụ của từng bộ phận
—
Phân bổ tài nguyên cho từng bộ phận
Tổ chức dự án – lựa chọn nhân sự
Lựa chọn nhân sự
—
Con người là yếu tố quan trọng nhất trong phát
triển phần mềm
—
Các thành viên khác nhau về năng lực
—
Một số các công việc đặc thù không phải ai cũng
làm được
Nhân sự dự án
Nhóm làm việc (teamwork)
—
Là mô hình hiện tại cho hầu hết các dự án phần mềm:
—
Khả năng chuyên nghiệp hóa cao
—
Hiệu quả trong quản lý, giao tiếp và điều hành
—
Một software project team được tạo ra từ nhiều nhóm
con (sub-team)
—
Các nhóm con không nhất thiết là một nhóm người
mà có thể là 1 người
—
Các nhóm con không nhất thiết tồn tại suốt quá trình
của một dự án phần mềm
Nhân sự dự án
Project 2
Project 1
Team
1
Team
2
Team
3
Team
4
Team
5
Team
6
Project 3
Công ty phần mềm
14/9/2009
9
Nhân sự dự án – các chức danh
1.
System analysis
2.
Planning Team
3.
Requirements Team
4.
System Design Team
5.
Implementation Team
6.
Tesing & Intergration Team
7.
Training Team
8.
Delivery & Installation Team
9.
Maintenance Team
10.
Quality Assurance Team
11.
Metrics Team
12.
Documentation Team
13.
System Administration Team
14.
Reuse & Reengineering Team
Nhân sự dự án
System Analysis System Analysis
—
Xác định tính khả thi của dự án
—
Phân tích chi phí (Cost analysis)
—
Dự đoán lợi nhận (Estimate revenues)
—
Tiên liệu các khó khăn về kỹ thuật và công nghệ
—
Sau khi nghiên cứu khả thi, nhóm này sẽ làm việc
với Requirement Team để nhận feedbacks
—
Nếu dự án được phát triển theo mô hình tương tác
cao như Prototype/Spiral model thì tính tương tác và
feedback là rất quan trọng kể cả với các nhóm khác
Nhân sự dự án
Planning TeamPlanning Team
—
Nhóm này có nhiệm vụ xây dựng tổng thể tất cả các kế
hoạch quản trị dự án và bảo đảm các tiến trình diển ra
đúng tiến độ đã định
•
Xây dựng các kế hoạch thực hiện
•
Lập các time frame cho các tiến trình
•
Kế hoạch sử dụng tài nguyên của hệ thống bao gồm cả
nhân lực
•
Các kế hoạch dự phòng và điều chỉnh khi có sự cố
Nhân sự dự án
Requirement Team Requirement Team
—
Tiếp xúc khách hàng và xác định đầy đủ, hoàn chỉnh và
chính xác các yêu cầu cho dự án
•
Dùng các phương thức gặp gở chính thức và bên lề để xác
định các yêu cầu của hệ thống
•
Nếu không có khách hàng, có thể tiếp xúc với các user tiềm
năng
—
Sau khi xác định các yêu cầu, nhóm này sẽ làm việc
với System Design Team để nhận các feedback.
—
Nếu dự án được phát triển theo mô hình tương tác cao
như Prototype/Spiral model thì tính tương tác và
feedback là rất quan trọng kể cả với các nhóm khác
14/9/2009
10
Nhân sự dự án
System Design TeamSystem Design Team
—
Xây dựng thiết kế chi tiết của hệ thống sau khi các yêu
cầu đã được xác định.
—
Nếu sử dụng mô hình Waterfall, nhóm này phải
feedback cho nhóm Requirement những khó khăn nếu
có.
—
Sau khi hoàn chỉnh thiết kế, nhóm này phải cộng tác
với Implementation Team để nhận feedback.
—
Nếu dự án được phát triển theo mô hình tương tác cao
như Prototype/Spiral model thì tính tương tác và
feedback là rất quan trọng kể cả với các nhóm khác
Nhân sự dự án
Implementation Team Implementation Team
—
Phát triển hệ thống theo thiết kế đã có.
•
Coding
•
Kiểm tra cấp Module
—
Sau khi hoàn tất chương trình, nhóm này sẽ cộng tác
với nhóm Tesing & Integration để kiểm tra các module
—
Nếu dự án được phát triển theo mô hình tương tác cao
như Prototype/Spiral model thì tính tương tác và
feedback là rất quan trọng kể cả với các nhóm khác
Nhân sự dự án
Testing & Integration TeamTesting & Integration Team
—
Xây dựng thiết kế chi tiết của hệ thống sau khi các yêu
cầu đã được xác định.
—
Nếu sử dụng mô hình Waterfall, nhóm này phải
feedback cho nhóm Requirement những khó khăn nếu
có.
—
Sau khi hoàn chỉnh thiết kế, nhóm này phải cộng tác với
Implementation Team để nhận feedback.
—
Nhóm này có thể tiếp nhậncác module rời rạc và kiểm
tra sau đó tích hợp thành hệ thống hoàn chỉnh.
Nhân sự dự án
—
Nếu dự án được phát triển theo mô hình tương tác cao
như Prototype/Spiral model thì tính tương tác và
feedback là rất quan trọng kể cả với các nhóm khác
—
Nhóm này cũng có vai trò trong Interface Control
Document để đặc tả các giao diện và giao tiếp giữa các
thành phần trong hệ thống
TrainningTrainning Team Team
—
Chuẩn bị các công cụ và tài liệu cho việc trainning cho
người dùng
•
Kế hoạch trainning
•
Các tài liệu giảng dạy
14/9/2009
11
Nhân sự dự án
Delivery & Installation TeamDelivery & Installation Team
—
Nhiệm vụ là cài đặt hệ thống cho khách hàng và các hỗ
trợ kỹ thuật trong cài đặt vận hành hệ thống.
Maintenance Team Maintenance Team
—
Bảo trì hệ thống sau khi chuyển giao và cài đặt
•
Cập nhật sửa chữa
•
Nâng cấp mở rộng
—
Cộng tác chặt chẻ với nhóm implementation để thực
hiện việc maintenance
Nhân sự dự án
Quality Assurance TeamQuality Assurance Team
—
Nhóm này có 2 nhiệm vụ
1.
Thiết lập các tiêu chuẩn cho các quá trình sản xuất cũng
như tiêu chuẩn thực hiện của sản phẩm phần mềm
2.
Cung cấp các cơ chế kiểm tra, kiểm soát nhằm đánh giá
khả năng thỏa mãn các tiêu chuẩn tương ứng của các
nhóm làm việc.
—
Các tiêu chuẩn này dùng trong nội bộ và không chia sẻ với
khách hàng.
—
Các tiêu chuẩn có thể được công bố khi cần thiết, vì vậy
cần được lưu trữ và báo cáo cho project manager để hoạt
động với bộ phận Q&A
Nhân sự dự án
Metrics Team Metrics Team
—
Lưu trữ các thông tin thống kê về các hoạt động của các
Team trong dự án.
•
Số lượng các yêu cầu maintenance
•
Số lượng thực hiện dịch vụ maintenance
•
Số dòng code được viết
•
Thời gian thực hiện từng công việc
—
Nhóm này làm việc với hầu hết các nhóm để cung cấp
báo cáo về chất lượng, hiệu quả, đồng thời feedback
cho các nhóm đó về hiệu quả công việc.
Nhân sự dự án
Documentation TeamDocumentation Team
—
Nhóm này thực hiện các hoạt động thiết lập các tài liệu
cho hệ thống
•
Tài liệu về phân tích, thiết kế, hiện thực, source
code,..
•
Tài liệu hổ trợ : userguide, manual, support
document