Khởi động (Init)
Bản tuyên bố dự án - Project Charter
Dự án EPM, do Trưởng nhóm Vũ Ngọc Hưng dẫn dắt, nhằm xây dựng một ứng dụng web giúp các project manager dễ dàng lập kế hoạch, quản lý và phân công nhiệm vụ cho các thành viên Với tính năng của phần mềm web application, EPM cho phép xuất và nhập dữ liệu (xls), cũng như tạo báo cáo thống kê Thời gian dự kiến hoàn thành dự án là 2.5 tháng.
1 Tìm hiểu về các business logic, xác định requirement Khảo sát một số hệ thống có sẵn để định hướng
2 Xác định nguồn nhân lực
3 Định ra các milestone lớn cần hoàn thành
4 Triển khai phân tích, thiết kế, phát triển, kiểm thử
Bảng vai trò và trách nhiệm (Roles and Responsibilities)
Vai trò Role Contact Information Project Manager Vũ Ngọc Hưng hungranger@gmail.com
Lê Đăng Hải ldhaiit@gmail.com
Nguyễn Minh Toàn n.minhtoan@gmail.com
Developer + QC Vương Hà Thanh
Mẫn thanhman.gm@gmail.com
Phạm vi dự án - Scope Statement
Tên dự án: Easy Project Management Ngày thực hiện: 24/09/2009 Bởi: Vương Hà Thanh Mẫn Chứng minh độ khả thi của dự án (Project Justification):
Kỹ năng làm việc nhóm là một trong những kỹ năng quan trọng nhất đối với sinh viên Công nghệ Thông tin, nhưng cũng là điểm yếu phổ biến nhất Sự thiếu hụt này dẫn đến việc các nhóm sinh viên từ 3-4 người không phối hợp nhịp nhàng, ảnh hưởng đến hiệu quả và chất lượng công việc Nhiều nhóm chỉ hoạt động theo kiểu “thời vụ”, họp cho một môn học trong một học kỳ rồi tan rã, khiến các đồ án chỉ dừng lại ở mức độ “bài tập” mà không đạt được tính chuyên nghiệp và ứng dụng cao Thực tế cho thấy, nhiều nhóm phải thay đổi đề tài hoặc bắt đầu lại dự án giữa chừng, thậm chí không hoàn thành đồ án do bất đồng ý kiến, không tìm được hướng phát triển, trễ deadline, hoặc gặp nhiều lỗi trong quá trình thực hiện Điều này chứng tỏ rằng các nhóm này chưa áp dụng hiệu quả các quy trình phát triển phần mềm đã học.
Phần mềm Easy Project Management (EPM) được thiết kế để giúp các quản trị viên (Project manager - PM) quản lý hiệu quả hơn các nhóm vừa và nhỏ EPM cung cấp các công cụ hỗ trợ như phân công nhiệm vụ, quản lý thời gian, tạo cột mốc và theo dõi kết quả công việc, giúp quy trình làm việc của nhóm trở nên nhịp nhàng và hiệu quả hơn Nhờ vào những chức năng này, mức độ rủi ro của dự án được giảm thiểu và khả năng thành công tăng cao Đối tượng sử dụng EPM chủ yếu là các nhóm sinh viên, nhưng hệ thống cũng phù hợp cho các nhóm làm việc thực tế bên ngoài nhà trường.
Theo đánh giá của nhóm phát triển, phiên bản đầu tiên của dự án dự kiến sẽ hoàn thành trong khoảng thời gian 3 tháng, từ tháng 9 đến tháng 12 năm 2009 Chi phí cho dự án hoàn toàn do các thành viên tự đóng góp, trong đó PM là người đóng góp nhiều nhất Các đặc điểm và yêu cầu của sản phẩm cũng đã được xác định rõ ràng.
1 EPM là một hệ thống hoạt động trên nền web
2 Phạm vi của EPM là quản lý các dự án công nghệ thông tin
3 Được phát triển trên nền.NET Framework (áp dụng mô hình ASP.NET MVC)
4 Là một công cụ trực quan, dễ sử dụng cho các Project manager và các thành viên
5 Cung cấp các chức năng quản lý: quản lý thành viên, phân công nhiệm vụ, theo dõi tình trạng công việc/dự án, tạo/chỉnh sửa các milestone, quản lý tập tin quản lý thời gian và báo cáo kết quả
6 Các chức năng hỗ trợ liên lạc giữa các thành viên: gởi tin nhắn (messaging) và tin nhắn tức thì (instant messaging); ghi log các hoạt động; cập nhật công việc (tasK) qua RSS; thông báo, nhắc nhở qua email
Tóm tắt các sưu liệu liên quan đến dự án (Summary of Project Deliverables)
Tài liệu phục vụ cho quản lý nhóm (Project management-related deliverables):
20 Change requests and customer’s feedbacks;
21 Survey: “Student Survey” to help determine features and outputs
23 and any other documents required to manage the project
Tài liệu cho thực hiện dự án (Product-related deliverables):
10 and any other components associate with the program
Tiêu chuẩn thành công của dự án (Project Success Criteria):
1 Dự án hoàn thành đúng hay sớm hơn thời gian dự tính
2 Hệ thống hoạt động ổn định với các chức năng chính được yêu cầu
3 Người sử dụng (PM và các thành viên) cảm thấy thuận tiện và dễ dàng khi sử dụng EPM
4 Năng suất làm việc của nhóm được nâng cao, các thành viên phối hợp nhịp nhàng với sự hỗ trợ của EPM
5 Dự ản có thể áp dụng vào thực tế.
Giao ước nhóm - Team Contract
Tên dự án: Easy Project Management (EPM) Các thành viên và chữ ký xác nhận:
Vũ Ngọc Hưng (Đã ký)
Lê Đăng Hải (Đã ký)
Vương Hà Thanh Mẫn (Đã ký)
Nguyễn Minh Toàn (Đã ký)
Các quy tắc chung (Code of Conduct): với tư cách là một nhóm làm việc, chúng ta sẽ:
Làm việc một cách chủ động: cố gắng nhận định trước các vấn đề và khó khăn có thể xảy ra và nỗ lực ngăn ngừa chúng xảy ra
Khi có vấn đề xảy ra sẽ cùng nhau bàn luận và đề ra giải pháp tối ưu để giải quyết
Giúp các thành viên khác có thể nắm bắt đầy đủ và chính xác các thông tin cần thiết và có liên quan đến dự án
Tập trung vào mục đích chung cho cả nhóm và cho toàn dự án
Có trách nhiệm với công việc
Tham gia dự án (Participation): trong quá trình làm dự án, chúng ta sẽ:
Trung thực và công khai trong tất cả các hoạt động của dự án
Khuyến khích sự đa dạng và linh động trong cách làm việc nhóm
Tất cả các thành viên đều binh đẳng như nhau
Luôn khuyến khích và tiếp nhận những ý kiến và ý tưởng mới
Tích cực và tôn trọng các thành viên khác trong các cuộc thảo luận của nhóm
Thông báo cho nhóm (trưởng nhóm hay một thành viên khác) biết khi không thể có mặt trong các cuộc họp nhóm cùng với lời giải thích hợp lý
Khi gặp khó khăn trong việc hoàn thành nhiệm vụ, hãy thông báo cho trưởng nhóm ít nhất một ngày trước hạn chót để đảm bảo tiến độ chung Việc chia sẻ những vướng mắc sẽ giúp nhóm thảo luận và tìm ra giải pháp hiệu quả.
Thông tin liên lạc (Communication): thực hiện các việc sau:
Lựa chọn phương thức giao tiếp phù hợp với từng hoàn cảnh và điều kiện của các thành viên là rất quan trọng Các hình thức như gặp mặt trực tiếp, gọi điện thoại, gửi email, trò chuyện qua các ứng dụng chat như Yahoo! Messenger, GTalk, Pidgin, hay Skype đều có thể được sử dụng linh hoạt để đảm bảo hiệu quả trong việc trao đổi thông tin.
Để đảm bảo hiệu quả công việc, nhóm cần thảo luận và thống nhất một lịch làm việc chung, nhằm không ảnh hưởng đến công việc cá nhân của từng thành viên cũng như tiến độ của dự án Sau khi đạt được sự đồng thuận, lịch làm việc này phải được thông báo đến tất cả các thành viên trong dự án thông qua các phương tiện như email (mail-group) hoặc đăng tải trên website của nhóm.
Các thành viên có nhiệm vụ cập nhật các thông tin mới nhất và thực hiện theo lịch trình đã định
Phát biểu ý kiến ngắn gọn, súc tích và rõ ràng khi thảo luận nhóm
Lưu giữ các ý kiến và các thông tin có liên quan trong các cuộc họp nhóm
Chỉ họp và thảo luận khi thực sự cận thiết
Giài quyết vấn đề (Problem Solving):
Khuyến khích tất cả mọi người tham gia đóng góp ý kiền, giài pháp và cùng giải quyết vấn đề
Trong các cuộc họp tổng kết cho một mốc quan trọng, việc đánh giá những thành tựu đã đạt được và các vấn đề cần cải thiện là rất cần thiết Điều này giúp đưa ra những phần thưởng khuyến khích cho những nỗ lực đã qua, đồng thời cũng cho phép đưa ra những phê bình thích hợp để nâng cao hiệu quả công việc trong tương lai.
Đánh giá và phê bình cần được thực hiện với tinh thần xây dựng, nhằm mục đích giải quyết vấn đề Việc sử dụng ý kiến để buộc tội hay công kích người khác là không chấp nhận được.
Nguyên tắc họp nhóm (Meeting Guidelines):
Sắp xếp một cuộc gặp mặt tất cả các thành viên vào mỗi tuần Mặc định là 8h thứ năm hàng tuần (có thể linh động thay đổi)
Khuyến khích trao đổi và làm việc online
Giai đoạn đầu sẽ họp thường xuyên hơn
Trong mỗi cuộc họp sẽ có một thành viên chịu trách nhiệm làm thư ký
Sau khi cuộc họp kết thúc, người đó sẽ gửi bản tổng kết cuộc họp vào mail-group của nhóm (trong vòng 12 tiếng)
Cần xác định rõ các việc cần thỏa luận và giải quyết (chủ đề) trong mỗi cuộc họp Tránh họp lang man dàn trải
Tuân thủ các quy tắc trong mục “Giải quyết vấn đề”.
Lựa chọn nhóm trưởng (Project Manager)
Sử dụng mô hình trọng số Weighted Scoring Model (WSM) để lựa chọn lãnh đạo cho nhóm Sau đây là bảng đánh giá:
Tiêu Chí Lựa Chọn Trưởng Nhóm (PM) Tạo bởi: Man Vuong
Nhanh nhẹn và năng động 15% 90 80 60 60
Kinh nghiệm làm việc nhóm và quản lý nhóm 5% 80 70 55 50
Khả năng làm việc nhóm và giao tiếp 15% 80 70 70 50
Hiểu biết các công nghệ và kĩ thuật lập trình 10% 60 70 60 60
Có khả năng ra quyết định vá giải quyết vấn đề 20% 70 50 50 50
Khả năng tổ chức và sắp xếp công việc 15% 60 50 60 50
Khả năng chịu trách nhiệm 10% 90 80 80 70
Có thể hỗ trợ và kết hợp với các thành viên khác 10% 80 75 70 70
+ PM là người có tổng số điểm lớn nhất
Như vậy trưởng nhóm được thống nhất lựa chọn là Vũ Ngọc Hưng.
Thông tin các thành viên trong nhóm
1.5.1 Thông tin chung Tên nhóm: HTM
Tên đề tài: Hệ thống Quản lý Dự án – Easy Project Management (EPM)
Email: htm-group@googlegroups.com Trang chủ: http://groups.google.com/group/htm-group
1.5.2 Giới thiệu các thành viên trong nhóm
1 Vũ Ngọc Hưng Email: hungranger@gmail.com
Yahoo ! Messenger : hungrangerv@yahoo.com
Vị trí : Trưởng nhóm (Project Manager)
- Am hiểu các ngôn ngữ lập trình PHP, Java, C/C++, C#
- Thành thạo các ngôn ngữ và công nghệ web hiện nay: HTML, javascript, CSS, Ajax, ASP.NET,…
- Các hệ quản trị cơ sở dữ liệu như MS SQL Server, MySQL
- Thiết kế và tham gia vào các ứng dụng đa tầng (MVC, 3 Layers)
- Từng tham gia và đoạt giải Olympic Tin học Sinh viên Việt nam (khối
- Phát triển nhiều hệ quản trị nội dung (CMS) và ứng dụng web
- Tham gia cuộc thi MicroMouse
- Có khả năng và kinh nhiệm quản lý các nhóm vừa và nhỏ (tỉ lệ thành công 50:50)
- Có kinh nghiệm lấy yêu cầu từ khách hàng, cũng như giải quyết các phản hồi từ khách hàng
Yahoo ! Messenger : ldhai_vnuit@yahoo.com
Vị trí : Trưởng nhóm kĩ thuật (Technical Leader), Nhóm phát triển
- Am hiểu các ngôn ngữ lập trình PHP, C/C++, C#
- Thành thạo các ngôn ngữ và công nghệ web hiện nay: HTML, javascript, CSS, Ajax,…
- Có khả năng viết mã và phát triển phần mềm rất nhanh
- Từng tham gia và đoạt giải Olympic Tin học Sinh viên Việt nam (khối
- Phát triển nhiều hệ quản trị nội dung (CMS) và ứng dụng web
- Các ứng dụng đòi hỏi tính nghiệp vụ cao như chứng khoán, ngân hàng, hệ thống quản lý nội bộ,…
3 Vương Hà Thanh Mẫn Email: thanhman.gm@gmail.com
Yahoo ! Messenger : thanhman_ls@yahoo.com
Vị trí : Nhóm phát triển (Developer), soạn thảo sưu liệu (document)
- Lập trình các ứng dụng Windows và các ngôn ngữ như C/C++, C# và các công nghệ liên quan đến NET
- Các ngôn ngữ lập trình web ASP.NET, JSP, HTML, CSS, javascript,…
- Từng tham gia và đoạt giải Olympic Tin học Sinh viên Việt nam (khối
- Phát triển phần mềm sao lưu và khôi phục dữ liệu
4 Nguyễn Minh Toàn Email: n.minhtoan@gmail.com
Yahoo ! Messenger : minhtoan132@yahoo.com
Vị trí : Thiết kế (Designer) và kiểm thử (Tester)
- Nắm rõ các ngôn ngữ lập trình PHP, Java, C/C++, C#
- Thành thạo các ngôn ngữ web: HTML, javascript, CSS,
- Có óc thẩm mĩ và thiết kế giao diện rất tốt
- Là thành viên của đội tuyển Olympic Tin học của trường ĐH CNTT (khối Mã nguồn mở)
- Tham gia thiết kế giao diện (template, layout) cho nhiều website và ứng dụng web
- Là thành viên trong nhóm phát triển hệ thống AboutScan online (http://www.aboutscan.com/ )
Kế hoạch (Plan)
Phân công nhiệm vụ (Work Break-down Structure)
Bản kế hoạch chi tiết:
WBS Name Duration Start_Date Finish_Date Cost Predecessors
ASP.NET MVC Framework 4 days?
Review and Validate Requirements 0 days
Identify Methods and Properties of Objects 4 days
Review and Evaluate Class Diagram 3 days
Physical Diagram - MSSQL Server Express 2005 3 days
Design review and evaluation 0 days
Projects of Each User 3 days
Manage Users of Each Project 2 days
User & Role API Reference 2 days
System Config API Reference 2 days
Implementation review and evaluation 2 days
Improve and Fix bugs 6 days
Release final packaging: official 1.0 0 days
Reflection (Nhận xét, dánh giá) 3 days?
Rủi ro và giải pháp
Danh sanh sách mức độ rủi ro trong đồ án
Danh sách các rủi ro
Mức độ Rủi ro tiềm ẩn
Dù thời gian dự án R01 kéo dài, nhưng thực tế thời gian thực hiện lại rất ngắn Do đó, việc lập kế hoạch cụ thể và phù hợp là cần thiết để đảm bảo hoàn thành dự án đúng theo tiến độ đã đề ra.
R02 2 Đội ngũ tham gia dự án vừa mới làm quen ASP.NET
Cần có thời gian làm quen với kỹ thuật
R03 3 Dự án cần mang tính thực tế cao Cần sự phân tính, giải quyết vấn đề đúng đắn để mang lại tính khả dụng cho dự án
R04 4 Các thành viên có thể không hoàn thành từng task cho mỗi milestone không đúng kế hoạch Cần lập bảng kế hoạch phân công cho phù hợp
R05 5 Khách hàng có thể không hài lòng với prototype Làm sao để thay đổi prototype một cách nhanh nhất
R06 6 Khách hàng có thể chấm dứt hợp đồng Làm sao để khách hàng thoả mãn để không xảy ra rủi ro này
R07 7 Chúng ta có thể hiểu nhầm yêu cầu của khách hàng
Làm thế nào để tránh hay giảm nhẹ
R08 8 Có thể xảy ra xung độ trong nội bộ nhân lực Cần giảm thiểu triệt để rủi ro này
Việc mất mát tài nguyên nhân lực có thể xảy ra khi một thành viên trong nhóm phải rời bỏ dự án vì lý do nào đó Để đảm bảo tiến độ phát triển dự án không bị ảnh hưởng, cần có các biện pháp duy trì hiệu suất làm việc và phân bổ nhiệm vụ hợp lý trong nhóm.
R10 10 Trong nhóm không có ai có kinh nghiệm tối ưu cơ sở dữ liệu Ảnh hưởng đến tốc độ hệ thống và khả năng tiến hóa của hệ thống
Để tránh việc định giá không chính xác tiến độ mãi cho đến khi quá trễ để phản ứng, chúng ta cần áp dụng các phương pháp quản lý thời gian hiệu quả Việc thường xuyên theo dõi và đánh giá tiến độ dự án sẽ giúp phát hiện sớm những vấn đề tiềm ẩn Ngoài ra, việc thiết lập các mốc thời gian cụ thể và linh hoạt trong kế hoạch cũng góp phần giảm thiểu rủi ro Cuối cùng, việc giao tiếp rõ ràng trong nhóm và với các bên liên quan là rất quan trọng để đảm bảo mọi người đều nắm bắt được tiến độ và có thể điều chỉnh kịp thời.
Trong R12, mỗi thành viên phát triển một module riêng biệt, điều này có thể dẫn đến xung đột hoặc sự không tương thích giữa các module Để đảm bảo hiệu quả, cần xây dựng một chiến lược thiết kế và quản lý các module một cách hợp lý.
Xung đột mã nguồn là một vấn đề quan trọng bên cạnh xung đột chức năng trong quá trình phát triển phần mềm Xung đột này xảy ra khi một thành viên cập nhật và commit mã nguồn, vô tình làm thay đổi mã nguồn của người khác Để giảm thiểu rủi ro này, việc áp dụng một chiến lược quản lý mã nguồn hiệu quả là cần thiết.
R14 14 Có sự mâu thuẫn giữa chất lượng của dự án và thực tế sử dụng hay thái độ của người dùng với dự án
Mặc dù chương trình hoạt động nhanh và có đầy đủ chức năng, nhưng quy trình sử dụng lại quá phức tạp, khiến người dùng cảm thấy bất tiện và khó chịu Để cải thiện trải nghiệm người dùng, cần tìm ra cách giảm thiểu hoặc giải quyết triệt để vấn đề này.
Ma trận xác suất mức độ rủi ro Xác suất
Thấp Trung bình Cao Tác động
Các nguyên nhân làm thời gian thực tế thực hiện dự ngắn xuất
Tâm lý chủ quan của các thành viên (cho rằng có nhiều thời gian nên cứ từ từ mà làm!)
Để nâng cao hiệu quả quản lý dự án, bên cạnh việc có một Giám đốc Dự án (PM) đảm nhận trách nhiệm tổng thể, cần bổ sung một người chuyên theo dõi và thúc đẩy các thành viên trong nhóm khi phát hiện sự chậm trễ hoặc chủ quan trong công việc.
Việc xác định sai mục đích và hướng làm việc có thể khiến dự án rơi vào tình trạng sa đà vào những vấn đề không liên quan hoặc nằm ngoài phạm vi đã đề ra Điều này không chỉ làm giảm hiệu quả của dự án mà còn gây lãng phí thời gian và nguồn lực.
Để đảm bảo thành công cho dự án, việc xác định rõ phạm vi và các công việc cần thực hiện ở từng giai đoạn là rất quan trọng Lập một lịch biểu cụ thể cho các nhiệm vụ và mục tiêu cần đạt được hàng tuần, hàng tháng, thậm chí hàng ngày sẽ giúp quản lý tiến độ hiệu quả hơn.
Mất thời gian tìm hiểu quy trình nghiệp vụ và các yêu cầu phi chức năng
Để đạt được hiệu quả trong việc đáp ứng yêu cầu của khách hàng, cần xây dựng một chiến lược rõ ràng nhằm thu thập thông tin và hoàn thành dự án sớm hơn hoặc đúng tiến độ Việc lấy yêu cầu có thể thực hiện thông qua phỏng vấn trực tiếp và quan sát quy trình nghiệp vụ của khách hàng.
Vấn đề kĩ thuật: nhóm phát triển chưa có nhiều kinh nghiệm với ASP.NET
Giải pháp hiệu quả là tổ chức các buổi đào tạo ngắn hạn với sự hướng dẫn của các chuyên gia Các thành viên nên dành từ một đến hai tuần để nghiên cứu công nghệ, trong đó mỗi cá nhân hoặc nhóm nhỏ sẽ chọn các chủ đề khác nhau Sau đó, trong các buổi họp, các nhóm sẽ thuyết trình và trao đổi kinh nghiệm với nhau, tạo cơ hội học hỏi và chia sẻ kiến thức.
Chia nhóm thành các cặp lập trình (pair programming) với sự kết hợp giữa những người có kinh nghiệm (expert) và người chưa có kinh nghiệm (novice) giúp nâng cao kỹ năng cho cả hai bên Sau giai đoạn này, khi nhóm đã đạt được một nền tảng kỹ thuật đồng đều, sẽ có những điều chỉnh phù hợp để tối ưu hóa quy trình phát triển.
Dự án có khả năng không thực tế, khả năng áp dụng và phát triển không cao
Để tìm giải pháp hiệu quả, cần khảo sát các phần mềm mẫu hoặc ứng dụng tương tự với chức năng giống nhau Đối với những chức năng hoàn toàn mới, việc phân tích khả năng ứng dụng và mức độ phát triển là rất quan trọng Hãy xây dựng một bảng đánh giá các chức năng để xác định những chức năng cần thiết và có tiềm năng phát triển cao nhất.
Các thành viên có thể không hoàn thành từng nhiệm vụ theo kế hoạch cho mỗi cột mốc, gây ra rủi ro tương tự như R01, do nhiều nguyên nhân chủ quan và khách quan.
Giải pháp cho vấn đề này tương tự như R01, trong đó ngoài việc có một Giám đốc Dự án (PM) chịu trách nhiệm quản lý tổng thể, cần bổ sung một người theo dõi và thúc đẩy các thành viên trong nhóm khi phát hiện sự chậm trễ do sự chủ quan.
Trước khi bắt đầu dự án, nhóm phải thống nhất nguyên tắc làm việc chung: giờ giấc, nguyên tắc thưởng, phạt, ăn chơi như thế nào
Tính toán chi phí
Phân tích tài chính dự án EPM
Assume the project is completed in
Net Present Value (NPV) Created by Date:
EPM Year 0 Year 1 Year 2 Year 3 Year 4 Year 5
Thời gian hoàn vốn của dự án EPM Tạo bởi: Ngày:
2.5.4 Ước lượng thời gian hoàn thành của dự án
Activity Sep, 23rd 2009 Oct Nov Dec Jan
Staff project and train business process 2,100 Technical training
310 Design forms, reports, and queries
9,400 Project EV as of JAN 13th 8,764
Project PV as of JAN 13th 8,910
Project AC as of JAN 13th 9,050
EV - PV $ (146) CPI (Cost Performance
Index) = EV / AC 96.840% performance index) = EV /
PV Estimate at Completion (EAC) = BAC/CPI $ 9,201
(original plan of $8910 divided by CPI)
(original plan of 3.23 months divided by SPI)
Note: BAC = the budget at completion
Dự án sẽ hoàn thành sau 3.28 tháng kể từ khi khởi động Mặc dù thời gian hoàn thành chậm hơn so với yêu cầu, nhưng khoảng trễ này vẫn nằm trong giới hạn cho phép và được coi là chấp nhận được.
2.5.5 Đánh giá các chi phí phát sinh
EPM Project Cost Estimate Prepared by: Date:
# Units/Hrs Cost/Unit/Hr Subtotals
Contractors (10% of software development and testing) $781
4 Testing (10% of total hardware and software costs) $1,010 $1,010 3%
Kế hoạch quản lý chất lượng, quản lý tài liệu và quản lý mã nguồn 39 3 Thực thi (Execute)
Tất cả mã nguồn và tài liệu sẽ được lưu trữ và quản lý bằng hệ thống Subversion (SVN)
Nhóm phát triển phải liên tục cập nhật trạng thái ngày hàng tuần để cả nhóm nắm được tình hình chung
Trước khi bước vào viết mã cho dự án, các thành viên cần đọc và tham khảo tài liệu “C# Coding Standard” đặt trong thư mục
Tương tự, các báo cáo, tài liệu đặc tả kĩ thuật đều phải tuân theo mẫu trong thư mục “Doc_Templates”
Cần viết Unit test để kiểm tra các module và kiểm tra cả hệ thống khi tích hợp các module lại với nhau
Sau khi hoàn thành việc sửa lỗi, toàn bộ nhóm sẽ cùng nhau xem xét và đánh giá mã nguồn của từng thành viên tại mỗi mốc thời gian quan trọng Điều này giúp tối ưu hóa mã và phát hiện các sai sót.
Cập nhật tiến độ
- GUI needs more beautiful and easy to use
- DB remains some problems with Role and Module Action Final Design and
DB design, Class diagram and GUI are finished
- All modules were combined together
- Fixed all bugs in beta 1.0
Technical documents and User guide
- Improve the GUI and the performance of the program
Release the official version 1.0, but some technical documents haven’t finished yet, and neither has User guide!
Báo cáo các cuộc họp (Meeting Report)
3.2.1 Cuộc họp ngày 23/09/2009 (Kickoff Meeting) Mục đích
Giới thiệu các thành viên
Thỏa thuận các điều lệ và quy ước nhóm
Kế hoạch sơ bộ cho dự án
Các thành viên tự giới thiệu
Các thành viên tự ứng cử
Bỏ phiếu bầu chọn nhóm trưởng
Đề xuất kế hoạch làm việc và quy tắc làm việc
Thảo luận kế họach sơ bộ cho dự án
Trưởng nhóm tổng hợp và công bố quy tắc làm việc của nhóm (team contract), kế hoạch cụ thể và phân công nhiệm vụ
Buổi tiệc nhỏ cho cả nhóm (trưởng nhóm bao )
Kết quả đánh giá các ứng cử viên (Weighted Scoring Model)
Nhanh nhẹn và năng động 15% 90 80 60 60
Kinh nghiệm làm việc nhóm và quản lý nhóm 5% 80 70 55 50
Khả năng làm việc nhóm và giao tiếp 15% 80 70 70 50
Hiểu biết các công nghệ và kĩ thuật lập trình 10% 60 70 60 60
Có khả năng ra quyết định vá giải quyết vấn đề 20% 70 50 50 50
Khả năng tổ chức và sắp xếp công việc 15% 60 50 60 50
Khả năng chịu trách nhiệm 10% 90 80 80 70
Có thể hỗ trợ và kết hợp với các thành viên khác 10% 80 75 70 70
Bảng thống kê đánh giá:
Bảng vai trò và trách nhiệm (Roles and Responsibilities):
Vai trò Role Contact Information
Project Manager Vũ Ngọc Hưng hungranger@gmail.com
Lê Đăng Hải ldhaiit@gmail.com
Nguyễn Minh Toàn n.minhtoan@gmail.com
Developer + QC Vương Hà Thanh
Mẫn thanhman.gm@gmail.com
Công việc Người thực hiện Deadline
Nghiên cứu và khảo sát các chương trình mẫu có cùng tính năng và quy trình nghiệp vụ quản lý dự án IT
Tìm hiểu công nghệ ASP.NET và ASP.NET MVC framework
Lập kế hoạch chi tiết (WBS), tính toán chi phí, thời gian và chiến lược quản lý chất lượng
Thu thập và phân tích yêu cầu (Requirements)
3.2.2 Cuộc họp ngày 10/10/2009 Mục đích
Báo cáo kết quả traning
Nắm bắt được nhu cầu thực tế về một chương trình quản lý dự án CNTT
Phân tích và thảo luận yêu cầu của người dùng (requirements)
Phân tích và đáng giá những rủi ro và khó khăn gặp phải
Kế hoạch cho bước tiếp theo
Hưng (PM): thông báo tình hình nhóm và cập nhật các tin tức mới
Hải: báo cáo kết quả tổng kết giai đoạn traning ASP.NET và MVC framework
Toàn, Mẫn: báo cáo tổng kết kháo sát các chương trình mẫu
Hưng (PM): công bố kết quả lấy yêu cầu
Nhóm thảo luân và đánh giá yêu cầu
Đánh giá những rủi ro và khó khăn gặp phải, đề xuất cách giải quyết
Hưng (PM): tổng kế và đề ra kế hoạch
Hưng (PM): chơi các trò tập thể và đố vui
Nhóm phát triển đã nắm được cơ bản ASP.NET và ASP.NET MVC
Đã xây dựng được một ứng dụng ASP.NET MVC (xem tập tin ContactManager.zip đính kèm)
Các chương trình quản lý nhóm được khảo sát là: Collabtive, Microsoft Project, EGroupWare
Đã có được bản đặc tả yêu cầu Requirement 1.0
Nhóm thống nhất quyết định phát triển một ứng dụng tương tự như Collabtive, với lý do chính là Collabtive gọn nhẹ và cung cấp đầy đủ các chức năng cơ bản cho các nhóm vừa và nhỏ Thời gian phát triển dự án dự kiến sẽ khoảng 3 tháng, phù hợp với khả năng của các thành viên trong nhóm, những người chưa có nhiều kinh nghiệm quản lý Do đó, sự đơn giản trong thiết kế và tính năng là yếu tố quan trọng hàng đầu.
Các cộng việc tiếp theo là phân tích yêu cầu , xácc định các lớp và thiết kế dữ liệu
Bảng phân công Công việc Người thực hiện Deadline
Phân tích yêu cầu và vẽ sơ đồ lớp
Thiết kế DB và đặc tả
3.2.3 Cuộc họp ngày 23/10/2009 Mục đích
Thống nhất bản đặc tả lớp (Class Diagram)
Thống nhất bản đặc tả dữ liệu
Cả nhóm xem xét lại yêu cầu và tổng quan toàn bộ hệ thống
Nhóm Toàn, Mẫn báo cáo tóm tắt đặc tả lớp
Nhóm Hải, Hưng báo cáo đặc tả dữ liệu
Xem lại requirement và cập nhật các tài liệu có liên quan nếu cần
DB vẫn còn nhiều vấn đề: về cách phân quyền, quản lý role và quản lý các action trong một module Cần tiếp tục chỉnh sửa
Chưa có code mẫu chuẩn, các thành viên còn viết mã rất lung tung
Cần tìm một server hay host hỗ trợ ASP.NET và ASP.NET MVC để triển kha thực tế dự án
Cong việc Người thực hiện Deadline
Thiết kế giao diện cho trang tạo mới và cỉnh sửa Project
Viết code convention và code template
Cập nhật các thay đổi cho DB và ra bản 1.0 Tìm hiểu Calendar trong ASP.NET Tìm một host hỗ trợ ASP.NET
Viết tài liệu hướng dẫn cơ bản về LINQ cho nhóm
Thống nhất bản đặc tả DB và phát hành DB Spec 1.0
Thống nhất code convetion và code template
Phân công nhiệm vụ cho các thành viên
Hưng: báo cáo bản đặc tả DB
Ý kiến và đánh giá DB
Hải: giới thiệu code convention và code template cho nhóm
Hưng : liệt kê các công việc cần triển khai ở bước kế tiếp
Các thành viên tự nhận nhiệm vụ
Hưng : tổng kết và phân công nhiệm vụ nếu cần
Công việc Người thực hiện Deadline
Thiết kế giao diện cho trang chủ và cho các trang còn lại
- Quản lý project của từng user
Ráp các module và chạy bản beta 1.0
Thảo luận các khó khăn và tìm giải pháp
Các thành viên tiến hành kết nối các module và debug
Chạy và kiểm tra bản beta 1.0
Đánh giá và thảo luận
Hưng: tổng kết và giao nhiệm vụ
Các module đã phối hợp nhịp nhành hơn
Flow chính: tạo user, tạo project và phân công task đã chạy ổn định
Công việc Người thực hiện Deadline
- Hoàn chỉnh trang chủ (Desktop) và System
- Chỉnh sửa giao diện cho sáng sủa và dễ sử dụng hơn
- Hoàn thiện chức năng phân quyền và quản lý các action
- Tích hợp các module và đồng bộ hóa
Thảo luận đánh giá beta 1.0 và beta 2.0
Báo cáo các việc đã hoàn thành và các việc chưa giải quyết được để tìm giải pháp
Thảo luận và review các phiên bản beta 1.0 và beta 2.0
Xem xét và đánh giá các phản hồi từ beta 1.0 và beta 2.0
Các thành viên báo cáo tiến độ và các lỗi chưa sửa được để cùng tìm giải pháp
Hưng tổng kết và lập kế hoạch
Các phiên bản beta nhận đươc nhiều phản hồi tích cực từ người dùng và vô số những đóng góp ý kiến cần cải tiến chương trình hơn nữa
Các chức năng chính đã hoàn thành, cần hoàn thiện các yêu cầu phi chức năng khác như hệ thống tài liệu, hướng dẫn, giao diện,…
Các thành viên viết tài liệu đặc tả các module, lớp và phương thức mình đản nhiệm và commit vào thư mục /Docs của dự án
Chuẩn bị phát hành phiên bản chính thức 1.0 ngày 31/12/2009
Công việc Người thực hiện Deadline
- Hoàn chỉnh trang chủ (Desktop) và System Setting
- Tiếp tục cải thiện giao diện người dùng với tiêu chí: đơn giản, đẹp và tiện dụng
- Các thành viên hoàn thành document kỹ thuật
- Tài liệu hướng dẫn sử dụng
Đánh giá tổng kết toàn bộ dự án: báo cáo chi phí, bài học kinh nghiệm
Hưng (PM): báo cáo tổng kết dự án
Các thành viên nếu ý kiến về dự án, về cách điều hành của PM
Một buổi tiệc nhỏ sau những ngày làm việc vất vả
Nhìn chung dự án khá thành công với các khoản chi phí, thời gian và nhân lực đều dao động trong phạm vi chấp nhận được
Người dùng có đánh giá khá tốt về dự án và đang có hợp đồng kế tiếp
Các thành viên nhận xét PM làm việc khá tốt tuy nhiên cần tích cực hơn trong việc tham gia với các thành viên
Kiểm soát (Control)
Các vấn đề phát sinh
Ngày Miêu tả Giải pháp Ghi chú
Chưa hiểu rõ quy trình quản lý dự án IT
25/9/2009 Đa số các thành viên trong nhóm phát triển chưa nắm được quy trình quản lý một dự án IT nên chưa thể thực hiện EPM được
- Tổ chức các buổi training
- Tham khảo tài liệu mẫu
- Xem các video về làm việc nhóm
Các thành viên còn chủ quan, và hay trễ deadline
Dự án bắt đầu vào ngày 25/10/2009 với đặc tả yêu cầu đã hoàn thiện Tuy nhiên, nhiều thành viên trong nhóm có tâm lý chủ quan, nghĩ rằng công việc sẽ tiến triển nhanh chóng Hậu quả là khoảng 60% nhiệm vụ không hoàn thành đúng hạn hoặc phải chờ đến gần thời hạn mới bắt đầu thực hiện.
- Nhắc nhở các thành viên (qua email, Y!M,…)
- Vạch ra các khó khăn và
"núi" công việc để các thành viên hiểu rõ những việc sẽ làm
Để tạo ra một phong trào thi đua hiệu quả, nhóm cần khuyến khích việc hoàn thành nhiệm vụ đúng hạn Những ai hoàn thành công việc muộn sẽ gặp khó khăn về chất lượng và có thể phải làm lại, do đó sẽ bị phạt Cụ thể, nếu ai đó làm trễ deadline, họ sẽ phải đãi cả nhóm một bữa kem Ngược lại, thành viên nào có tỉ lệ hoàn thành nhiệm vụ trước deadline cao nhất sẽ nhận được phần thưởng, có thể là một món quà hoặc được giảm bớt số lượng nhiệm vụ phải thực hiện.
03/11/2009 Mỗi thành viên thực hiện một module, tuy nhiên
DB thì lại dùng chung Có một số thành viên tự ý thay đổi các trường dữ liệu, các table, dẫn đến lỗi cho các module khác
- Ban hành gấp một “luật” mới: luôn hỏi ý kiến những người có liên quan khi muốn thay đổi
- Cử một thành viên chịu trách nhiệm kiểm tra lỗi DB vào cuối ngày làm việc
Nếu có conflict xảy ra các thành viên phải liên hệ nhau để giải quyết
Nếu chưa thể liên lạc với người có liên quan thì
Cụ thể là thành viên Vương Hà Thanh Mẫn commit code vào một thư mục tam trên SVN để chờ giải quyết
Khi Mẫn phát hiện lỗi DB, cần thông báo ngay cho các thành viên liên quan đến module bị lỗi nếu vấn đề nghiêm trọng Đối với lỗi không quan trọng, có thể thực hiện thay đổi, nhưng cần ghi chú rõ ràng khu vực và lý do thay đổi để đảm bảo tính minh bạch.
Họp mất thời gian và không đúng trọng tâm
Các cuộc họp thường kéo dài hơn thời gian dự kiến do sự thiếu tích cực của các thành viên trong việc đóng góp ý kiến Nhiều vấn đề thảo luận không được tập trung đúng trọng tâm, dẫn đến tình trạng các thành viên tranh cãi lẫn nhau về việc phát biểu.
Để tổ chức cuộc họp hiệu quả, cần xác định rõ mục tiêu và thông báo cho cả nhóm ít nhất 2 ngày trước Áp dụng quy tắc mới, mọi thành viên trong nhóm cần lắng nghe người khác khi nói và khi người nói kết thúc, cần có thông báo hoặc cử chỉ rõ ràng để chuyển lượt cho các thành viên khác.
Hạn chế các cuộc họp không cần thiết.
Thay đổi yêu cầu
Thay đổi giao diện: cần thay màu nền sáng hơn
Thêm chức năng upload tập tin và quản lý tập tin
Thêm chức năng Activity log
Quy trình tạo một project và phân công task cần theo dạng wizard để người dùng không phải bối rối vói quá nhiều thao tác khi sử dung
Kết thúc (Close)
Bài học kinh nghiệm
Cần tránh tư tưởng chủ quan khi khởi động dự án, vì điều này có thể dẫn đến việc lãng phí thời gian thực hiện và làm tăng nguy cơ thất bại hoặc trễ tiến độ của dự án.
Khi ước tính thời gian hoàn thành công việc, cần lưu ý rằng trình độ và chuyên môn của các thành viên trong nhóm có sự khác biệt, điều này sẽ ảnh hưởng đến thời gian hoàn thành.
Để nâng cao hiệu quả công việc, cần chia nhỏ các nhiệm vụ thành những task cụ thể Việc này không chỉ giúp các thành viên dễ dàng thực hiện mà còn cải thiện đáng kể tiến độ cập nhật của dự án.
Mặc dù họp và giao tiếp trực tuyến mang lại sự tiện lợi và nhanh chóng, nhưng việc lạm dụng hình thức này đã làm giảm sự gắn kết giữa các thành viên trong nhóm Do đó, cần tổ chức nhiều cuộc họp nhóm và hoạt động làm việc chung hơn để khuyến khích mọi người cùng nhau tham gia giải quyết vấn đề.
Dự án đã đạt được thành công đáng kể khi hoàn thành công việc chỉ chậm hơn kế hoạch 0.28 tháng, với tổng thời gian thực hiện là 3.28 tháng so với 3 tháng dự kiến.
Dự án hiện đang gặp nhiều vấn đề cần khắc phục, bao gồm việc ước lượng thời gian công việc chưa chính xác, quản lý thời gian chưa hiệu quả, dẫn đến tình trạng còn nhiều thời gian rảnh rỗi trong khi một số công việc lại bị trễ deadline.
Việc ứng phó và thích nghi với các thay đổi yêu cầu là một thách thức lớn, cho thấy rằng giai đoạn phân tích và thu thập yêu cầu chưa được thực hiện hiệu quả Điều này dẫn đến thiết kế hệ thống không tối ưu, khiến các thành phần trở nên phụ thuộc lẫn nhau Khi một thành phần thay đổi, nó lại kéo theo sự thay đổi của các thành phần khác, tạo ra sự phức tạp trong quá trình phát triển.
Mặc dù chúng ta đã có tài liệu hướng dẫn viết mã theo chuẩn và mẫu, nhưng việc kiểm tra định kỳ không được thực hiện, dẫn đến tình trạng mã nguồn và tài liệu dần mất đi tính nhất quán và chuẩn mực theo thời gian.
Bằng cách áp dụng các mô hình và phương pháp quản lý khoa học, chúng ta đã giảm thiểu rủi ro trong quản lý dự án công nghệ thông tin và tối ưu hóa việc sử dụng các nguồn tài nguyên như nhân lực, thiết bị và cơ sở vật chất.
Quản lý thời gian và phạm vi của dự án là hai khâu quan trọng nhưng đầy thách thức đối với các nhà quản lý nhóm Công việc này không chỉ dựa vào những dự đoán và tính toán lý thuyết, mà còn phụ thuộc nhiều vào kinh nghiệm và khả năng quản lý của người lãnh đạo.