Chương 1 : Tổng quan 1.1 Tổng quan về dự án phần mềm 1.1 Các khái niệm chính : Trước hết chúng ta cùng nhắc lại một số khái niệm về dự án và dự án phần mềm Một dự án là một tổ chức tạm thời được dẫn dắt bởi một nguời quản trị để đáp ứng các yêu cầu về chức năng, chất lượng, thời hạn và chi phí đã đuợc xác định. Một dự án phần mềm là một dự án trong đó sản phẩm cuối là phần mềm, hoặc những dịch vụ liên quan mật thiết đến công nghệ thông tin. Quản lý dự án phần mềm là một tập các hoạt động để đạt đuợc mục đích đã đặt ra đối với dự án phần mềm; đồng thời thoả mãn các điều kiện đòi hỏi về chất luợng, thời hạn và giá thành. Đó là sự kết hợp chặt chẽ giữa kiến thức, kinh nghiệm và công cụ.
Đặc điểm của dự án phần mềm : • Phần mềm là vô hình. • Phần mềm được phát triển bởi trí tuệ con người. • Vấn đề làm việc tập thể là vô cùng quan trọng. Các yếu tố chính của một dự án phần mềm : • Yêu cầu ( Requirement ).
-6- LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Quản lý dự án phần mềm trên Web 1.2 Các công cụ hỗ trợ quản lý dự án phần mềm hiện nay : Trong xu thế phát triển hiện nay, các phần mềm chuyên dùng cho việc lập kế hoạch và quản lý dự án đã xuất hiện ở nước ta bằng nhiều con đường khác nhau. Các phần mềm này hỗ trợ quản lý dự án nói chung, không phân biệt dự án phần mềm hay dự án xây dựng… Một trong số đó có thể kể đến là Microsoft Project 2002 chạy trên máy đơn. Ngoài ra, còn có rất nhiều các công cụ hỗ trợ tính toán, ước lượng chi phí và thời gian trong quản lý dự án phần mềm. Chúng vận dụng lý thuyết về “Giá trị thu được” (EV) để đưa ra những dư đoán.
Các công cụ này có thể được tìm thấy tại http://www.mil/pm/tools/tools.2 Sơ đồ mạng công việc : 1.1 Khái niệm : Là đồ thị biểu diễn thứ tự, sự phụ thuộc của các công việc của đề án dưới dạng mạng. o Thể hiện chuỗi công việc với thứ tự thực hiện cụ thể. o Công việc trước chuyển giao kết quả tường minh cho công việc sau. Mỗi nút trong sơ đồ mạng công việc là một công việc, các mũi tên biểu diễn mối quan hệ phụ thuộc giữa các công việc.
Hai nút đặc biệt START và END có thời gian thực hiện là 0. Ràng buộc: Mỗi công việc( nút ) trên sơ đồ mạng công việc phải có một công việc trước và một công việc sau ngoại trừ công việc đầu và công việc cuối. Các mối quan hệ không được tạo thành chu trình. Đường đi là tập hợp các nút theo mũi tên bắt đầu từ nút START và kết thúc tại END.
-7- LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Quản lý dự án phần mềm trên Web 1.2 Ký hiệu : ES EF ID SLACK D LS LF ID : Tên công việc SLACK : Độ thả nổi D : (Duration) thời gian thực hiện công việc 1.3 Quan hệ phụ thuộc giữa các công việc : Có bốn loại quan hệ phụ thuộc giữa các công việc : o Finhish-to-Start (FS): Công việc A kết thúc thì công việc B mới bắt đầu. A B o Start-to-Start(SS) : Khi công việc A bắt đầu thì công việc B mới bắt đầu A B o Finish-toFinish(FF): Khi công việc A kết thúc rồi thì công việc B mới kết thúc -8- LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Quản lý dự án phần mềm trên Web A B o Start-to-Finish(SF) : Khi công việc A bắt đầu rồi thì công việc B mới được kết thúc A B 1.4 Các định nghĩa: ES ( Earliest Start ) : là thời gian bắt đầu sớm nhất cho một công việc mà tại thời điểm đó mọi công việc trước nó đã kết thúc. LS ( Latest Start ) : là thời gian bắt đầu trễ nhất cho một công việc mà không làm trễ sự hoàn tất của dự án LF ( Latest Finish ) là thời gian kết thúc trễ nhất cho một công việc mà không làm trễ sự hoàn tất của dự án. EF ( Earliest Finish ) là thời gian kết thúc sớm nhất cho một công việc mà tại thời điểm đó mọi công việc trước nó đã kết thúc.
Đường găng : ( Critical Path Method ) là đường dài nhất đi từ nút bắt đầu ( START ) đến nút kết thúc ( END ) của dự án. Đây chính là thời gian cần để dự án hoàn thành. Nó là một công cụ quan trọng để giúp tiên đoán thời gian hoàn tất dự án không bị trễ hạn. Mọi công việc trên đường găng đều có: LF(công việc) – EF(công việc) = 0 -9- LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Quản lý dự án phần mềm trên Web Gần đường găng: là đường có các công việc có độ thả nổi nhỏ và nguy cơ thành đường găng.
Độ thả nổi công việc: Các công việc không thuộc đường găng có thể có độ trì hoãn về thời gian thực hiện mà không ảnh hưởng đến thời gian hoàn thành dự án. Có hai loại : o Độ thả nổi toàn bộ( Total float ) : Là thời gian tối đa mà công việc đó có thể kéo dài mà không ảnh hưởng đến thời gian hoàn thành dự án. Ký hiệu : FT(công việc) FT(A) = LS(A) – ES(A) o Độ thả nổi tự do( Free float ) : Là thời gian tối đa công việc đó có thể kéo dài mà không ảnh hưởng đến các công việc sau nó. Ký hiệu: FF( công việc ) FF(A) = ES(nextA) – EF(A) hoặc FF(A) = min( ES(nextA) ) - EF(A) (Trong đó nextA là công việc kế sau A) ta luôn có : FF ≤ FT ¾ Cách tính thời gian ES, EF, LS, LF : Cách tính thời gian ES của một công việc thứ i: o ES của một công việc không có công việc trước luôn là ngày đầu tiên mà dự án thực thi.
( i = 1 ) o ES của một công việc chỉ có một công việc trước. ES(i) = EF(i - 1) + 1 o ES của một công việc có nhiều hơn một công việc trước: ES(i) = Max của các EF(i - 1) + 1 ¾ Cách tính thời gian EF của công việc thứ i: EF(i) = ( ES(i) + Duration(i) ) – 1 ¾ Cách tính thời gian LF của một công việc thứ i: - 10 - LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Quản lý dự án phần mềm trên Web Trước tiên gán thời gian LF của công việc cuối cùng trên sơ đồ bằng thời gian EF của công việc đó. LF của công việc chỉ có một công việc sau: LF(i) = LS( i+1 ) – 1 LF của công việc có nhiều hơn một công việc sau: LF(i) = Min của các LS(i+1) – 1 ¾ Cách tính LS của một công việc bất kỳ: LS = ( LF-Duration ) + 1 1.5 Sơ đồ GANTT : Sơ đồ GANTT đưa ra một định dạng chuẩn để hiển thị thông tin kế hoạch của dự án bằng các liệt kê các công việc và ngày bắt đầu, ngày kết thúc tương ứng của nó dưới dạng trình tự thời gian.6 Vấn đề chi phí và thời gian trong quản lý dự án phần mềm : 1.1 Vấn đề chi phí : Cùng với chất lượng và thời gian, chi phí là một trong ba vấn đề quan trọng nhất trong việc quản lý dự án phần mềm. Làm thế nào để dẫn dắt dự án đi đến kết thúc mà không vượt quá chi phí ban đầu? Đây là một vấn đề rất khó khăn vì trong quá trình thực hiện dự án chúng ta sẽ gặp phải rất nhiều các khó khăn có thể phát sinh và làm tiêu tốn chi phí của dự án.
Ví dụ khách hàng yêu cầu phát triển thêm một số phần, nhân viên bỏ việc, phải trả tiền lương làm thêm giờ. Ngay từ đầu dự án, ngân sách đã đuợc tính toán dựa trên số phân tích viên hệ thống, số nguời lập trình, người lãnh đạo, thời gian làm việc của từng người. Các lý do dẫn đến việc vượt quá chi phí: - 11 - LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Quản lý dự án phần mềm trên Web • Về mặt nhân sự: Đánh giá thấp hoặc không chính xác khả năng làm việc của nhân viên trong dự án. Nhân viên không đáp ứng đuợc yêu cầu của công việc, hoặc có vấn đề với môi truờng phát triển dự án.
• Các vấn đề ngoài lề: Năng suất đối tác thấp, phát sinh yêu cầu mới từ bên ngoài Vậy làm thế nào để quản lý đuợc chi phí: • Phát hiện sớm các triệu chứng về giá. Ví dụ : chi phí vượt giá hợp đồng. • Phân tích nguyên nhân thực sự. • Dự tính ảnh hưởng theo quan điểm về giá.
• Chỉnh dự án theo giá chấp nhận. Ví dụ : có vấn đề về nhân sự hoặc có vấn đề về nguời dùng hoặc có vấn đề về đối tác.2 Vấn đề thời gian : Tiến độ là một trong ba yếu tố quan trọng cần quản lý trong khi thực hiện dự án. Quản lý tiến độ là các hoạt động để hoàn thành dự án sao cho đúng thời hạn và không vượt ngân sách bằng một kế hoạch tiến hành có cân nhắc kỹ, bằng việc kiểm tra liên tục tiến độ đạt đuợc theo các chỉ số cụ thể và thực hiện phương án điều chỉnh ngay nếu cần. Quản lý tiến độ cần được thực hiện trong suốt quá trình thực hiện dự án.
Mục tiêu của quản lý tiến độ là : • Đúng hạn (Deadline). • Không vượt ngân sách (Cost). • Tiến hành trôi chảy (Smoothly). Việc quản lý tiến độ nên tuân theo các giai đọan sau : • Giai đoạn lên kế hoạch : 9 Kế hoạch phải được cân nhắc kỹ.
9 Kế hoạch phải tính đến mọi hoạt động cần thiết. 9 Các thành viên phải nhất trí với nhau. - 12 - LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Quản lý dự án phần mềm trên Web • Giai đoạn kiểm tra : 9 Phát hiện vấn đề càng sớm càng tốt. 9 Phát hiện sớm thì chi phí khắc phục thấp.
9 Kiểm tra tiến độ nên thực hiện đều đặn. 9 Muốn quản lý thực sự được tiến độ cần có báo cáo chính xác. 9 Báo cáo chính xác cấn có chỉ số chính xác. 9 Báo cáo chính xác phải dựa trên hiểu biết thực sự về quản lý dự án.
• Giai đoạn thực hiện : Nếu có vấn đề xảy ra : 9 Tìm nguỵên nhân thực sự của vấn đề. 9 Tìm các ảnh hưởng mà vấn đề gây ra. 9 Tìm giải pháp hạn chế thấp nhất ảnh hưởng. - 13 - LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Quản lý dự án phần mềm trên Web 1.