Singkatnya, karena penggabungan seringkali merupakan tempat lain untuk sesuatu yang salah, dan itu hanya perlu salah sekali untuk membuat orang sangat takut menghadapinya lagi (sekali digigit dua kali malu, jika Anda mau).
Jadi, katakanlah kita sedang mengerjakan Layar Manajemen Akun baru, dan ternyata ada bug yang ditemukan dalam alur kerja Akun Baru. OK, kami mengambil dua jalur terpisah - Anda menyelesaikan Manajemen Akun, dan saya memperbaiki bug dengan Akun Baru. Karena kami berdua berurusan dengan akun, kami telah bekerja dengan kode yang sangat mirip - mungkin kami bahkan harus menyesuaikan potongan kode yang sama.
Sekarang, pada saat ini kami memiliki dua versi perangkat lunak yang berbeda tetapi berfungsi penuh. Kami berdua menjalankan komit pada perubahan kami, kami berdua dengan patuh menguji kode kami, dan secara independen kami sangat yakin kami telah melakukan pekerjaan yang luar biasa. Sekarang apa?
Nah, ini waktunya untuk bergabung, tapi ... sial, apa yang terjadi sekarang? Kita bisa beralih dari dua set perangkat lunak yang berfungsi menjadi satu, perangkat lunak yang baru rusak dan menyatu, di mana Manajemen Akun Anda tidak berfungsi dan Akun Baru rusak dan saya bahkan tidak tahu apakah bug lama masih ada .
Mungkin perangkat lunak itu pintar dan dikatakan ada konflik dan bersikeras kami memberikannya panduan. Nah, sial - Saya duduk untuk melakukannya dan melihat Anda telah menambahkan beberapa kode kompleks yang saya tidak segera mengerti. Saya pikir itu bertentangan dengan perubahan yang saya buat ... Saya bertanya kepada Anda, dan ketika Anda sebentar Anda memeriksa dan Anda melihat kode saya bahwa Anda tidak mengerti. Salah satu atau kami berdua harus meluangkan waktu untuk duduk, melakukan penggabungan yang tepat, dan mungkin menguji ulang seluruh masalah dang untuk memastikan kami tidak mematahkannya.
Sementara itu 8 orang lainnya semua melakukan kode seperti para sadis, saya membuat beberapa perbaikan bug kecil dan mengirimkannya sebelum saya tahu kami memiliki konflik penggabungan, dan pria itu sepertinya waktu yang tepat untuk beristirahat, dan mungkin Anda libur untuk sore atau terjebak dalam rapat atau apa pun. Mungkin sebaiknya aku berlibur saja. Atau berganti karier.
Maka, untuk melepaskan diri dari mimpi buruk ini, beberapa orang menjadi sangat takut pada komitmen (apa lagi yang baru, oke?). Kita tentu saja menolak risiko dalam skenario seperti ini - kecuali kita pikir kita payah dan akan mengacaukannya, dalam hal ini orang mulai bertindak dengan pengabaian yang ceroboh. mendesah
Jadi begitulah. Ya, sistem modern dirancang untuk meringankan rasa sakit ini, dan itu seharusnya dapat dengan mudah mundur dan merendahkan dan merendahkan dan freebase dan hanglide dan semua itu.
Tapi itu semua lebih banyak pekerjaan, dan kami hanya ingin menekan tombol di microwave dan memiliki 4 hidangan sebelum kita punya waktu untuk menemukan garpu, dan semuanya terasa sangat tidak memuaskan - kode berfungsi, produktif, dan bermakna, tetapi anggun menangani penggabungan tidak masuk hitungan.
Programmer, sebagai suatu peraturan, harus mengembangkan memori kerja yang hebat, dan kemudian memiliki kecenderungan untuk segera melupakan semua sampah dan nama variabel dan pelingkupan segera setelah mereka menyelesaikan masalah, dan menangani konflik gabungan (atau lebih buruk, suatu salah menangani penggabungan) adalah undangan untuk diingatkan akan kefanaan Anda.