PERT/CPM (Phân tích mạng lịch trình · Phương pháp đường găng)
1. Tổng quan
A. Định nghĩa
PERT/CPM là kỹ thuật phân tích mạng lịch trình, biểu diễn các hoạt động (Activity) cấu thành dự án và quan hệ trước-sau của chúng dưới dạng mạng (đồ thị) và, dùng thời lượng của từng hoạt động, suy ra thời gian dự trữ (Float) và đường găng (Critical Path) qua tính tiến và tính lùi, nhờ đó tính toán định lượng thời gian hoàn thành ngắn nhất và thứ tự ưu tiên kiểm soát của toàn bộ lịch trình. CPM (Critical Path Method, phương pháp đường găng) là kỹ thuật tất định coi thời lượng hoạt động là giá trị xác định, còn PERT (Program Evaluation and Review Technique) là kỹ thuật xác suất xử lý thời lượng bằng ước lượng ba điểm (3-point estimate).
Lý do căn bản khiến hai kỹ thuật này mạnh mẽ nằm ở chỗ chúng phân định rõ ràng "công việc nào chậm thì toàn bộ dự án chậm." Một dự án có hàng chục đến hàng trăm hoạt động đan xen song song và tuần tự, nên chỉ liệt kê danh sách hoạt động và thời lượng thì không thể biết "hiện cần tập trung nguồn lực quản lý vào đâu." PERT/CPM cấu trúc hóa quan hệ phụ thuộc giữa các hoạt động thành mạng và tìm ra đường dài nhất (đường găng), nhờ đó nhận diện số ít hoạt động then chốt gắn trực tiếp với việc trễ lịch trình. Hoạt động trên đường găng có dự trữ bằng 0 nên chỉ chậm một ngày là dự án chậm đúng một ngày, còn hoạt động ngoài đường găng dù chậm trong phạm vi dự trữ vẫn không ảnh hưởng đến lịch trình tổng thể. Người quản lý phân bổ nguồn lực và giám sát một cách chọn lọc dựa trên sự phân biệt này.
B. Bối cảnh ra đời và sự cần thiết
Hai kỹ thuật ra đời gần như đồng thời vào cuối thập niên 1950, nhưng từ những động cơ khác nhau. CPM được Kelley & Walker tại DuPont và Remington Rand phát triển năm 1957 nhằm tối ưu đồng thời thời hạn và chi phí của các dự án lặp lại có thời hạn và chi phí tương đối được biết rõ, như bảo trì định kỳ và xây dựng nhà máy hóa chất. Ngược lại, PERT được thiết kế năm 1958 cho chương trình tên lửa tàu ngầm Polaris của Hải quân Hoa Kỳ, nhằm xử lý tính bất định của các dự án nghiên cứu và phát triển (R&D) mới nơi hàng nghìn hoạt động đan xen và thời hạn khó xác định. Nghĩa là CPM xuất phát từ "đánh đổi chi phí-thời hạn," còn PERT từ "quản lý bất định lịch trình," hai cách đặt vấn đề khác nhau; nhưng ngày nay chúng chia sẻ khung xương chung là phân tích mạng nên thường được gọi gộp là "PERT/CPM."
Lý do kỹ thuật này cần thiết là vì dự án càng lớn và nhiều hoạt động thì càng không thể dự đoán thời gian hoàn thành và điểm nghẽn chỉ bằng trực giác và kinh nghiệm. Chỉ với vài chục hoạt động, tổ hợp đường đi đã tăng vọt, và thường xảy ra chuyện "công việc trông có vẻ gấp" thực ra là hoạt động ngoài đường găng có dự trữ lớn, còn công việc âm thầm tiến triển lại chính là trên đường găng. PERT/CPM gạt bỏ ảo giác này và cung cấp cơ sở định lượng cho việc thiết lập đường cơ sở (baseline) lịch trình, kiểm soát tiến độ, cân bằng nguồn lực, và ra quyết định rút ngắn lịch trình. PMBOK cũng xem kỹ thuật này là công cụ cốt lõi của lĩnh vực kiến thức quản lý lịch trình, theo dòng "sắp thứ tự hoạt động → ước lượng thời lượng → xây dựng lịch trình."
C. Đặc điểm chính
Đặc điểm thứ nhất của PERT/CPM là nó là phân tích cấu trúc dựa trên quan hệ phụ thuộc. Vì các hoạt động được nối bằng logic trước-sau chứ không chỉ liệt kê, ta có thể lần theo việc một hoạt động chậm lan tỏa sang những hoạt động kế tiếp nào. Ví dụ, nếu phân tích yêu cầu chậm 3 ngày, ta phán định trên sơ đồ liệu các hoạt động sau nó—thiết kế, phát triển, kiểm thử—có bị đẩy lùi theo chuỗi hay được hấp thụ trong dự trữ của công việc song song. Thứ hai, nó cung cấp chỉ số kiểm soát định lượng gọi là dự trữ. Bằng cách tính Dự trữ toàn phần (Total Float) và Dự trữ tự do (Free Float) của mỗi hoạt động, nó gán thứ tự ưu tiên quản lý bằng con số, nên nguồn lực có thể được phân bổ cho "công việc thực sự quyết định ngày hoàn thành" thay vì "công việc có cảm giác gấp."
Thứ ba, nó trở thành nền tảng cho phân tích what-if. Vì có thể lập tức xác nhận qua tính lại mạng rằng ngày hoàn thành thay đổi ra sao khi đổi thời lượng hoặc song song hóa hoạt động, nó hỗ trợ quyết định rút ngắn lịch trình (Crashing/Fast Tracking). Thứ tư, nó tạo ra ngôn ngữ chung cho giao tiếp và kiểm soát. Vì đường găng, mốc và dự trữ được chia sẻ dưới dạng một sơ đồ duy nhất, chủ đầu tư, PM và bộ phận nghiệp vụ bàn về tiến độ trên cùng một cơ sở và, khi xảy ra chậm trễ, có thể thương lượng khách quan về trách nhiệm và biện pháp khắc phục. Tuy nhiên, tất cả các đặc điểm này chỉ thành lập trên tiền đề rằng định nghĩa hoạt động và ước lượng thời lượng chính xác, và cũng cần nhận thức giới hạn rằng một mạng thuần túy không phản ánh ràng buộc nguồn lực có thể lệch khỏi lịch trình thực thi thực tế.
2. Cấu trúc tổng thể và các thành phần
Phân tích mạng lịch trình tiến hành theo một chuỗi trong đó công việc đã phân rã bằng WBS được định nghĩa thành hoạt động và sắp thứ tự, sau đó xây dựng mạng để suy ra đường găng và, nếu cần, rút ngắn lịch trình. Dưới đây là sơ đồ cấu trúc tổng thể.
flowchart TD
WBS["WBS(Cấu trúc phân rã công việc)"] --> ACT["Định nghĩa hoạt động(Activity Definition)"]
ACT --> SEQ["Sắp thứ tự hoạt động(thiết lập quan hệ phụ thuộc)"]
SEQ --> EST["Ước lượng thời lượng hoạt động"]
EST --> NET["Xây dựng mạng lịch trình(AON/AOA)"]
NET --> FWD["Tính tiến(ES·EF)"]
FWD --> BWD["Tính lùi(LS·LF)"]
BWD --> FLOAT["Tính dự trữ(Float)"]
FLOAT --> CP["Nhận diện đường găng(Critical Path)"]
CP --> BASE["Chốt Baseline lịch trình"]
CP --> COMP["Rút ngắn lịch trình(Crashing/Fast Tracking)"]
COMP --> NET
Xét các thành phần theo thứ tự: trước hết, Hoạt động (Activity) là đơn vị công việc tiêu tốn nguồn lực và thời gian, thu được bằng cách chia nhỏ hơn nữa gói công việc thấp nhất của WBS thành các đơn vị khả thi để thực thi. Sự kiện/Nút (Event/Node) là khoảnh khắc đánh dấu thời điểm bắt đầu hoặc kết thúc của hoạt động và không tiêu tốn thời gian. Quan hệ phụ thuộc (Dependency) là ràng buộc trước-sau logic giữa các hoạt động, chia thành phụ thuộc bắt buộc phải tuân thủ (Mandatory, hard logic), phụ thuộc tùy ý chọn theo thông lệ (Discretionary, soft logic), và phụ thuộc bên ngoài do yếu tố bên ngoài. Thời lượng (Duration) là thời gian cần để hoàn thành mỗi hoạt động.
Mặt khác, Mốc (Milestone), một hoạt động đặc biệt có thời lượng bằng 0, được dùng để đánh dấu các thời điểm kiểm soát quan trọng như hợp đồng, phê duyệt, hoặc hoàn tất một giai đoạn; nó không có công việc thực tế nhưng đóng vai trò làm rõ trong mạng các điểm đồng thuận với bên liên quan. Đặt mốc trên đường găng có thể nhấn mạnh về mặt hợp đồng sự thật rằng "nếu phê duyệt này chậm thì dự án chậm đúng chừng ấy."
Có hai ký pháp để đưa hoạt động vào sơ đồ. AON (Activity-on-Node, kiểu nút · PDM) biểu diễn hoạt động bằng nút hình chữ nhật và quan hệ phụ thuộc bằng mũi tên, và là chuẩn được hầu hết công cụ PM ngày nay (MS Project, Primavera P6) áp dụng. AOA (Activity-on-Arrow, kiểu mũi tên · ADM) là kiểu cổ điển biểu diễn hoạt động bằng mũi tên và sự kiện bằng nút; vì nó cần một Hoạt động giả (Dummy Activity) không có công việc thực tế để làm logic nhất quán, hiện nay ít được dùng. PDM chia nhỏ quan hệ giữa các hoạt động thành bốn loại.
| Loại phụ thuộc | Ý nghĩa | Ví dụ |
|---|---|---|
| FS (Finish-to-Start) | Hoạt động sau bắt đầu sau khi hoạt động trước kết thúc (phổ biến nhất) | Bắt đầu phát triển sau khi thiết kế xong |
| SS (Start-to-Start) | Hoạt động sau có thể bắt đầu khi hoạt động trước bắt đầu | Bắt đầu đặt ống ngay sau khi bắt đầu đào |
| FF (Finish-to-Finish) | Hoạt động sau chỉ có thể kết thúc sau khi hoạt động trước kết thúc | Kết thúc tài liệu hóa sau khi kiểm thử xong |
| SF (Start-to-Finish) | Hoạt động sau chỉ có thể kết thúc sau khi hoạt động trước bắt đầu (hiếm) | Ngừng hệ thống cũ sau khi hệ thống mới vận hành |
Thêm vào đó, Lead (chồng lấn) và Lag (chờ) được thêm để tinh chỉnh quan hệ. Chẳng hạn, "FS + Lag 2 ngày" nghĩa là hoạt động sau bắt đầu sau khi chờ 2 ngày kể từ khi hoạt động trước kết thúc, mô hình hóa các ràng buộc thực tế như bảo dưỡng bê tông hay chờ phê duyệt. Ngược lại, "FS − Lead 3 ngày" nghĩa là hoạt động sau có thể bắt đầu 3 ngày trước khi hoạt động trước kết thúc, biểu diễn sự chồng lấn tiến trình trong đó phát triển bắt đầu trên các phần đã chốt trước khi thiết kế hoàn toàn xong.
Lý do AON trở thành chuẩn cũng cần được hiểu trong bối cảnh thực tiễn. AOA phải chèn hoạt động giả để phân biệt hai hoạt động chia sẻ cùng sự kiện bắt đầu/kết thúc nhưng khác logic; mạng càng lớn thì hoạt động giả càng tăng vọt, làm việc lập và diễn giải trở nên rườm rà. AON đặt hoạt động làm nút và chỉ biểu diễn quan hệ bằng mũi tên nên không cần hoạt động giả, và có thể chứa FS·SS·FF·SF cùng Lead/Lag một cách tự nhiên, thuận lợi cho tin học hóa. Vì vậy hầu như toàn bộ công cụ quản lý lịch trình thương mại ngày nay đều áp dụng AON (PDM).
3. Quy trình tính đường găng (Tính tiến và tính lùi)
Cốt lõi của việc suy ra đường găng là tính thời điểm bắt đầu/kết thúc sớm nhất (ES·EF) và bắt đầu/kết thúc muộn nhất (LS·LF) của mỗi hoạt động và nối các hoạt động mà chênh lệch của chúng—dự trữ—bằng 0. Việc tính toán tiến hành theo hai hướng.
Tính tiến (Forward Pass) đi từ đầu mạng đến cuối, tính ES (Early Start) và EF (Early Finish, = ES + thời lượng). ES của một hoạt động là giá trị lớn nhất trong các EF của mọi hoạt động trước (vì nó chỉ bắt đầu khi mọi hoạt động trước kết thúc). Tính đến hết theo cách này, EF của hoạt động cuối cùng chính là thời gian hoàn thành ngắn nhất của dự án. Tính lùi (Backward Pass) ngược lại đi từ cuối về đầu, tính LF (Late Finish) và LS (Late Start, = LF − thời lượng). LF của một hoạt động là giá trị nhỏ nhất trong các LS của mọi hoạt động sau (vì nó phải khớp với hoạt động sau sớm nhất).
Khi cả hai lượt tính xong, ta tính Dự trữ toàn phần (Total Float, TF) = LS − ES = LF − EF. TF là thời gian tối đa mà một hoạt động có thể trì hoãn mà không đẩy lùi ngày hoàn thành dự án. Dự trữ tự do (Free Float, FF) là thời gian có thể trì hoãn mà không đẩy lùi ES của các hoạt động sau, tính bằng "giá trị nhỏ nhất của ES các hoạt động sau − EF của hoạt động đó." Đường găng (Critical Path) là đường liên tục của các hoạt động có TF = 0; nó là đường dài nhất trong mạng và là đường quyết định thời gian hoàn thành.
Một cách trực giác, tính tiến hỏi "nếu xuất phát càng sớm càng tốt thì mỗi hoạt động kết thúc khi nào," còn tính lùi hỏi "để giữ ngày hoàn thành thì mỗi hoạt động muộn nhất phải kết thúc khi nào." Lý do tính tiến dùng "giá trị lớn nhất của EF các hoạt động trước" là vì hoạt động sau chỉ bắt đầu khi mọi hoạt động trước hoàn tất, còn lý do tính lùi dùng "giá trị nhỏ nhất của LS các hoạt động sau" là vì lịch trình tổng thể chỉ được giữ khi khớp với hoạt động sau phải bắt đầu sớm nhất. Giá trị từ hai hướng gặp nhau tạo thành dự trữ, và các điểm mà dự trữ đó bằng 0 trở thành đường găng không còn chỗ cho trì hoãn.
Quá trình tính được cụ thể hóa bằng mạng ví dụ dưới đây. Bắt đầu từ hoạt động A (3 ngày), nó rẽ nhánh sang B (4 ngày) và C (2 ngày); B dẫn sang D (5 ngày) và C dẫn sang E (6 ngày), rồi hợp lưu tại F (2 ngày).
flowchart LR
START(("Bắt đầu")) --> A["A (3 ngày)"]
A --> B["B (4 ngày)"]
A --> C["C (2 ngày)"]
B --> D["D (5 ngày)"]
C --> E["E (6 ngày)"]
D --> F["F (2 ngày)"]
E --> F
F --> END(("Kết thúc"))
Có hai đường. "A→B→D→F" là 3+4+5+2 = 14 ngày, còn "A→C→E→F" là 3+2+6+2 = 13 ngày. Do đó thời gian hoàn thành ngắn nhất là 14 ngày và đường găng là A-B-D-F. Sắp xếp kết quả tính tiến/lùi và dự trữ vào bảng cho ra như sau.
| Hoạt động | Thời lượng | ES | EF | LS | LF | TF | Đường găng |
|---|---|---|---|---|---|---|---|
| A | 3 | 0 | 3 | 0 | 3 | 0 | ● |
| B | 4 | 3 | 7 | 3 | 7 | 0 | ● |
| C | 2 | 3 | 5 | 7 | 9 | 4 | |
| D | 5 | 7 | 12 | 7 | 12 | 0 | ● |
| E | 6 | 5 | 11 | 9 | 12 | 4 | |
| F | 2 | 12 | 14 | 12 | 14 | 0 | ● |
C và E có 4 ngày dự trữ nên dù chậm tới 4 ngày cũng không ảnh hưởng ngày hoàn thành dự án (14 ngày), trong khi A·B·D·F có dự trữ bằng 0 và chỉ một ngày chậm cũng trực tiếp đẩy lùi ngày hoàn thành. Chỉ từ một bảng này, người quản lý lập tức rút ra kết luận "tập trung giám sát vào A-B-D-F, và có dư địa tái phân bổ nguồn lực từ C·E."
Sự phân biệt giữa dự trữ toàn phần và dự trữ tự do cũng quan trọng trong thực tiễn. Dự trữ toàn phần là "giới hạn không đẩy lùi ngày hoàn thành dự án," còn dự trữ tự do là "giới hạn không đẩy lùi thời điểm bắt đầu của hoạt động sau kề ngay." Trong ví dụ trên, dự trữ tự do của hoạt động E là ES của hoạt động sau F (12) − EF của E (11) = chỉ 1 ngày. Nghĩa là dù E có 4 ngày dự trữ toàn phần, nếu chậm quá một ngày thì bắt đầu đẩy hoạt động sau F, nên trong cùng các hoạt động ngoài đường găng, hoạt động có dự trữ tự do nhỏ phải được kiểm soát với cường độ cao hơn. Việc phân biệt các loại dự trữ để phân hóa cường độ quản lý như vậy chính là cốt lõi của kiểm soát lịch trình tinh vi vượt trên việc chỉ nhận diện đường găng.
4. Ước lượng xác suất của PERT và so sánh với CPM
Trong khi CPM coi thời lượng là một giá trị xác định duy nhất, PERT mô hình hóa tính bất định một cách tường minh. Với mỗi hoạt động, ba giá trị—Lạc quan (O, Optimistic), Khả dĩ nhất (M, Most likely), Bi quan (P, Pessimistic)—được ước lượng, và, giả định phân phối beta, tính thời lượng kỳ vọng te = (O + 4M + P) / 6, độ lệch chuẩn σ = (P − O) / 6, và phương sai σ² = ((P − O)/6)². Ví dụ, nếu một hoạt động thiết kế được ước lượng là O=4 ngày, M=6 ngày, P=14 ngày, thì te = (4 + 24 + 14)/6 = 7 ngày, σ ≈ 1,67 ngày, σ² ≈ 2,78. Lưu ý rằng dù giá trị khả dĩ nhất là 6 ngày, đuôi bi quan dài kéo thời lượng kỳ vọng lên 7 ngày.
Lý do đặt trọng số khác nhau cho ba giá trị cũng đáng nêu. Hệ số (O + 4M + P)/6 xấp xỉ trung bình của phân phối beta; vì trong thực tế các giá trị gần khả dĩ nhất (M) xuất hiện thường xuyên nhất nên được cho trọng số gấp 4, còn các giá trị cực đoan lạc quan và bi quan chỉ được phản ánh 1 lần mỗi giá trị. Lấy độ lệch chuẩn là (P − O)/6 là một xấp xỉ khai thác tính chất rằng, trong phân phối chuẩn, trung bình ± 3σ bao phủ khoảng 99,7% toàn thể (khoảng = 6σ). Do đó, khoảng cách giữa giá trị lạc quan và bi quan càng rộng thì tính bất định (phương sai) của hoạt động đó càng lớn, và điều này chính là nguồn gốc rủi ro ngày hoàn thành.
Giá trị thực sự của PERT nằm ở chỗ nó cho phép các phát biểu xác suất về ngày hoàn thành. Sau khi cộng te của các hoạt động trên đường găng để có thời lượng kỳ vọng của dự án, và cộng các phương sai (xấp xỉ bằng phân phối chuẩn dựa trên định lý giới hạn trung tâm) để có độ lệch chuẩn tổng thể, chuẩn hóa bằng Z = (ngày mục tiêu − thời lượng kỳ vọng) / σ cho ra câu trả lời như "xác suất hoàn thành trong ngày mục tiêu là khoảng bao nhiêu %." Chẳng hạn, với một dự án có thời lượng kỳ vọng 100 ngày và độ lệch chuẩn 5 ngày, xác suất hoàn thành trong 110 ngày là Z = (110−100)/5 = 2,0, tức khoảng 97,7%. Đây là cơ sở mạnh mẽ để trình bày định lượng cho ban lãnh đạo rằng "cần đặt bao nhiêu ngày đệm để bảo đảm mức tin cậy mục tiêu."
Nhìn vào một trường hợp thực tế trong ngành, trong một dự án SI lớn, phân tích yêu cầu, thiết kế kiến trúc, phát triển mô-đun cốt lõi và kiểm thử tích hợp thường tạo thành đường găng, trong khi các hoạt động như UI màn hình hay tài liệu hóa thường thuộc công việc ngoài đường găng với dự trữ lớn. Nếu PM ở đây tập trung vào tỷ lệ tiến độ màn hình nhưng bỏ sót việc dựng môi trường kiểm thử tích hợp (trên đường găng) thì lịch go-live bị đẩy lùi tương ứng. Ngược lại, R&D chưa có tiền lệ như thuốc mới hay vệ tinh có tính bất định lớn về thời lượng hoạt động, nên thay vì một giá trị duy nhất phải trình bày xác suất hoàn thành bằng ước lượng ba điểm để ban lãnh đạo chấp nhận rủi ro thời điểm ra mắt. Như vậy, dù cùng khung xương mạng, lựa chọn giữa CPM và PERT phân nhánh theo tính chất của dự án.
Nguyên nhân căn bản gây ra khác biệt giữa hai kỹ thuật nằm ở tính chất của dự án đối tượng. CPM phù hợp với các dự án lặp lại, kiểu xây dựng có thời lượng được biết ổn định và mạnh về tối ưu chi phí-thời hạn, còn PERT phù hợp với R&D và phát triển sản phẩm mới nơi không có tiền lệ và thời lượng không thể xác định. Về hàm ý thực tiễn, áp gánh nặng ước lượng ba điểm lên một dự án ổn định là lãng phí, và ngược lại, dùng một giá trị xác định duy nhất cho một dự án bất định cao sẽ đánh giá thấp rủi ro lịch trình.
| Phân loại | CPM (Phương pháp đường găng) | PERT |
|---|---|---|
| Ước lượng thời lượng | Giá trị xác định duy nhất (tất định) | Ước lượng ba điểm (xác suất) |
| Trọng tâm | Đánh đổi chi phí-thời hạn | Bất định lịch trình · xác suất hoàn thành |
| Dự án phù hợp | Lặp lại · xây dựng · bảo trì | R&D mới · dự án không lặp lại |
| Thời gian vs chi phí | Cân nhắc cả hai | Lấy thời gian làm trung tâm |
| Trường hợp tiêu biểu | Bảo trì nhà máy DuPont (1957) | Tên lửa Polaris (1958) |
Việc rút ngắn lịch trình dễ nắm bắt hơn khi cụ thể hóa bằng ví dụ trước đó. Giả sử đường găng A-B-D-F (14 ngày) phải rút xuống 12 ngày. Nếu độ dốc chi phí của mỗi hoạt động là B = 200.000 KRW/ngày, D = 150.000 KRW/ngày, F = 300.000 KRW/ngày, thì ta rút ngắn bắt đầu từ hoạt động rẻ nhất, D, 1 ngày (150.000 KRW), rồi rút thêm một ngày ở hoạt động nào có độ dốc thấp hơn giữa D và B, đạt tổng 2 ngày với chi phí tối thiểu (ví dụ: 15+15 = 300.000 KRW hoặc 15+20 = 350.000 KRW). Tuy nhiên, nếu rút D quá mức, đường song song A-C-E-F (13 ngày) nổi lên thành đường găng mới, nên tại mỗi bước rút ngắn phải tính lại mạng để xác nhận lại đường nào chi phối ngày hoàn thành. Bỏ qua quy trình này dẫn đến lãng phí đổ chi phí vào "một hoạt động không còn nằm trên đường găng."
Rút ngắn lịch trình (Schedule Compression) là ứng dụng tiêu biểu của phân tích đường găng. Crashing (nén tiến trình) thêm nguồn lực (nhân lực/chi phí) vào các hoạt động trên đường găng để giảm thời lượng, rút ngắn bắt đầu từ hoạt động có "Độ dốc chi phí (Cost Slope) = (chi phí khẩn − chi phí thường)/(thời lượng thường − thời lượng khẩn)" nhỏ nhất để đạt thời hạn mục tiêu với chi phí tối thiểu. Fast Tracking (chồng lấn tiến trình) giảm thời lượng bằng cách chồng song song các hoạt động vốn làm tuần tự, nhưng làm tăng làm lại (rework) và rủi ro. Cả hai kỹ thuật chỉ hiệu quả khi áp dụng chỉ vào đường găng; rút ngắn một hoạt động ngoài đường găng là vô nghĩa vì không ảnh hưởng ngày hoàn thành. Lưu ý rằng khi rút ngắn đường găng, xảy ra "dịch chuyển đường găng" trong đó một đường khác trở thành đường găng mới, nên cần tính lại ở mỗi bước.
5. Nâng cao: Mô phỏng Monte Carlo và các mở rộng hiện đại
PERT truyền thống có giới hạn là nó "chỉ phân tích xác suất trên một đường găng duy nhất." Trong thực tế, một đường ngoài đường găng có thể trở thành đường găng bất cứ lúc nào tùy theo độ chậm của hoạt động (hội tụ đường/thiên lệch hợp lưu, Merge Bias), và bỏ qua điều này sẽ đánh giá quá cao xác suất hoàn thành một cách lạc quan. Giải pháp thay thế hiện đại khắc phục giới hạn này là mô phỏng Monte Carlo (Monte Carlo Simulation). Sau khi định nghĩa thời lượng mỗi hoạt động là một phân phối xác suất như tam giác, beta, hay PERT, hàng nghìn đến hàng chục nghìn mẫu ngẫu nhiên được rút, toàn bộ mạng được tính lại ở mỗi lần lặp, và tính được phân phối của ngày hoàn thành cùng tần suất mỗi hoạt động nằm trên đường găng (Chỉ số găng, Criticality Index). Ví dụ, nếu Criticality Index của một hoạt động là 80% thì nghĩa là "nó nằm trên đường găng trong 80% mọi kịch bản," cung cấp thứ tự ưu tiên rủi ro thực tế hơn nhiều so với một phân tích tất định đơn lẻ. Các công cụ như Primavera Risk Analysis, @RISK, và Safran Risk hỗ trợ điều này, và nó được dùng như chuẩn trong Phân tích rủi ro lịch trình (Schedule Risk Analysis) định lượng của các dự án EPC và SI lớn.
Một cái bẫy tiêu biểu mà Monte Carlo phơi bày là thiên lệch hợp lưu (Merge Bias) đã nêu ở trên. Khi nhiều đường gặp nhau tại một điểm hợp lưu, ngày hoàn thành bị chi phối bởi "đường kết thúc muộn nhất" trong số đó. Dù mỗi đường trung bình có xác suất kết thúc đúng hạn là 50%, vì cả hai đường phải kết thúc đúng hạn thì hợp lưu mới đúng hạn, nên xác suất điểm hợp lưu đúng hạn tụt mạnh xuống 0,5 × 0,5 = 25%. CPM tất định không thấy được hiệu ứng này và đánh giá quá cao xác suất hoàn thành, trong khi Monte Carlo tái hiện chính xác điều đó qua hàng chục nghìn lần mô phỏng để trình bày phân phối ngày hoàn thành thực tế. Vì vậy, một dự án càng có nhiều đường gần găng (Near-Critical Path) với dự trữ nhỏ thì giá trị của phân tích dựa trên mô phỏng càng lớn.
Một mở rộng khác là Phương pháp chuỗi găng (CCPM, Critical Chain) dựa trên Lý thuyết ràng buộc (TOC). Trong khi CPM truyền thống bỏ qua ràng buộc nguồn lực và chỉ xử lý phụ thuộc logic, CCPM định nghĩa một "chuỗi găng" cũng cân nhắc tranh chấp nguồn lực, loại bỏ biên an toàn ẩn trong từng hoạt động, và gom nó về đuôi dự án để quản lý như một bộ đệm dự án (chi tiết xem [[critical-chain-project-management]]). Trong môi trường agile/lai, khi lặp theo đơn vị sprint trở thành nhịp chính, trọng số của mạng chi tiết đã giảm, nhưng logic mạng và khái niệm đường găng vẫn được dùng ở cấp lập kế hoạch phát hành, quản lý phụ thuộc giữa các mốc, và lộ trình SAFe của các chương trình lớn. Thực tế, MS Project, Primavera P6, Jira Advanced Roadmaps và các công cụ khác cung cấp tính năng làm nổi bật quan hệ phụ thuộc và đường găng như tính năng chuẩn.
6. Các điểm cân nhắc và hàm ý
Thứ nhất, chất lượng ước lượng chi phối độ tin cậy của phân tích (Garbage In, Garbage Out). Dù mạng có tinh vi đến đâu, nếu ước lượng thời lượng hoạt động và quan hệ phụ thuộc kém thì đường găng và ngày hoàn thành bị bóp méo. Cần có quản trị ước lượng kết hợp dữ liệu lịch sử của các dự án tương tự, phán đoán chuyên gia, và ước lượng ba điểm, đồng thời phòng ngừa thiên lệch lạc quan (Optimism Bias) và hội chứng sinh viên.
Thứ hai, phải xem xét ràng buộc nguồn lực cùng lúc. CPM thuần túy giả định nguồn lực vô hạn, nên về lý thuyết đường găng và lịch trình khả thi thực tế có thể lệch nhau. Áp dụng cân bằng nguồn lực (Resource Leveling) làm đường găng thay đổi hoặc ngày hoàn thành kéo dài, nên cần một chiến lược tích hợp phân tích mạng với quản lý nguồn lực và bổ sung bằng CCPM và lập lịch có ràng buộc nguồn lực.
Thứ ba, đường găng không cố định mà dịch chuyển động. Vì đường găng thay đổi thường xuyên theo tiến độ, chậm trễ, và rút ngắn, không nên kết thúc bằng một lần tính tại thời điểm khởi động mà phải tính lại định kỳ (phân tích lại sau khi phản ánh tiến độ). Theo dõi các đường gần găng (Near-Critical Path, đường có dự trữ nhỏ) cùng lúc để quản lý phủ đầu rủi ro tiềm ẩn là chiến lược thực tiễn theo quan điểm của Kỹ sư chuyên nghiệp.
Thứ tư, quyết định rút ngắn là một đánh đổi giữa chi phí, chất lượng và rủi ro. Crashing làm tăng chi phí, còn Fast Tracking làm tăng làm lại và rủi ro chất lượng. Nên nén từng bước bắt đầu từ các hoạt động có độ dốc chi phí thấp, xác nhận lại dịch chuyển đường găng ở mỗi bước, và phán đoán tổng hợp liệu việc rút ngắn có lan sang rủi ro hạ nguồn (làm việc quá sức, suy giảm chất lượng) hay không.
Thứ năm, quản lý lịch trình tích hợp với các lĩnh vực hiệu quả khác. Phân tích đường găng thể hiện giá trị thực khi kết hợp với Chỉ số hiệu quả lịch trình (SPI) của EVM (Quản lý giá trị thu được). Khi SPI xấu đi, phải phân biệt qua mạng liệu nguyên nhân là chậm trễ ở một hoạt động trên đường găng hay vấn đề ở một hoạt động ngoài đường găng để đưa ra biện pháp khắc phục chính xác (liên kết: [[earned-value-management]]).
Thứ sáu, chọn sự phù hợp của công cụ và phương pháp theo đặc điểm dự án. Với kiểu lặp lại/xây dựng, dùng CPM+Crashing; với R&D bất định cao, PERT+Monte Carlo; nơi tranh chấp nguồn lực gay gắt, CCPM; và với phần mềm có biến động yêu cầu lớn, một mô hình lai với agile là hiệu quả. Nhìn về phía trước, dự đoán lịch trình bằng AI dựa trên dữ liệu hiệu suất sẽ kết hợp với mô phỏng Monte Carlo, tiến hóa thành quản lý lịch trình thông minh cập nhật xác suất hoàn thành và các hoạt động rủi ro theo thời gian thực.
Tài liệu tham khảo
- PMI, A Guide to the Project Management Body of Knowledge (PMBOK Guide) — Schedule Management: https://www.pmi.org/
- Kelley, J. E. & Walker, M. R., "Critical-Path Planning and Scheduling" (1959): https://dl.acm.org/doi/10.1145/1460299.1460318
- U.S. GAO, Schedule Assessment Guide (GAO-16-89G): https://www.gao.gov/products/gao-16-89g
Tóm tắt một câu: PERT/CPM là kỹ thuật phân tích lịch trình nối các hoạt động thành mạng và suy ra dự trữ cùng đường găng qua tính tiến và tính lùi; CPM mạnh về tối ưu chi phí-thời hạn tất định còn PERT mạnh về dự đoán hoàn thành xác suất dựa trên ước lượng ba điểm, được mở rộng bằng Monte Carlo và CCPM.