Ước tính dự án phần mềm: phân rã công việc
- Khi lập kế hoạch cho một dự án phần mềm, việc xác định rõ danh sách công việc là rất quan trọng.
- Quá trình phân rã công việc có thể mang tính trực giác, nhưng vẫn cần đi qua các bước cụ thể.
- Quá trình phân rã công việc bao gồm việc chia dự án thành các công việc cấu thành và xác định chi tiết từng công việc.
Phân rã công việc qua ví dụ
- Bài viết minh họa quá trình phân rã công việc thông qua ví dụ tạo một trình theo dõi streak cá nhân.
- Trình theo dõi streak này dùng để theo dõi các hoạt động ngoài trời, tương tự ứng dụng Streaks nhưng có nhiều tùy chọn hoạt động ngoài trời hơn và có tính năng "streak freeze" như của Duolingo.
Lần thử đầu tiên
- Bắt đầu bằng bản phác thảo để hình dung trực quan những gì sẽ tạo ra.
- Với dự án cá nhân, một bản phác thảo đơn giản có thể là đủ, nhưng nếu cần giao việc cho người khác hoặc cần ước tính thời gian thì phải phân rã công việc chi tiết hơn.
Lần thử thứ hai
- Lập kế hoạch bằng cách mở rộng một công việc đơn lẻ thành các thành phần, cân nhắc các phụ thuộc, nhưng chưa lo lắng về kích thước hay phạm vi của từng bước.
- Lập danh sách các công việc như mô hình dữ liệu, chế độ xem lịch, lịch tương tác, tính toán và hiển thị streak hiện tại, triển khai streak freeze.
Lần thử thứ ba
- Chia các bước lớn hơn thành các thành phần nhỏ hơn và bổ sung thêm chi tiết.
- Xác định chi tiết hơn các công việc như mô hình dữ liệu, chế độ xem lịch tĩnh, chế độ xem lịch tuần động, tính toán và hiển thị streak, streak freeze.
Quy trình phân rã công việc
- Phân rã công việc là một quá trình mang tính tương tác: nghĩ về các công việc lớn rồi chia chúng thành những bước nhỏ hơn và ghi lại.
- Kiểm tra xem từng công việc đã được xác định đầy đủ hay chưa; nếu chưa thì lặp lại thuật toán để chia nhỏ hơn nữa.
Công việc là gì?
- Một công việc phải được xác định đủ rõ, phải trọn vẹn và phải tạo ra sự thay đổi.
- Công việc "được xác định đủ rõ" cần có phần mô tả khái quát rõ ràng, còn công việc "trọn vẹn" phải bao gồm mọi phần việc cần thiết.
Thế nào là công việc được xác định đủ rõ?
- Người thực hiện công việc phải hiểu được thay đổi mong muốn, hiểu trạng thái "hoàn thành" trông như thế nào, và có thể xác định mọi bước để đi đến trạng thái "hoàn thành".
Đây là một kỹ năng và cần luyện tập
- Phân rã công việc là một kỹ năng và sẽ tiến bộ thông qua luyện tập.
- Với các nhà phát triển nhiều kinh nghiệm, điều này có thể mang tính trực giác, nhưng với người ít kinh nghiệm hơn thì có thể khó khăn.
- Điều quan trọng là tạo ra môi trường học tập an toàn, yêu cầu lập kế hoạch dự án, phân rã công việc và đưa ra phản hồi.
Tóm tắt thuật toán phân rã công việc
- Bắt đầu từ danh sách công việc, bản phác thảo hoặc ý tưởng ban đầu.
- Quyết định xem từng mục đã được xác định đủ rõ hay chưa; nếu "chưa" thì tiếp tục phân rã công việc đó.
- Lặp lại cho đến khi mọi công việc đều được phân rã đủ mức.
Phần thưởng thêm về ước tính dự án
- Vì đây là một loạt bài về ước tính, bài viết cũng hoàn tất phần ước tính cho dự án.
- Khối lượng công việc thực tế có thể đã bị ước tính quá cao, thiết kế có thể được đơn giản hóa và thuật toán "freeze" có thể còn lỗi.
Ý kiến của GN⁺
- Phân rã công việc là kỹ năng cốt lõi trong quản lý dự án và phát triển phần mềm; bài viết này có thể giúp các kỹ sư phần mềm mới vào nghề hiểu được tầm quan trọng và cách thực hiện phân rã công việc.
- Phân rã công việc là yếu tố thiết yếu để xác định rõ phạm vi dự án và quản lý hiệu quả thời gian cũng như nguồn lực.
- Bài viết giải thích quy trình phân rã công việc theo từng bước, nên cung cấp một ví dụ thực tế hữu ích để tham khảo khi áp dụng vào dự án thật.
- Độ chính xác của việc phân rã công việc có thể ảnh hưởng lớn đến thành công của dự án, và điều quan trọng là giảm thiểu lỗi hoặc thiếu sót có thể phát sinh trong quá trình này.
- Các công cụ quản lý dự án cung cấp chức năng tương tự gồm có Jira, Trello và Asana; có thể dùng các công cụ này để trực quan hóa và quản lý quá trình phân rã công việc.
Chưa có bình luận nào.