Tôi đã được giao nhiệm vụ dạy cho các đội khác một cơ sở mã mới, nhưng tôi tiếp tục gặp phải một vấn đề. Bất cứ khi nào tôi thực sự đi bộ mã với mọi người, chúng tôi sẽ không đi quá xa trước khi toàn bộ bài tập bị phá hủy thành một cuộc đua xe đạp (các thành viên của một tổ chức có trọng lượng không tương xứng với các vấn đề tầm thường). Vì họ không biết codebase, nhưng nghĩ rằng họ cần giúp cải thiện nó, họ tập trung vào những điều họ có thể hiểu:
Why is that named that?
(2 phút để giải thích lý do tại sao nó được đặt tên như vậy, hơn 10 phút tranh luận về một tên mới)
Why is that an abstract base class rather than an interface?
(2 phút để giải thích, hơn 10 phút tranh luận về giá trị tương đối của quyết định này)
... và cứ thế. Bây giờ, đừng hiểu sai ý tôi - tên tốt và thiết kế phù hợp, tốt là rất quan trọng, nhưng chúng tôi không bao giờ thảo luận về những gì mã thực sự làm hoặc cách hệ thống được thiết kế theo bất kỳ cách có ý nghĩa nào. Tôi đã thực hiện một số cuộc họp trọng tài để đưa mọi người ra khỏi những tiếp tuyến này, nhưng họ đã biến mất - bị phân tâm bởi những gì mã sẽ / nên khi tầm thường thú cưng của họ được sửa chữa, và họ bỏ lỡ bức tranh lớn hơn.
Vì vậy, chúng tôi thử lại sau (hoặc với một phần khác của cơ sở mã) và vì mọi người không có đủ kiến thức để vượt qua hiệu ứng đạp xe, nên nó lặp lại.
Tôi đã thử các nhóm nhỏ hơn, các nhóm lớn hơn, mã, bảng trắng, sơ đồ thị giác, các bức tường văn bản khổng lồ, cho phép họ tranh luận về cái chết, cắt ngắn lập luận ngay lập tức ... một số giúp đỡ nhiều hơn những người khác, nhưng không có gì hiệu quả . Quỷ quái, tôi thậm chí đã cố gắng để những người khác trong nhóm của mình giải thích điều đó bởi vì tôi nghĩ có thể là tôi chỉ tệ trong việc giải thích mọi thứ.
Vì vậy, làm thế nào để bạn giáo dục các lập trình viên khác đủ để họ ngừng sửa chữa những điều tầm thường và có thể đóng góp một cách có ý nghĩa vào thiết kế?