Excel Pragmatic Works (1) : Tạo WBS Schedule và Import Redmine

18
Vu Tien Cong viết gần 7 năm trước

Lời mở đầu

Sau một vài năm chinh chiến với các dự án, mình nhận thấy rằng Excel rất hữu dụng trong nhiều công việc liên quan đến quản lý dự án, quản lý tài liệu, đôi khi là cả trong việc lập trình.
Ví dụ, dự án có bộ tài liệu khoảng 200 sheets, mỗi sheet tương ứng với một màn hình, và mỗi màn hình thì có một danh sách các hạng mục bao gồm:

  • Mã hạng mục
  • Tên hạng mục
  • Text tiếng Nhật
  • Text tiếng Anh

Số lượng hạng mục vào khoảng 2000.
Nếu bạn định nghĩa các hạng mục và text JP/EN tương ứng trong file string thì công số cho việc làm đó cũng khá đáng kể. Đặc biệt là khi tài liệu được update, bạn cũng phải update vào file string một lần nữa.
Với dự án đó mình đã dùng Excel, quét toàn bộ các hạng mục được định nghĩa trong tài liệu và output ra một danh sách. Sau đó dùng công thức để tạo chuỗi khai báo trong file string, đại loại kiểu như:

string ScreenA_Item001 = "Confirm"

Xong thì paste toàn bộ danh sách vào file string, cả EN lẫn JP.
Mình chỉ dành một vài giờ nhưng đã tiết kiệm được rất nhiều thao tác cho team dự án. Thêm nữa, sau đó khách hàng có update tài liệu thì việc update vào file string có thể làm gần như tự động, với độ chính xác tuyệt đối.

Trong việc quản lý dự án cũng tương tự, cũng có nhiều thủ thuật để làm đơn giản các thao tác, tiết kiệm thời gian và giúp team dự án có nhiều thông tin để phán đoán trạng thái dự án, từ đó có các action phù hợp để cải thiện tiến độ, chất lượng, ...
Quản lý dự án trong mơ là người chỉ cần ngồi trước màn hình, quan sát các biểu đồ thống kê dữ liệu của toàn dự án và đưa ra các hành động giúp thúc đẩy dự án đi đúng hướng, đúng hạn.
alt text

Trong bộ bài viết "Excel thực dụng - Quản lý dự án với Excel", mình sẽ chia sẻ một số cách thức, thủ thuật mà bản thân đã áp dụng để việc quản lý dự án trở nên dễ dàng hơn. Chuỗi bài viết này gồm 5 phần:

  1. Tạo WBS Schedule và Import vào Redmine
  2. Đồng bộ dữ liệu task trên Redmine với tài liệu WBS
  3. Tạo bảng thống kê trạng thái các task và người phụ trách
  4. Tạo biểu đồ burn-down để xác định trạng thái tổng thể của dự án
  5. Tính tốc độ xử lý công việc của team dự án để đưa ra dự đoán về điểm release

Phần 1: Tạo WBS Schedule và Import vào Redmine

Mục tiêu

Việc tạo WBS và Schedule có 3 mục tiêu chính:

  • Xác định ai làm task nào
  • Thời gian bắt đầu và kết thúc của một task
  • Chức năng nào sẽ được release trong thời gian nào (phiên bản nào)

Giả định

Để tập trung vào việc sử dụng Excel cho công đoạn này, tôi giả sử rằng WBS đã được tạo với đẩy đủ các task cần thiết để hoàn thành sản phẩm đúng như cam kết với khách hàng (nội dung trong hợp đồng hoặc trong file estimate), bao gồm:

  • Phân cấp feature - task và sub-task
  • Estimate có thể base trên Estimate ban đầu (Original Estimated) nhận được từ đội Sale
  • Hoặc team dự án có thể đánh giá và estimate lại (Team Estimated) alt text Một số trường hợp bạn còn phải tạo task cho cả đội test, khi đó WBS có thể sẽ như sau (đơn giản là thêm vài cột và chèn prefix vào trước tên task để dễ phân biệt): alt text Việc tiếp theo cần làm là phân chia task cho người phụ trách (Assignee Task)

Các thao tác

Việc phân chia task cho các thành viên sẽ dựa trên con số estimate, chúng ta coi con số đó (số hour hoặc day của mỗi task) là khối lượng công việc.
Tiêu chí phân chia task tùy thuộc vào việc đánh giá của team dự án.
Có thể có các tiêu chí như sau:

  • Phân chia theo chức năng : mỗi người sẽ care những chức năng độc lập, hoặc care một flow nghiệp vụ
  • Phân chia theo mức độ quan trọng : chia đều cho các thành viên, hoặc chia những chức năng quan trọng cho các thành viên kinh nghiệm hơn
  • Phân chia theo mức độ ưu tiên : các chức năng ưu tiên cao cần chia đều cho các thành viên để có thể hoàn thành sớm
  • Phân chia theo sở trường của các thành viên trong đội dự án : ai quen làm những loại công việc nào thì nên giao cho người đó care để đảm bảo hiệu suất làm việc

Phân task cho từng thành viên

alt text
Đầu tiên bạn cần copy toàn bộ danh sách các task đã tạo ra ở bước trên vào file Schedule kiểu kiểu như ảnh trên.
Ở cột J là thông tin về người phụ trách task tương ứng. Dựa trên các tiêu chí phân chia task bạn điền một loạt người phụ trách. Cứ tạm thế đã, sau đó sẽ tính lại xem như vậy đã hợp lý và cân đối hay chưa.
Ở bước này, bạn có thể dùng chức năng Data Validation của Excel để tạo Selection Option cho danh sách người phụ trách.

Tạo biểu đồ tính toán số task và khối lượng task ứng với từng thành viên

Sau khi đã chia tạm task cho các thành viên rồi, thì tiếp theo bạn phải tính xem lượng (số lượng và khối lượng) đã phù hợp chưa đúng không? Để làm việc này thì bạn tạo một sheet mới trong cùng file hiện tại, nội dung trong sheet đó có thể sẽ ảnh dưới đây:
alt text
Cột C là danh sách người phụ trách, còn cột D là khối lượng (tổng số hour của các task mà thành viên đó được giao)
Để tính ra con số này, bạn có thể dùng hàm SUMIFS. Mục tiêu là tính tổng số estimate ở cột I trong phần trên, với điều kiện là ở cột J người phụ trách trùng với tên thành viên ở cột C (trong sheet hiện tại)
Sau đó, bạn có thể insert thêm các table để nhìn thấy tỉ lệ phân chia một cách trực quan hơn.
Như ở hình trên thì phần DEV đã tương đối đều nhau, nhưng phần TESTER thì lệch nhiều quá, nên bạn phải phân lại.
Trong ví dụ trên, tôi đã tính tổng số với chỉ một điều kiện (là trùng tên assignee). Bạn có thể bổ sung nhiều điều kiện nữa, ví dụ: task theo phase, category, ... tùy vào từng dự án.

Tạo file csv để import danh sách task vào Redmine

Sau khi đã "ăn chia" xong thì bạn cần xác định thời gian bắt đầu và kết thúc của một task.
Việc này bạn có thể tính thủ công, hoặc dùng Microsoft Project để chia tự động.
Giả sử là bạn đã chia xong thì việc tiếp theo là đưa hết các task này lên Redmine để quản lý.
Dựa vào template file csv import redmine và file schedule, tôi đã tạo file csv như sau (đơn giản là copy rồi paste):
alt text
Vào redmine rồi import file csv vừa tạo. Nếu thành công, màn hình redmine sẽ hiển thị danh sách các ticket ID tương ứng với các task trong file csv bạn vừa import.

Copy danh sách ticket ID trên Redmine và paste vào task tương ứng trên file Schedule

Bạn copy luôn danh sách đó, rồi paste vào file csv như hình dưới đây (cột N là ticket ID)
alt text
Rồi bạn lại copy và paste vào file Schedule (cột G là ticket ID)
alt text

Kết quả

Xong bước 1 :D, còn có 4 bước nữa thôi.
Giờ bạn đã có một file Schedule tương đối đầy đủ thông tin như mục tiêu ban đầu đề ra: ai làm task nào, bao giờ xong, và có thể release vào thời gian nào rồi.

Các bước tiếp theo

Bạn đã hoàn thành xong bước đầu tiên của việc tạo liên kết Redmine với file quản lý Schedule.
Từ mối liên kết này, chúng ta có thể lấy được các thông tin khác như: thời gian, trạng thái, ... để phục vụ cho việc thống kê sau này.

Hẹn gặp lại ở phần 2: Đồng bộ dữ liệu task trên Redmine với tài liệu WBS Schedule.

Bình luận


White
{{ comment.user.name }}
Hay Bỏ hay
{{ comment.like_count}}
White

Vu Tien Cong

12 bài viết.
5 người follow
Kipalog
{{userFollowed ? 'Following' : 'Follow'}}

{{like_count}}

kipalog

{{ comment_count }}

Bình luận


White
{{userFollowed ? 'Following' : 'Follow'}}
12 bài viết.
5 người follow

 Đầu mục bài viết