Đường găng (critical path) là chuỗi công việc phụ thuộc nhau dài nhất trong sơ đồ mạng dự án; tổng thời gian của chuỗi này chính là thời gian ngắn nhất để hoàn thành dự án. Mọi công việc nằm trên đường găng có thời gian dự trữ bằng không: chậm một ngày ở đó là dự án chậm một ngày, trừ khi có biện pháp bù.
Phương pháp đường găng (CPM) giúp người quản lý dự án biết nên tập trung vào đâu: trong hàng trăm công việc, thường chỉ một phần nhỏ thật sự quyết định ngày kết thúc. Bài này trình bày lịch sử, cách tính thuận và tính ngược trên một ví dụ, ý nghĩa của các loại thời gian dự trữ, hai kỹ thuật rút ngắn tiến độ và những giới hạn mà người dùng CPM cần biết.
Lịch sử: DuPont, Polaris và hai phương pháp ra đời cùng lúc
CPM được phát triển trong các năm 1957–1958 bởi Morgan Walker của công ty hoá chất DuPont và James Kelley của Remington Rand, nhằm lập kế hoạch bảo trì và xây dựng nhà máy hoá chất, nơi mỗi ngày dừng máy tốn rất nhiều tiền. Mục tiêu ban đầu không chỉ là tính ngày xong, mà là tìm điểm cân bằng giữa thời gian và chi phí: rút ngắn công việc nào thì rẻ nhất.
Gần như cùng thời điểm, năm 1958, Hải quân Mỹ cùng hãng tư vấn Booz Allen Hamilton và Lockheed phát triển PERT cho chương trình tên lửa Polaris, với hàng nghìn nhà thầu. Khác biệt chính: CPM giả định thời gian mỗi công việc đã biết khá chắc (hợp với xây dựng, bảo trì quen thuộc), còn PERT dùng ước tính ba điểm để xử lý bất định (hợp với nghiên cứu phát triển). Ngày nay hai phương pháp thường được dùng lẫn và gọi chung; phần mềm lập tiến độ hiện đại đều tính đường găng dựa trên logic của CPM.
Điều đáng nhớ từ lịch sử là CPM sinh ra từ bài toán tiền: đường găng là công cụ để quyết định đầu tư nguồn lực vào đâu, không phải để vẽ sơ đồ cho đẹp. Dùng CPM mà không bao giờ hỏi câu “rút ngắn việc này tốn bao nhiêu” là mới dùng một nửa phương pháp.
Dựng sơ đồ mạng: dữ liệu đầu vào cần có
Trước khi tính, cần ba loại thông tin cho mỗi công việc, lấy từ danh sách công việc đã phân rã từ WBS:
- Danh sách công việc ở mức đủ chi tiết, mỗi công việc có kết quả rõ ràng.
- Thời lượng ước tính, tính theo ngày làm việc, không phải ngày lịch, để tránh lẫn với ngày nghỉ.
- Quan hệ phụ thuộc: phổ biến nhất là kết thúc–bắt đầu (FS, B chỉ bắt đầu khi A xong); ngoài ra có bắt đầu–bắt đầu (SS), kết thúc–kết thúc (FF) và hiếm khi bắt đầu–kết thúc (SF). Có thể kèm độ trễ (lag) hoặc chồng lấn (lead), ví dụ chờ bê tông khô bảy ngày.
- Vẽ sơ đồ theo kiểu công việc trên nút (activity on node): mỗi ô là một công việc, mũi tên là quan hệ. Đây là kiểu mặc định trong phần mềm hiện nay, dễ đọc hơn kiểu công việc trên mũi tên cũ.
- Kiểm tra logic: mọi công việc trừ điểm đầu phải có công việc đứng trước, mọi công việc trừ điểm cuối phải có công việc đứng sau. Công việc “lơ lửng” không có quan hệ là lỗi phổ biến khiến đường găng tính sai.
Phân biệt phụ thuộc bắt buộc (do bản chất kỹ thuật: phải đổ móng trước khi dựng cột) với phụ thuộc tuỳ chọn (do thói quen hoặc ưu tiên: muốn duyệt thiết kế xong mới mua sắm). Phụ thuộc tuỳ chọn chính là chỗ có thể nới ra khi cần rút ngắn tiến độ.
Tính thuận, tính ngược trên một ví dụ
Ví dụ giả định: dự án lắp đặt một dây chuyền đóng gói gồm sáu công việc, thời lượng tính theo ngày làm việc, quan hệ kết thúc–bắt đầu. ES/EF là ngày bắt đầu/kết thúc sớm nhất, LS/LF là muộn nhất:
| Công việc | Thời lượng | Trước nó | ES – EF | LS – LF | Dự trữ |
|---|---|---|---|---|---|
| A. Khảo sát mặt bằng | 3 | — | 0 – 3 | 0 – 3 | 0 |
| B. Đặt mua máy | 10 | A | 3 – 13 | 3 – 13 | 0 |
| C. Cải tạo nền và điện | 6 | A | 3 – 9 | 7 – 13 | 4 |
| D. Lắp đặt máy | 5 | B, C | 13 – 18 | 13 – 18 | 0 |
| E. Đào tạo công nhân | 4 | A | 3 – 7 | 16 – 20 | 13 |
| F. Chạy thử và nghiệm thu | 2 | D, E | 18 – 20 | 18 – 20 | 0 |
Tính thuận: đi từ đầu, ES của một công việc bằng EF lớn nhất trong các công việc đứng trước; EF = ES + thời lượng. D phải chờ cả B (xong ngày 13) và C (xong ngày 9), nên ES của D là 13. Dự án xong sớm nhất ngày 20.
Tính ngược: đi từ cuối với LF của F bằng 20; LF của một công việc bằng LS nhỏ nhất trong các công việc đứng sau; LS = LF − thời lượng. Dự trữ tổng = LS − ES. Đường găng là A → B → D → F, dài 20 ngày. C có 4 ngày dự trữ, E có 13 ngày.
Đọc đúng các loại thời gian dự trữ
Dự trữ tổng (total float). Số ngày một công việc có thể chậm mà không làm chậm ngày kết thúc dự án. Trong ví dụ, cải tạo nền có thể trễ tới 4 ngày. Nhưng dự trữ tổng thuộc về cả chuỗi chứ không riêng công việc nào: nếu một công việc trước đã tiêu hết, công việc sau không còn.
Dự trữ tự do (free float). Số ngày chậm mà không làm chậm ngày bắt đầu sớm của công việc ngay sau. Đây là phần một người phụ trách có thể dùng mà không ảnh hưởng đồng nghiệp, nên hữu ích khi phân quyền tự xếp việc.
Dự trữ âm. Khi có ngày hoàn thành bắt buộc sớm hơn ngày tính được, phần mềm cho ra dự trữ âm. Đó là tín hiệu kế hoạch không khả thi với logic hiện tại, phải rút ngắn, đổi logic hoặc thương lượng lại mốc, không phải lỗi phần mềm.
Đường gần găng. Chuỗi có dự trữ nhỏ, ví dụ dưới năm ngày, dễ trở thành găng chỉ sau một sự cố. Theo dõi chỉ đường găng mà bỏ qua đường gần găng là lý do nhiều dự án bị bất ngờ.
Đường găng thay đổi theo thời gian. Khi dự án tiến triển, công việc chậm hoặc nhanh hơn dự kiến, đường găng có thể dịch chuyển. Cần tính lại sau mỗi lần cập nhật tiến độ, thường là hằng tuần.
Rút ngắn tiến độ: crashing và fast-tracking
Khi cần xong sớm hơn, chỉ rút ngắn công việc trên đường găng mới có tác dụng; đẩy nhanh công việc có dự trữ chỉ làm tăng dự trữ, không đổi ngày xong. Có hai kỹ thuật chính, và cả hai đều có giá.
Crashing (tăng nguồn lực): thêm người, thêm ca, thuê thiết bị, trả phí giao hàng nhanh để rút thời lượng công việc găng. Cách làm chuẩn là tính chi phí rút ngắn mỗi ngày của từng công việc găng rồi chọn công việc rẻ nhất trước. Trong ví dụ, nếu trả thêm phí để nhà cung cấp giao máy sớm ba ngày tốn ít hơn thuê thêm đội lắp đặt, chọn phương án giao máy sớm. Sau mỗi lần rút, phải tính lại vì đường găng có thể đổi: rút B ba ngày thì B vẫn găng, nhưng rút năm ngày thì C (dự trữ 4) bắt đầu trở thành găng, và phần rút thêm không còn tác dụng trọn vẹn.
Fast-tracking (làm chồng lấn): cho các công việc vốn tuần tự chạy song song một phần, ví dụ bắt đầu cải tạo nền khi thiết kế mới duyệt phần lớn. Cách này không tốn tiền ngay nhưng tăng rủi ro làm lại. Nó chỉ áp dụng được với phụ thuộc tuỳ chọn; phụ thuộc bắt buộc thì không chồng được.
Cả hai đều có giới hạn: thêm người vào việc đang trễ có thể làm chậm thêm vì tốn công hướng dẫn và phối hợp, nhận xét nổi tiếng của Fred Brooks trong The Mythical Man-Month (1975) cho dự án phần mềm. Với việc thủ công chia được, thêm người hiệu quả hơn; với việc trí óc cần hiểu bối cảnh, hiệu quả giảm rõ.
Ai sở hữu thời gian dự trữ khi có nhà thầu
Trong dự án có nhiều nhà thầu, thời gian dự trữ trở thành câu hỏi hợp đồng chứ không chỉ kỹ thuật. Giả sử nhà thầu cải tạo nền trong ví dụ trên chậm ba ngày; dự án không trễ vì công việc đó có bốn ngày dự trữ. Nhưng nếu sau đó chủ đầu tư thay đổi thiết kế làm chậm thêm hai ngày, ai chịu trách nhiệm cho ngày trễ của dự án? Nhà thầu sẽ lập luận rằng phần dự trữ thuộc về họ, chủ đầu tư lập luận ngược lại.
Các bộ hợp đồng xây dựng quốc tế phổ biến và thực tiễn giải quyết tranh chấp tiến độ có những quan điểm khác nhau về quyền sở hữu dự trữ, và đây là một nguồn tranh chấp lớn trong các vụ đòi gia hạn thời gian. Không có câu trả lời chung; điều quan trọng là viết rõ trong hợp đồng cách xử lý: dự trữ dùng chung theo nguyên tắc ai đến trước dùng trước, hay thuộc về dự án do chủ đầu tư quản lý, hay chia theo tỷ lệ.
Về mặt quản lý, có ba thói quen giúp giảm tranh chấp: yêu cầu nhà thầu nộp lịch tiến độ có logic đầy đủ chứ không chỉ một bản Gantt dạng hình ảnh; cập nhật và lưu lịch tiến độ định kỳ để sau này phân tích được sự kiện nào gây trễ; và ghi nhận bằng văn bản ngay khi một sự kiện có thể ảnh hưởng tiến độ xảy ra. Khi lịch được lưu đều, việc phân tích “nếu không có sự kiện này thì dự án xong ngày nào” mới có căn cứ, thay vì cãi nhau bằng trí nhớ. Với hợp đồng cụ thể, nên tham khảo ý kiến chuyên gia pháp lý vì điều khoản gia hạn và bồi thường phụ thuộc vào văn bản hợp đồng và luật áp dụng.
Giới hạn của CPM và những gì cần bổ sung
CPM là công cụ mạnh nhưng dựa trên những giả định dễ bị quên. Biết giới hạn giúp dùng đúng chỗ:
- Bỏ qua giới hạn nguồn lực: CPM giả định nguồn lực không giới hạn. Nếu B và C cùng cần một đội thợ điện duy nhất, lịch thực tế dài hơn. Cần bước cân bằng nguồn lực sau khi tính đường găng; khái niệm “chuỗi găng” của Eliyahu Goldratt (Critical Chain, 1997) chính là đường dài nhất khi tính cả nguồn lực.
- Thời lượng là con số đơn: mỗi công việc có bất định, và khi nhiều nhánh song song hội tụ vào một điểm, xác suất tất cả cùng xong đúng hạn thấp hơn xác suất của từng nhánh. Hiện tượng thiên lệch hội tụ này khiến ngày xong theo CPM thường lạc quan. Mô phỏng Monte Carlo hoặc ước tính ba điểm giúp bù phần này.
- Chất lượng dữ liệu: logic sai, thiếu quan hệ, dùng quá nhiều ngày bắt buộc cố định khiến đường găng vô nghĩa. Nhiều chuẩn kiểm tra lịch tiến độ yêu cầu hạn chế tối đa ràng buộc ngày cứng và công việc không có quan hệ.
- Không thay cho quản lý con người: sơ đồ không cho biết người phụ trách có đang quá tải hay có động lực không. Đường găng chỉ nói nên nhìn vào đâu.
Cách dùng thực dụng: tính đường găng để biết mười đến hai mươi công việc cần theo dõi sát nhất, xác định đường gần găng, rồi bổ sung dự phòng thời gian ở cuối chuỗi thay vì rải đều vào từng công việc.
Câu hỏi thường gặp
Một dự án có thể có nhiều đường găng không?
Có. Khi hai hoặc nhiều chuỗi có cùng tổng thời lượng dài nhất, tất cả đều là đường găng. Dự án có nhiều đường găng rủi ro cao hơn vì chậm ở bất kỳ chuỗi nào cũng làm chậm dự án, và việc rút ngắn phải làm trên tất cả các chuỗi cùng lúc.
Đường găng có phải chuỗi công việc quan trọng nhất không?
Không nhất thiết. Đường găng là chuỗi quyết định thời gian, không phải chuỗi có giá trị hay rủi ro kỹ thuật cao nhất. Một công việc ngoài đường găng vẫn có thể là thứ quan trọng nhất về chất lượng, ví dụ thử nghiệm an toàn.
Nên dùng phần mềm nào để tính đường găng?
Hầu hết phần mềm quản lý dự án phổ biến đều tính đường găng tự động từ thời lượng và quan hệ phụ thuộc. Với dự án nhỏ, bảng tính cũng đủ nếu nắm cách tính thuận và tính ngược. Quan trọng hơn công cụ là chất lượng logic đầu vào.
Có nên công bố thời gian dự trữ cho từng người phụ trách không?
Đây là câu hỏi còn tranh luận. Công khai dự trữ giúp phối hợp minh bạch, nhưng định luật Parkinson cho thấy công việc có xu hướng giãn ra lấp đầy thời gian có sẵn. Nhiều người làm nghề quản lý dự trữ ở cấp dự án thay vì giao cho từng công việc.
CPM có dùng được cho dự án agile không?
Bên trong một vòng lặp ngắn thì ít cần, vì nhóm tự tổ chức việc. Nhưng ở cấp lộ trình sản phẩm có phụ thuộc giữa các nhóm, phần cứng, đối tác bên ngoài hay mốc pháp lý, phân tích chuỗi phụ thuộc dài nhất vẫn hữu ích để biết đâu là điểm nghẽn thời gian.