Tôi sẽ cố gắng minh họa một số khía cạnh chưa được giải quyết bằng các câu trả lời khác và rằng, IMO, rất quan trọng.
Vấn đề cơ bản là: Một số nhà phát triển chủ yếu được thúc đẩy bởi niềm vui khi nhận được một phần công việc khó khăn, suy nghĩ thông qua thiết kế, suy nghĩ thông qua các vấn đề tiềm năng, sau đó giải quyết vấn đề từng mảnh, chỉ với sự tương tác tối thiểu với những người khác, qua một phần mở rộng khoảng thời gian. Họ thường hoàn thành công việc với chất lượng cao và kịp thời; công việc của họ là duy trì và phù hợp với kiến trúc tổng thể.
Loại nhà phát triển này có thể khó thích nghi với môi trường nhanh nhẹn và thái độ của họ thường bị coi là "không muốn thay đổi", có thể liên quan đến bản ngã hoặc bị lỗi thời.
Điều thường bị bỏ qua là để giải quyết các vấn đề phức tạp, người ta cần xử lý nhiều thông tin, và điều này có thể cần nhiều phân tích, suy nghĩ, cố gắng, phác thảo một giải pháp, vứt bỏ nó, thử một cách khác. Một vấn đề phức tạp như vậy có thể cần từ vài giờ đến vài tuần làm việc tập trung cho đến khi bạn có một giải pháp hoàn thành.
Một cách tiếp cận là nhà phát triển lấy đặc tả vấn đề, đến phòng của cô ấy và quay lại hai hoặc ba tuần sau với một giải pháp. Bất cứ lúc nào (khi cần), nhà phát triển có thể bắt đầu một số tương tác với các thành viên khác trong nhóm hoặc với các bên liên quan (đặt câu hỏi về các vấn đề cụ thể) nhưng hầu hết các công việc được thực hiện bởi nhà phát triển được giao nhiệm vụ.
Điều gì xảy ra trong một kịch bản nhanh? Nhóm nghiên cứu chia vấn đề thành các phần nhỏ (câu chuyện của người dùng) sau khi phân tích nhanh (chải chuốt). Hy vọng là các câu chuyện của người dùng độc lập với nhau nhưng thường thì không phải vậy: để chia nhỏ một vấn đề phức tạp thành các phần độc lập thực sự, bạn sẽ cần một kiến thức mà bạn thường chỉ có được sau khi làm việc trong vài ngày. Nói cách khác, nếu bạn có thể chia một vấn đề phức tạp thành các phần độc lập nhỏ, điều đó có nghĩa là về cơ bản bạn đã giải quyết nó và bạn chỉ còn công việc cần mẫn. Đối với một vấn đề đòi hỏi, giả sử, ba tuần làm việc, điều này có thể sẽ xảy ra trong tuần thứ hai, không phải sau vài giờ chải chuốt được thực hiện ngay từ đầu nước rút.
Vì vậy, sau khi một cuộc chạy nước rút đã được lên kế hoạch, nhóm nghiên cứu làm việc trên các phần khác nhau của một vấn đề có thể có sự phụ thuộc lẫn nhau. Điều này tạo ra rất nhiều chi phí truyền thông cố gắng tích hợp các giải pháp khác nhau có thể tốt như nhau nhưng tốt, khác biệt với nhau. Về cơ bản, công việc thử và sai được phân phối trên tất cả các thành viên trong nhóm có liên quan, với một chi phí liên lạc bổ sung (tăng theo phương trình bậc hai). Tôi nghĩ rằng một số vấn đề được minh họa rất tốt trong bài viết này của Paul Graham, đặc biệt là điểm 7.
Tất nhiên, chia sẻ công việc giữa các thành viên trong nhóm giúp giảm rủi ro liên quan đến một thành viên trong nhóm rời khỏi dự án. Mặt khác, kiến thức về mã có thể được truyền đạt theo những cách khác, ví dụ như sử dụng đánh giá mã hoặc thuyết trình kỹ thuật cho các đồng nghiệp. Về mặt này, tôi không nghĩ rằng có một viên đạn bạc hợp lệ cho tất cả các tình huống: quyền sở hữu mã được chia sẻ và lập trình cặp không phải là lựa chọn duy nhất.
Hơn nữa, "phân phối chức năng làm việc trong khoảng thời gian ngắn hơn" dẫn đến gián đoạn dòng công việc. Điều này có thể ổn nếu đoạn chức năng là "thêm nút hủy trong trang đăng nhập" có thể được hoàn thành sau khi chạy nước rút, nhưng khi bạn đang thực hiện một nhiệm vụ phức tạp, bạn không muốn bị gián đoạn như vậy: nó giống như cố gắng lái xe 100 km nhanh nhất có thể và dừng lại cứ sau 5 phút để kiểm tra xem bạn đã đi được bao xa. Điều này sẽ chỉ làm bạn chậm lại.
Tất nhiên, việc có các điểm kiểm tra thường xuyên có nghĩa là làm cho dự án trở nên dễ đoán hơn, nhưng trong một số trường hợp, sự gián đoạn có thể rất khó chịu: người ta hầu như không thể đạt được tốc độ mà đã đến lúc phải dừng lại và trình bày một cái gì đó.
Vì vậy, tôi không nghĩ rằng thái độ được mô tả trong câu hỏi chỉ liên quan đến bản ngã hoặc sự chống lại sự thay đổi. Cũng có thể một số nhà phát triển xem xét phương pháp giải quyết vấn đề được mô tả ở trên hiệu quả hơn vì nó cho phép họ hiểu rõ hơn về các vấn đề họ đang giải quyết và về mã họ đang viết. Buộc các nhà phát triển như vậy làm việc theo một cách khác có thể dẫn đến giảm năng suất của họ.
Ngoài ra, tôi không nghĩ rằng việc một số thành viên trong nhóm làm việc riêng rẽ trong các vấn đề cụ thể, khó khăn là chống lại các giá trị nhanh. Rốt cuộc, các đội nên tự tổ chức và sử dụng quy trình mà họ thấy là hiệu quả nhất trong những năm qua.
Chỉ 2 xu của tôi.
There’s a great story of a manager of a Coca-Cola plant whose numbers were far better than his peers. When asked what his “secret” was, he said simply that rather than take a best practice and modify it to meet what the plant did, he instead modified the plant to match the best practice.
Bạn không làm việc nhanh nhẹn cho đến khi bạn hiểu tại sao bạn làm việc đó.