Tỷ lệ phần trăm cân bằng của tổng công suất được phân bổ để sửa chữa khuyết tật bằng với tốc độ tiêm khuyết tật .
Tất nhiên, nhiều yếu tố có thể ảnh hưởng đến tỷ lệ này, trong số đó, nhóm phát triển loại sản phẩm nào, công nghệ và thực hành kỹ thuật nào họ sử dụng, trình độ kỹ năng của đội, văn hóa công ty, v.v.
Xem xét Đội B, nếu họ tạo trung bình 8 đơn vị làm lại cho mỗi 10 đơn vị công việc họ hoàn thành, thì 8 đơn vị đó sẽ tạo ra 6,4 đơn vị làm lại mới. Chúng tôi có thể ước tính tổng nỗ lực mà cuối cùng họ sẽ phải bỏ ra như là tổng của một tiến trình hình học:
10 + 8 + 6.4 + 5.12 + ...
Số lượng lỗi sẽ giảm theo cấp số nhân theo thời gian, nhưng Đội B có hệ số như vậy theo cấp số nhân của nó nên nó sẽ về không rất chậm. Trên thực tế, tổng của ba thuật ngữ đầu tiên trong chuỗi trên chỉ là 24,4; của năm đầu tiên, 33,6; của 10, 45 đầu tiên; của toàn bộ loạt, 50. Vì vậy, tóm tắt của Đội B: tỷ lệ tiêm khiếm khuyết, 0,8; phát triển tính năng, 10/50 = 20%; sửa lỗi, 80%. 20/80 là phân bổ năng lực bền vững của họ.
Ngược lại, đội A có phong độ tốt hơn nhiều. Sự tiến triển của họ trông như thế này:
40 + 10 + 2.5 + 0.625 + ...
Tổng của loạt bài này là 53 1/3, vì vậy phân bổ phát triển tính năng của Đội A là 40 / (53 1/3) = 75% và phân bổ sửa lỗi là 25%, phù hợp với tỷ lệ tiêm khiếm khuyết của họ là 10/40 = 0,25 .
Trên thực tế, tất cả các điều khoản trong loạt của Đội A sau ba lần đầu tiên là nhỏ không đáng kể. Điều này có nghĩa trong điều kiện thực tế là Đội A có thể xóa sạch tất cả các lỗi của họ bằng một vài bản phát hành bảo trì, bản phát hành thứ hai có phạm vi khá nhỏ. Điều này cũng tạo ra một ảo tưởng rằng bất kỳ đội nào cũng có thể làm điều đó. Nhưng không phải đội B.
Tôi đã nghĩ về sự tương đương này trong khi đọc cuốn sách mới của Kan Anderson, "Kanban" . (Cuốn sách thuộc một chủ đề khác, nhưng cũng giải quyết các mối quan tâm về chất lượng.) Khi thảo luận về chất lượng phần mềm, Anderson đã trích dẫn cuốn sách này của Capers Jones, "Đánh giá phần mềm, Điểm chuẩn và Thực tiễn tốt nhất" :
"... vào năm 2000 ... chất lượng phần mềm được đo cho các đội Bắc Mỹ ... dao động từ 6 lỗi trên mỗi điểm chức năng xuống dưới 3 trên 100 điểm chức năng, phạm vi từ 200 đến 1. Điểm giữa là khoảng 1 lỗi trên mỗi 0,6 đến 1 điểm chức năng. Điều này ngụ ý rằng thông thường các đội dành hơn 90 phần trăm nỗ lực của họ để sửa lỗi. "Ông trích dẫn một ví dụ được cung cấp bởi một trong những đồng nghiệp của mình trong một công ty dành 90% thời gian để sửa lỗi .
Sự lưu loát mà Anderson đi từ tốc độ tiêm khiếm khuyết đến phân bổ năng lực sửa lỗi ( nhu cầu thất bại là thuật ngữ của nó) cho thấy rằng sự tương đương của hai điều được các nhà nghiên cứu chất lượng phần mềm biết đến và có lẽ đã được biết đến từ lâu .
Các từ khóa trong dòng lý luận mà tôi đang cố gắng trình bày ở đây là "cân bằng" và "bền vững". Nếu chúng ta lấy đi tính bền vững, thì có một cách rõ ràng để gian lận những con số này: bạn thực hiện mã hóa ban đầu, sau đó chuyển sang mã ở một nơi khác và để bảo trì cho người khác. Hoặc bạn chạy lên các khoản nợ kỹ thuật và dỡ nó trên một chủ sở hữu mới.
Rõ ràng, không có phân bổ cụ thể sẽ phù hợp với tất cả các đội. Nếu chúng tôi đồng ý rằng 20% phải được chi cho các lỗi, thì, nếu một đội có tỷ lệ tiêm khuyết tật cực thấp, đơn giản là họ sẽ không có đủ lỗi để lấp đầy thời gian và nếu một đội có tỷ lệ rất cao, thì lỗi của họ sẽ tiếp tục tích lũy.
Toán học tôi sử dụng ở đây là cách đơn giản hóa. Tôi đã bỏ qua những thứ như chi phí giao dịch (các cuộc họp lập kế hoạch và ước tính, sau khi chết, v.v.), sẽ ảnh hưởng đến phần trăm. Tôi cũng bỏ qua các phương trình mô phỏng duy trì một sản phẩm và phát triển đồng thời một sản phẩm khác. Nhưng kết luận vẫn đứng vững. Làm những gì bạn có thể, về mặt thực hành kỹ thuật, như kiểm tra đơn vị, tích hợp liên tục, đánh giá mã, v.v., để giảm tỷ lệ tiêm khiếm khuyết của bạn và do đó, nhu cầu thất bại của bạn. Nếu bạn chỉ có thể tạo một lỗi cho mỗi 10 tính năng, bạn sẽ có nhiều thời gian rảnh để phát triển các tính năng mới và làm hài lòng khách hàng của bạn.