Chipi Limited
Silverdale, Auckland, New Zealand
NZBN: 9429053537539

Bóc tách sáu nguồn rò rỉ biên lợi nhuận là cách để biết dự án phần mềm mất tiền ở đâu khi lãi trên báo giá thành lỗ lúc bàn giao.
Báo giá được duyệt với biên lợi nhuận 25%. Sáu tháng sau, bảng quyết toán dự án ghi lỗ. Cuộc họp kết thúc bằng câu quen thuộc: dự án khó hơn dự kiến. Ai cũng gật, rồi ai cũng về, và báo giá tiếp theo lại được duyệt với biên 25%.
Hai con số đó không mâu thuẫn nhau. Chúng đo hai thứ khác nhau. Biên trên báo giá là biên kỳ vọng, tính từ số giờ mà người lập báo giá tin rằng dự án sẽ tốn. Biên khi bàn giao tính từ số giờ dự án thật sự tốn, cộng những khoản mà báo giá chưa từng có dòng nào cho chúng. Khoảng cách giữa hai con số gồm sáu dòng chảy nhỏ, mỗi dòng có tên, có cách đo, và có mức độ khác nhau.
Bài này viết cho bên nhận việc, tức công ty phần mềm, công ty outsourcing và agency kỹ thuật, dành cho người muốn quy nguyên nhân ra tiền thay vì dừng ở chuyện kể. Nó đi qua sáu nguồn rò rỉ biên theo thứ tự số tiền, đặt chúng vào một bảng đối chiếu báo giá với quyết toán của một dự án mẫu, rồi chỉ cách đo từng nguồn bằng dữ liệu giờ công.
Một báo giá có căn cứ đi từ giờ ước lượng cho từng hạng mục, nhân với cost rate (đơn giá chi phí của một giờ công) của cấp bậc sẽ làm hạng mục đó, cộng phần chi phí gián tiếp, rồi so với giá bán để ra biên. Cách dựng từng bước nằm ở bài cách tính giá dự án phần mềm, và cost rate lấy từ bảng tính cost rate theo giờ.
Dự án mẫu của bài đó sẽ được dùng lại ở đây. Ước lượng 10 man month theo quy ước 160 giờ, tức 1.600 giờ, gồm 640 giờ của nhân sự cấp cao (senior) và 960 giờ của nhân sự cấp trung (middle). Cost rate trên giờ bán được là 447.727 đồng cho senior và 288.647 đồng cho middle, chưa gồm bảo hiểm bắt buộc. Chi phí gián tiếp 20% trên nhân công. Chi phí kỳ vọng của dự án là 676,4 triệu. Giá bán 900 triệu, biên kỳ vọng 223,6 triệu, tương đương 24,8% (*).
Mọi con số trong báo giá đó là giả định về tương lai, từ số giờ, phạm vi, tới việc khách sẽ phản hồi đúng hạn. Dự án là quá trình từng giả định bị kiểm chứng, và phần lớn chúng bị kiểm chứng theo hướng tốn thêm.
Sáu nguồn dưới đây xếp theo số tiền chúng lấy đi trong dự án mẫu. Thứ tự ở công ty bạn có thể khác, nhưng danh sách thì hiếm khi thiếu nguồn nào.

Đây là nguồn lớn nhất và cũng là nguồn ít bị đổ lỗi nhất, vì nó không có thủ phạm. Hạng mục tích hợp với hệ thống của khách được ước lượng 320 giờ senior, thực tế tốn 480 giờ, vì tài liệu API của bên kia sai ba chỗ và môi trường thử nghiệm của họ chỉ mở vào giờ hành chính. Không ai làm sai, việc chỉ khó hơn người ước lượng nghĩ.
Trong dự án mẫu, 160 giờ senior vượt trên hạng mục tích hợp là 71,6 triệu. Báo giá không có dòng cho khoản này, vì nếu người lập báo giá biết trước hạng mục sẽ tốn 480 giờ thì họ đã báo 480 giờ (*).
Dấu hiệu nhận ra: một hạng mục vượt giờ trong khi phạm vi của nó không đổi. Cách đo là giờ thực trừ giờ đã báo, tính theo từng hạng mục, và quan trọng hơn là ghi lại hệ số lệch theo loại việc để lần sau ước lượng bằng dữ liệu thay vì bằng cảm giác. Vòng đối chiếu đó sẽ có bài riêng.
Scope creep (phạm vi phình dần) là những yêu cầu không có trong hợp đồng nhưng đội vẫn làm. Khách hỏi thêm một màn hình báo cáo “chắc nhanh thôi”. Trưởng nhóm đồng ý vì đang muốn giữ quan hệ. Việc đó tốn ba ngày, không ai ghi lại, không ai thu thêm, và ba tháng sau không ai nhớ.
Dự án mẫu có 40 giờ senior và 120 giờ middle rơi vào các yêu cầu ngoài phạm vi, tổng 52,5 triệu. Đây là nguồn duy nhất trong sáu nguồn mà công ty có thể thu lại tiền, với điều kiện có dữ liệu giờ để đưa lên bàn đàm phán (*).
Có những tỷ lệ phần trăm về scope creep đang lan truyền trên mạng, kiểu “phần lớn dự án gặp scope creep”. Bài này không dùng chúng vì không tìm được nguồn gốc. Con số duy nhất đáng tin là con số của chính công ty bạn, đo bằng giờ gắn nhãn “ngoài phạm vi” trong bảng chấm công, đối chiếu với nhật ký yêu cầu thay đổi. Cách tính chi phí một yêu cầu phát sinh và cách dùng nó để thương lượng sẽ có bài riêng.
Dự án bàn giao xong vẫn chưa hết tốn. Trong thời gian bảo hành, mỗi lỗi khách báo là giờ công thật của đội, và không có hóa đơn nào đi kèm. Khoản này bị bỏ quên vì lúc lập báo giá nó chưa xảy ra, còn lúc nó xảy ra thì dự án đã đóng sổ và giờ sửa lỗi bị ghi vào dự án mới hoặc vào chi phí chung.
Dự án mẫu trích trước 5% giá bán cho bảo hành, tức 45 triệu. Tỷ lệ này là tỷ lệ của bộ mẫu. Ở công ty bạn, nó phải lấy từ lịch sử lỗi của chính các dự án đã qua, theo loại dự án, vì dự án dùng công nghệ lạ tốn bảo hành hơn dự án quen việc (*).
Cách đo: giờ chấm sau ngày bàn giao mà vẫn gắn mã dự án cũ. Cách xử lý trong báo cáo, trích trước hay ghi thực tế, nằm ở bài báo cáo lãi lỗ từng dự án.
Chi phí ẩn là những khoản có thật, tốn thật, nhưng không có tên trong báo giá vì chúng không phải “làm phần mềm”: họp với khách mỗi tuần hai tiếng trong sáu tháng, chờ khách duyệt thiết kế mười ngày trong khi đội đã được bố trí, demo cho ban giám đốc của khách ba lần, rồi license công cụ kiểm thử, máy chủ môi trường thử nghiệm, tiền đi lại gặp khách ở tỉnh.
Dự án mẫu có 60 giờ senior cho họp và chờ khách, tương đương 26,9 triệu, cộng 18 triệu mua ngoài không có trong báo giá, tổng 44,9 triệu. Phần giờ thường do trưởng dự án gánh, và trưởng dự án là người có cost rate cao nhất đội (*).
Cách đo: giờ gắn nhãn họp và chờ trong bảng chấm công, và hóa đơn gắn mã dự án mà không khớp với dòng nào trong báo giá. Danh sách đầy đủ các khoản ẩn của dự án phần mềm sẽ có bài riêng.
Nguồn này ít người nhìn thấy vì nó không phải một khoản chi mới. Chi phí gián tiếp của công ty, gồm văn phòng, quản lý, kế toán, được phân bổ về dự án theo giờ công. Khi dự án tốn thêm giờ, nó tự động gánh thêm phần chi phí chung, dù công ty không chi thêm đồng nào cho văn phòng. Dự án kéo dài từ sáu tháng thành tám tháng thì gánh thêm hai tháng chi phí chung theo đúng cơ chế đó.
Trong dự án mẫu, phần nhân công vượt của bốn nguồn có giờ (sai số ước lượng, scope creep, chi phí ẩn phần giờ, và giờ làm lại) cộng lại là 179,9 triệu. Với tỷ lệ gián tiếp 20%, dự án gánh thêm 36,0 triệu. Bảng này áp gián tiếp lên phần nhân công vượt, không áp lên mua ngoài và bảo hành, để dễ kiểm (*).
Cách đo: tỷ lệ gián tiếp nhân với phần nhân công vượt. Đây cũng là lý do dự phòng trong báo giá phải là dòng riêng, tách khỏi biên. Khi giờ vượt có đệm, phần gián tiếp gánh thêm cũng có đệm. Ba tiêu chí phân bổ và hệ quả của từng cách chọn nằm ở bài báo cáo lãi lỗ, và sẽ có bài riêng đi sâu hơn.
Nguồn cuối là giờ sửa lỗi kiểm thử phát hiện, giờ làm lại vì hiểu sai yêu cầu, giờ đập đi xây lại một phần vì thiết kế ban đầu không chịu tải. Khác với bảo hành, những giờ này xảy ra trước bàn giao và thường bị trộn vào giờ phát triển, nên không ai thấy chúng là một khoản riêng.
Dự án mẫu có 100 giờ middle làm lại, tương đương 28,9 triệu. Đây là nguồn nhỏ nhất trong sáu nguồn của dự án này, nhưng nó là nguồn phản ánh chất lượng quy trình rõ nhất, vì cùng một đội thì tỷ lệ giờ làm lại lặp lại khá ổn định qua các dự án (*).
Cách đo: giờ gắn nhãn sửa lỗi hoặc làm lại, chia cho tổng giờ dự án. Có tỷ lệ này của ba dự án là có ngưỡng nội bộ để đưa vào dự phòng của báo giá sau.
Đặt sáu nguồn cạnh nhau trên cùng dự án mẫu, bảng dưới đây là thứ CEO nên yêu cầu ở mỗi buổi đóng dự án. Cột cuối là cột quan trọng nhất, vì nó cho biết muốn có con số thì phải ghi dữ liệu gì (*).
| Thứ tự | Nguồn rò rỉ | Giờ hoặc khoản | Tiền (triệu đồng) | Cách đo |
|---|---|---|---|---|
| 1 | Sai số ước lượng | 160 giờ senior vượt trên hạng mục tích hợp | 71,6 | Giờ thực trừ giờ báo, theo hạng mục |
| 2 | Scope creep không thu thêm | 40 giờ senior và 120 giờ middle cho yêu cầu ngoài phạm vi | 52,5 | Giờ gắn nhãn ngoài phạm vi, đối chiếu nhật ký yêu cầu thay đổi |
| 3 | Bảo hành sau bàn giao | Trích trước 5% giá bán | 45,0 | Giờ sau ngày bàn giao còn gắn mã dự án |
| 4 | Chi phí ẩn | 60 giờ senior họp và chờ khách, 18 triệu mua ngoài | 44,9 | Giờ gắn nhãn họp, chờ; hóa đơn gắn dự án không khớp báo giá |
| 5 | Chi phí gián tiếp gánh thêm | 20% trên 179,9 triệu nhân công vượt | 36,0 | Tỷ lệ gián tiếp nhân phần nhân công vượt |
| 6 | Giờ làm lại | 100 giờ middle sửa lỗi và làm lại | 28,9 | Giờ gắn nhãn sửa lỗi, làm lại |
| Tổng rò rỉ | 278,9 |
Tổng giờ thực của dự án là 2.080, vượt 480 giờ so với 1.600 giờ đã báo, tức 30%. Chi phí quyết toán là 676,4 cộng 278,9, bằng 955,3 triệu. Bán 900 triệu, dự án lỗ 55,3 triệu, biên âm 6,1%. Từ lãi 24,8% trên báo giá xuống lỗ 6,1% khi bàn giao, và không con số nào trong bảng là bất thường với một dự án phần mềm tầm trung (*).
Điểm đáng chú ý là hai nguồn đầu chiếm 124,1 triệu trên 278,9, tức gần một nửa. Nếu chỉ sửa được hai thứ, sửa ước lượng và sửa cách xử lý yêu cầu phát sinh (*).
Bài báo cáo lãi lỗ từng dự án dựng báo cáo theo ba tầng biên: biên gộp, biên sau phân bổ chi phí gián tiếp, biên sau bảo hành. Sáu nguồn ở đây không ăn vào cùng một tầng. Sai số ước lượng, scope creep, chi phí ẩn và giờ làm lại ăn vào tầng một, vì chúng là nhân công trực tiếp và mua ngoài. Chi phí gián tiếp gánh thêm ăn vào tầng hai. Bảo hành ăn vào tầng ba.
Dự án DA01 trong bộ mẫu của bài đó có biên gộp dương 11,4% nhưng âm 68 triệu ở tầng ba. Bảng ba tầng cho biết kết quả, còn bảng sáu nguồn cho biết nguyên nhân, và đọc hai bảng cùng nhau thì khoanh được chỗ sửa. Một dự án âm ở tầng một thường có vấn đề ở ước lượng hoặc phạm vi; âm từ tầng hai trở đi thường có vấn đề ở giá bán không đủ gánh phần công ty, hoặc dự án kéo dài quá lâu (*).
Cả sáu nguồn có chung một điều kiện: bảng chấm công phải gắn dự án, gắn hạng mục và gắn nhãn loại giờ. Không có nhãn, sáu nguồn trộn thành một con số “vượt giờ”, và con số đó không sửa được gì vì không biết sửa ở đâu.
Bộ nhãn tối thiểu gồm sáu loại: trong phạm vi, ngoài phạm vi, sửa lỗi hoặc làm lại, họp với khách, chờ khách, bảo hành. Người chấm chọn một nhãn mỗi khi ghi giờ, mất thêm hai giây. Đổi lại, cuối dự án bảng đối chiếu tự có số.
| Nguồn | Dữ liệu cần | Ai ghi |
|---|---|---|
| Sai số ước lượng | Giờ báo theo hạng mục, giờ thực theo hạng mục | Người lập báo giá, đội phát triển |
| Scope creep | Giờ nhãn ngoài phạm vi, nhật ký yêu cầu thay đổi | Đội phát triển, trưởng dự án |
| Bảo hành | Giờ sau bàn giao gắn mã dự án cũ | Đội hỗ trợ |
| Chi phí ẩn | Giờ nhãn họp và chờ, hóa đơn gắn mã dự án | Trưởng dự án, kế toán |
| Chi phí gián tiếp | Tỷ lệ gián tiếp của kỳ, tổng nhân công vượt | CFO |
| Giờ làm lại | Giờ nhãn sửa lỗi, làm lại | Đội phát triển, kiểm thử |
Mẫu chấm công theo dự án của CostDesk có sẵn cột dự án và cột loại giờ, đủ để bắt đầu. Phần quy giờ ra tiền và ghép vào ba tầng biên nằm trong mẫu Excel tính lãi lỗ từng dự án. Riêng phần đối chiếu man month đã báo với giờ thực theo hạng mục, để rút hệ số ước lượng cho lần sau, sẽ có bài riêng.
Nguyên tắc là sửa theo số tiền. Công ty hay bắt đầu từ giờ làm lại vì nó có vẻ là lỗi kỹ thuật dễ chỉ ra, trong khi trong dự án mẫu nó là nguồn nhỏ nhất, còn hai nguồn đầu chiếm gần một nửa (*).
Bảng đối chiếu ở trên chỉ có ích nếu nó được dựng khi dự án đang chạy và cập nhật mỗi tuần. Dựng sau khi đóng dự án thì chỉ còn để rút kinh nghiệm. Dựng từ tháng thứ hai thì còn kịp sửa: thấy giờ ngoài phạm vi đã lên 40 giờ là lúc nói chuyện với khách, thấy hạng mục tích hợp đã tốn 300 giờ trên 320 giờ báo mà mới xong nửa là lúc điều chỉnh kế hoạch.
Excel làm được việc này khi công ty có ít dự án và có một người chịu trách nhiệm ghép số mỗi tuần. Bài quản lý chi phí dự án bằng Excel nói rõ giới hạn của cách đó. Khi giờ gắn nhãn, cost rate và hóa đơn mua ngoài nằm ở cùng một chỗ, bảng sáu nguồn tự cập nhật khi có giờ mới, và CostDesk được dựng để làm đúng việc đó, để câu hỏi “dự án này còn lãi không” có câu trả lời khi dự án còn đang chạy.
Bài này là một mảnh của cụm lợi nhuận dự án. Khung tổng thể từ giờ công tới lãi lỗ nằm ở bài quản lý chi phí dự án cho công ty phần mềm. Biên kỳ vọng được dựng thế nào, và vì sao dự phòng phải tách khỏi biên, nằm ở bài cách tính giá dự án phần mềm. Biên thực tế được trình bày theo ba tầng ở bài báo cáo lãi lỗ từng dự án. Nếu từng dự án đều lãi mà công ty vẫn không lãi, nguyên nhân thường ở ghế trống giữa các dự án, và utilization rate đo chuyện đó. File để dựng ngay là bảng chấm công, bảng cost rate và bảng lãi lỗ.
Biên trên báo giá và biên khi bàn giao khác nhau chỗ nào?
Biên trên báo giá tính từ giờ ước lượng và chỉ gồm các khoản người lập báo giá nhìn thấy trước. Biên khi bàn giao tính từ giờ thực và gồm cả các khoản báo giá không có dòng nào, như giờ ngoài phạm vi, giờ họp, bảo hành và phần gián tiếp gánh thêm.
Dự án vượt bao nhiêu phần trăm giờ là bình thường?
Không có con số chung đáng tin. Con số duy nhất có ích là hệ số lệch của chính công ty theo loại việc, rút từ ít nhất ba dự án đã đóng. Dự án mẫu trong bài vượt 30%, và mức đó đủ để biến lãi 24,8% thành lỗ (*).
Scope creep có phải nguyên nhân lớn nhất không?
Trong dự án mẫu, nó đứng thứ hai sau sai số ước lượng. Thứ tự ở công ty bạn chỉ biết được khi có giờ gắn nhãn. Điểm khác của scope creep so với năm nguồn còn lại là nó có thể thu lại tiền nếu có dữ liệu.
Giờ họp với khách có tính vào chi phí dự án không?
Có. Đó là giờ công thật, công ty đã trả lương, và nó phục vụ dự án đó. Bỏ nó ra là để chi phí biến mất khỏi mọi báo cáo. Cách xử lý đúng là đưa họp vào báo giá như một hạng mục có giờ.
Bảo hành nên trích trước bao nhiêu?
Lấy từ lịch sử lỗi của chính công ty theo loại dự án. Bộ mẫu dùng 5% để minh họa, con số này không phải chuẩn chung (*).
Vì sao dự án kéo dài thì chi phí gián tiếp tăng?
Vì chi phí gián tiếp được phân bổ về dự án theo giờ công. Dự án tốn thêm giờ thì gánh thêm phần chi phí chung, dù công ty không chi thêm gì cho văn phòng. Đây là chi phí cơ hội: giờ đó lẽ ra gánh phần chung cho một dự án khác có doanh thu.
Không chấm công theo hạng mục thì có bóc tách được không?
Bóc được phần thô: tổng giờ vượt và giờ sau bàn giao. Bốn nguồn còn lại sẽ trộn vào nhau. Nên thêm cột hạng mục và cột loại giờ vào bảng chấm công từ dự án tiếp theo.
Dự án time and material có bị sáu nguồn này không?
Có, nhưng nhẹ hơn ở hai nguồn đầu, vì giờ vượt trong ngân sách thỏa thuận có doanh thu đối ứng. Bốn nguồn còn lại, gồm giờ không tính phí, bảo hành, gián tiếp và làm lại, vẫn ăn vào biên như thường.
Bảng đối chiếu nên làm lúc nào?
Làm từ tuần đầu và cập nhật mỗi tuần. Làm sau khi đóng dự án chỉ cho bài học, làm khi dự án đang chạy mới cho cơ hội sửa.
Nên dựng bằng Excel hay phần mềm?
Excel khi ít dự án và có một người ghép số mỗi tuần. Phần mềm khi giờ gắn nhãn, cost rate và hóa đơn nằm ở ba nơi và số dự án đủ nhiều để không ai ghép kịp.
Để tự kiểm tra, hãy lấy dự án vừa đóng gần nhất và thử tách phần giờ vượt thành sáu dòng như bảng trên. Nếu bạn chỉ có một con số tổng, chỗ hổng nằm ở bảng chấm công, và dự án tiếp theo sẽ lặp lại đúng khoảng cách giữa hai con số biên.
(*) Tình huống giả định để minh họa