Bạn đang tìm kiếm một giải pháp kỹ thuật cho một vấn đề của con người. Điều đó hiếm khi hoạt động.
Dưới đây là một vài cách tiếp cận tôi sử dụng trong quá khứ hoặc có trong tâm trí mà không thực sự có cơ hội với chúng trong thực tế. Một số có thể không áp dụng cho trường hợp của bạn, tùy thuộc vào vị trí bạn có trong nhóm (nếu bạn là trưởng nhóm có danh tiếng xuất sắc, rất có thể bạn sẽ có cơ hội tốt hơn để thực thi quan điểm của mình so với khi bạn là sinh viên đại học chỉ tham gia một nhóm trong suốt thời gian thực tập của bạn).
Thảo luận về vấn đề với đồng nghiệp của bạn và giải thích hậu quả của các cam kết lớn. Có lẽ họ chỉ đơn giản là không hiểu rằng các sự hợp nhất phức tạp là hậu quả trực tiếp của các cam kết hiếm, và hơn các cam kết nhỏ, thường xuyên sẽ làm cho việc hợp nhất (tương đối) trở nên dễ dàng.
Tôi biết rất nhiều lập trình viên chỉ đơn giản là bị thuyết phục rằng việc hợp nhất luôn phức tạp. Họ đã thực hiện tối đa một cam kết mỗi ngày, tránh sử dụng các công cụ mạnh mẽ như khác biệt và tự động hợp nhất của Visual Studio và thực hiện việc sáp nhập thủ công kém (trừ khi thực hiện kiểm tra khác biệt thực sự là một cách kiểm tra khác biệt). Đối với họ, điều này không liên quan gì đến họ , và là bản chất vốn có của sự hợp nhất.
Đưa ra ví dụ cụ thể về những gì đang xảy ra ở các công ty khác (đặc biệt là những công ty mà đồng nghiệp của bạn rất tôn trọng). Họ có thể đơn giản là không biết rằng đó là một vấn đề, và được thuyết phục rằng một cam kết tối đa mỗi ngày là điều mà mọi đội làm.
Một số người không biết rằng có những nhóm gồm 5-10 thành viên tạo ra tới 50 lần đẩy vào sản xuất, nghĩa là trung bình 5-10 lần cam kết mỗi ngày cho mỗi người. Họ có thể không hiểu làm thế nào là có thể, và tại sao mọi người sẽ làm điều đó.
Dẫn bằng ví dụ. Làm đủ nhỏ cam kết chính mình. Nếu có thể, hãy thực hiện một bản trình bày ngắn cho thấy sự hợp nhất của họ và của bạn cạnh nhau trong một tuần (Tôi không chắc việc trích xuất loại thông tin này có dễ dàng từ kiểm soát phiên bản hay không). Nhấn mạnh vào những sai lầm cuối cùng mà họ đã mắc phải trong quá trình hợp nhất và so sánh nó với số lỗi bạn đã mắc phải (gần bằng 0).
Sử dụng kỹ thuật mà tôi đã nói với bạn về kỹ thuật, khi thích hợp . Khi bạn thấy các đồng nghiệp của mình phải chịu đựng một sự hợp nhất đau đớn, hãy bình luận lớn rằng những cam kết nhỏ, thường xuyên có thể làm cho việc hợp nhất (tương đối) không gây đau đớn.
Giải thích rằng không có thời lượng tối thiểu để thực hiện một cam kết. Một cam kết thậm chí có thể tương ứng với một thay đổi nhỏ được thực hiện trong vài giây. Đổi tên một tệp, xóa một nhận xét lỗi thời, sửa lỗi chính tả là tất cả các nhiệm vụ có thể được thực hiện ngay lập tức.
Các lập trình viên không nên sợ thực hiện một cam kết nhỏ, mà nên tổng hợp nhiều thay đổi thành một cam kết lớn.
Làm việc với các cá nhân thay vì một nhóm, khi thích hợp. Nếu có một người đặc biệt từ chối thực hiện các cam kết nhỏ, thường xuyên, hãy nói chuyện riêng với người này để xem tại sao anh ta từ chối.
Họ có thể đưa ra những lý do hoàn toàn hợp lệ có thể cho bạn gợi ý về những gì đang diễn ra với một đội. Một số lý do tôi đã nghe bản thân mình:
Giáo viên / người cố vấn của tôi đã nói với tôi rằng cách tốt nhất là thực hiện một cam kết mỗi ngày. Nó không làm tôi ngạc nhiên, vì những gì tôi phải nghe từ các giáo viên của mình ở trường đại học .
Các đồng nghiệp của tôi đã nói với tôi rằng tôi nên thực hiện ít cam kết hơn. Tôi đã được thông báo điều đó ở một số đội và tôi hiểu quan điểm của họ. Chúng tôi đã có một bản ghi thực tế chứa đầy các cam kết của tôi (không khó thực hiện khi bốn đồng đội thậm chí không thực hiện một cam kết mỗi ngày), điều đó làm các đồng nghiệp của tôi thất vọng.
Tôi nghĩ rằng những cam kết nhỏ khiến việc tìm kiếm sửa đổi trở nên khó khăn. Một số điểm hợp lệ, ngay cả khi nhóm nỗ lực viết thông điệp nhật ký mô tả.
Tôi không muốn lãng phí quá nhiều dung lượng trên máy chủ kiểm soát phiên bản của chúng tôi. Người đó rõ ràng không hiểu cách thức lưu trữ (cũng như không gian lưu trữ rẻ như thế nào).
Tôi nghĩ rằng một cam kết nên tương ứng với một nhiệm vụ cụ thể. Thông thường, một nhiệm vụ tương ứng với một số công việc phải hoàn thành trong một ngày (chẳng hạn như trong bảng nhiệm vụ của quản lý trực quan), đây không phải là sự trùng hợp. Sau đó, người đó nên học cách tạo ra sự khác biệt giữa một nhiệm vụ trong một hồ sơ tồn đọng (2 đến 8 giờ làm việc) và một thay đổi hợp lý cần được cam kết (một vài giây đến vài giờ làm việc). Điều này cũng liên quan đến điểm 5.
Tìm kiếm lý do nhóm không thực hiện cam kết thường xuyên hơn. Bạn có thể ngạc nhiên với kết quả.
Gần đây, tôi đã đề cập trong một câu trả lời khác rằng tốc độ của một cam kết là vấn đề và thậm chí hàng trăm mili giây có thể thúc đẩy các nhà phát triển cam kết ít thường xuyên hơn.
Các lý do khác có thể bao gồm:
Quy tắc quá phức tạp để viết một thông điệp cam kết.
Quy tắc buộc nhà phát triển liên kết cam kết với một tác vụ từ hệ thống theo dõi lỗi.
Nỗi sợ phá vỡ tòa nhà.
Không sẵn sàng đối phó với nguy cơ phá vỡ bản dựng ngay bây giờ: nếu bạn thực hiện cam kết vào tối thứ Sáu ngay trước khi rời đi, bạn có thể hoãn giao dịch với bản dựng bị hỏng cho đến thứ Hai.
Nỗi sợ hãi khi làm một sự hợp nhất.
Xác định xem các nhà phát triển có hiểu rằng có những lợi ích khác để cam kết thường xuyên hay không . Ví dụ, một nền tảng Tích hợp liên tục là một động lực rất lớn để có các cam kết thường xuyên , vì nó cho phép xác định chính xác nơi hồi quy được đưa ra .
Tôi thà thích nền tảng CI nói với tôi rằng tôi đã phá vỡ bản dựng trong phiên bản 5023 bao gồm một thay đổi trong hai phương pháp trong một tệp tôi đã thực hiện mười lăm phút trước, thay vì trong bản sửa đổi 5023 bao gồm các thay đổi bao gồm bốn chục tệp và đại diện 13 giờ làm việc.