Lý do chính cho 20% thời gian là để giữ mức sử dụng công suất ở mức 80% thay vì 100%.
Bạn có thể nghĩ về một tổ chức phát triển phần mềm như một hệ thống biến các yêu cầu tính năng thành các tính năng được phát triển. Bạn có thể mô hình hóa hành vi của nó bằng cách sử dụng lý thuyết xếp hàng .
HỌC THUYẾT
Nếu các yêu cầu đến nhanh hơn hệ thống có thể phục vụ chúng, chúng sẽ xếp hàng. Khi khách đến chậm hơn, kích thước hàng đợi giảm. Bởi vì các quy trình đến và dịch vụ là ngẫu nhiên, kích thước hàng đợi thay đổi ngẫu nhiên theo thời gian.
Về mặt toán học có thể hỏi về "tính ngẫu nhiên" này: phải có một số phân phối xác suất, vậy kích thước hàng đợi sẽ trung bình là bao nhiêu? Toán học (lý thuyết xếp hàng) có câu trả lời cho điều đó: nếu cả hai quá trình đến và dịch vụ đều là Markov, thì N = rho ^ 2 / (1-rho).
(Trong đó rho là hệ số sử dụng bằng tỷ lệ của dịch vụ và tỷ lệ đến. Nếu các quy trình không phải là Markov, toán học phức tạp hơn, nhưng không thay đổi kết luận.)
Nếu bạn vẽ đồ thị của hàm này, bạn có thể thấy rằng độ dài hàng đợi trung bình vẫn thấp trong khi mức sử dụng lên tới 0,8 , sau đó tăng mạnh và chuyển sang vô cùng. Bạn có thể hiểu điều này bằng trực giác bằng cách nghĩ về CPU máy tính của bạn: khi mức sử dụng của nó đạt 100%, máy tính sẽ không phản hồi.
THỰC HÀNH
Tính kinh tế của phát triển phần mềm là do các công ty phần mềm phải chịu chi phí lớn khi hàng đợi của họ ở trạng thái xếp hàng cao. Điều này bao gồm các cơ hội thị trường bị bỏ lỡ, các sản phẩm lỗi thời, các dự án muộn và lãng phí gây ra bởi các tính năng xây dựng theo dự đoán nhu cầu.
Do đó, 20% thời gian là câu trả lời khoa học cho vấn đề tối ưu hóa kết quả kinh tế: tránh các trạng thái xếp hàng cao bằng cách tránh các tỷ lệ sử dụng gây ra chúng. Nó thực chất là sự chậm chạp giữ cho hệ thống đáp ứng.
Một số kết luận thực tế ngay sau đây:
- nếu bạn đang xem xét 20% thời gian và thực hiện kế toán chi phí (chi phí thời gian của nhà phát triển X, nhưng / và công ty có thể / không thể chi trả được), thì bạn đã làm sai.
- nếu bạn phân bổ 20% vào thứ Sáu hàng tuần, bạn đã làm sai
- nếu bạn đang thiết lập hệ thống đệ trình / đánh giá / phê duyệt đề xuất dự án 20% thời gian, bạn đã làm sai
- nếu bạn điền vào bảng chấm công, bạn đang làm sai
- nếu bạn đang sử dụng đổi mới làm động lực trong 20% thời gian, bạn đã làm sai. Mặc dù các sản phẩm mới đã ra khỏi 20% dự án, nhưng chúng không phải là vấn đề. Nếu công ty của bạn không thể đổi mới trong giờ chính, đó là một vấn đề!
- 20% thời gian không phải là về sự sáng tạo. Đừng nói rằng bạn sẽ giải phóng khả năng sáng tạo của mình với 20% thời gian, hãy hỏi tại sao bạn chưa đủ sáng tạo trong giờ chính.
TRẢ LỜI CÁC CÂU HỎI TRONG NHẬN XÉT
Dan , bạn đã hiểu đúng và mô tả chính xác sai lầm của nhiều người. Bạn không thể chọn tỷ lệ sử dụng của mình, vì đó là biến đầu ra. Đó là một tỷ lệ đặc tính của hai quá trình, vì vậy nó là như vậy bởi vì các quy trình là như vậy. Một tổ chức có ảnh hưởng đến cả hai quá trình; khả năng phù hợp và nhu cầu là một trong những vấn đề khó giải quyết của cơ quan phát triển phần mềm nạc. Sử dụng là một trong những chỉ số giải quyết vấn đề này tốt như thế nào trong một tổ chức. Slack nổi lên khi sáng kiến tinh gọn của bạn tiến triển và bạn loại bỏ chất thải khỏi luồng giá trị. Nhưng nếu bạn bắt buộc 20% thời gian, bạn sẽ rơi vào cái bẫy sử dụng tương tự với dung lượng khả dụng ít hơn.
Kim , nó vẫn là một phần của văn hóa. Tài liệu tham khảo văn hóa gần nhất mà tôi có thể nghĩ đến là mức độ hiệp đồng của mô hình được gọi là Marshall về thay đổi tổ chức. Nó xuất hiện vào cuối các biến đổi nạc thành công hoặc có mặt trong các tổ chức được xây dựng nạc từ đầu. ( Đây là một liên kết đến sách trắng của Bob Marshall (PDF) .)
TÀI LIỆU THAM KHẢO
Logic trên được hỗ trợ tốt trong tài liệu kỹ thuật phần mềm. Mary và Tom Poppendieck đã gợi ý về nó trong cuốn sách năm 2006 của họ Thực hiện phát triển phần mềm tinh gọn . Donald Reinertsen trong cuốn sách năm 2009 Nguyên tắc về dòng chảy phát triển sản phẩm (Chương 3) đưa ra cách xử lý tốt cho chủ đề này, với các công thức và đồ thị.