Apa yang terjadi pada programmer yang tidak memiliki kerja tim?
Maka menjadi sulit untuk mengerjakan proyek yang terlalu besar untuk satu programmer. Sulit untuk programmer tunggal, dan sulit untuk anggota tim lainnya.
Di mana masalah dimulai?
Segala macam tempat. Saat ini kami memiliki satu programmer yang buruk dalam bekerja sebagai bagian dari tim. Dia cenderung membuat jalan pintas yang memiliki efek buruk pada sisa aplikasi karena dia terlalu fokus pada memperbaiki bug di depannya. Atau menulis fitur baru sedemikian rupa sehingga tidak kompatibel dengan aplikasi lainnya. Kami harus mengatur ulang hal-hal sehingga setiap kode masuknya ditinjau oleh anggota tim lainnya. Tetapi agar tidak memilihnya, kami juga meninjau kode cek semua orang, jadi bersama dengan pertemuan status pagi, kami tidak menyelesaikan pekerjaan sampai setelah makan siang. Jadi di kantor kami, ini berarti bahwa 4 orang kehilangan 1/2 hari kerja setiap hari karena satu orang buruk dalam kerja tim. Saya tidak bisa mengatakan itu adalah peningkatan dari petualangan sebelumnya, karena kami dapat kehilangan secara acak sehari hingga seminggu (biasanya mengejar bug baru) dari check-in yang merusak barang-barang (kami menyebutnya "robstacles"). Beberapa perbaikan pada kodenya akan menghapus setengah lusin bug karena seberapa kusut dan berantakan aplikasi ini (rekomendasi saya untuknuke dari orbit, dan mulai lagi karena itu satu-satunya cara untuk memastikan tidak diterima).
Ketika kami berada dalam suasana hati yang baik, kami memanggilnya "head down programmer" karena ia cenderung melihat ke bawah pada keyboard dan mengetik sangat cepat. Dia tidak memperhatikan apa yang dilakukan orang lain.
Apakah menjadi seorang programmer yang baik memberikan kompensasi setidaknya sedikit?
Tidak. Sebagian besar programmer yang merupakan pemain tim yang buruk memiliki pendapat yang sangat tinggi tentang keterampilan mereka sendiri, dan ini disebut efek Dunning-Kruger . PDF kertas.
Mungkin: programmer solo harus jauh lebih baik daripada anggota tim lainnya. Tetapi ini hanya berarti bahwa tidak ada orang lain yang dapat mempertahankan apa yang dia lakukan; dan ketika itu terjadi, itu mungkin berarti bahwa programmer solo sebenarnya tidak jauh lebih baik daripada anggota tim lainnya - dia (dan hampir selalu seorang pria) hanya lebih baik dalam menipu semua orang.
Dalam pengembangan perangkat lunak bisnis, perusahaan akan ada lama setelah Anda pergi. Program kemungkinan besar ditulis sebelum Anda mulai, dan akan dikelola lama setelah Anda pergi. Jika Anda menulis hal-hal yang begitu istimewa dan menakjubkan sehingga tidak ada orang lain yang bisa memahaminya, maka Anda berakhir dalam situasi di mana Naughty Dog berada - pengembang utama mereka berhenti, tidak ada orang lain yang mengerti bahasa pemrograman yang dipatenkan orang itu menulis (dan menulis hal-hal di), jadi mereka sekarang harus mengalihkan semuanya ke C ++.
Apakah normal bagi seorang programmer untuk memiliki visi tentang pekerjaannya daripada hanya melakukan apa yang diperintahkan kepadanya?
Itu umum - seperti kemacetan lalu lintas atau diabetes. Saya tidak akan menyebutnya normal. Di dunia korporat, ada banyak hal lain yang perlu dipertimbangkan; ego yang kuat yang dimiliki banyak pengembang biasanya membuat pengembang berpikir bahwa tidak ada yang lain yang penting. Ini "kurang cocok" dan kurangnya pertimbangan untuk sisa bisnis adalah mengapa begitu banyak tipe manajer sampai pada kesimpulan bahwa pengembang perangkat lunak sulit untuk bekerja dengannya.