Nhiều hệ thống kiểm soát nguồn thế hệ 2 hoạt động bằng cách sử dụng "kiểm tra" được kết nối để thông báo cho máy chủ rằng bạn đang có ý định sửa đổi một tệp. Ví dụ bao gồm TFS, SourceGear Vault và nhiều thứ khác. Bằng cách này, bạn có thể hoàn thành về mặt kỹ thuật yêu cầu của bạn. Như Adam Butler đã chỉ ra, các loại công cụ này đi kèm với các vấn đề của riêng họ (mà không cần phải tranh luận lâu dài - hỗ trợ hạn chế cho công việc ngoại tuyến và quy trình phát triển phản tác dụng nói chung).
Tôi chắc chắn sẽ đề xuất một số cách tiếp cận phân cấp để phân bổ công việc tái cấu trúc. Các nhà phát triển có thể được nhóm hợp lý thành các nhóm phụ, mỗi nhóm chịu trách nhiệm cho các khu vực cụ thể của mã. Tùy thuộc vào cách bạn muốn cấu trúc các nhóm, mỗi người có thể có vai trò "lãnh đạo", người chịu trách nhiệm thiết kế cấp cao cho khu vực của đội. Cấu trúc này nên được các nhà phát triển biết đến và nó sẽ đơn giản hóa việc giao tiếp để tái cấu trúc. Tôi chắc chắn rằng cách tiếp cận này có vẻ quá trang trọng và lạc hậu với một số người, nhưng tôi nghĩ rằng rất nên để các nhà phát triển 20+ sử dụng cách tiếp cận "miễn phí cho tất cả" để tái cấu trúc một hệ thống lớn. Một số phép tái cấu trúc sẽ diễn ra ở mức cao (ví dụ như mô-đun X sẽ giao tiếp với mô-đun Y như thế nào), trong trường hợp đó bạn sẽ cần những người có thể thực hiện cuộc gọi ở cấp độ thích hợp. Không phải mọi nhà phát triển trong nhóm nên đưa ra quyết định kiến trúc, do đó, một hệ thống phân cấp gần như được áp đặt trong mọi trường hợp, ngay cả khi người ta chọn không biết gì về nó.
Về cơ bản, có những công cụ để đáp ứng yêu cầu cơ bản mà bạn đưa ra, nhưng không có công cụ nào thay thế thông tin liên lạc phù hợp và có một số ít người điều khiển kiến trúc chung của dự án của bạn.