Apa itu "pemrograman tanpa ego"?

12

Saya pertama kali mendengar istilah ini sekitar lima belas tahun yang lalu.

Pemahaman saya mirip dengan yang dijelaskan dalam artikel Wikipedia dan artikel TechRepublic : Anda bekerja dengan kolega Anda dengan cara "ramah, perguruan tinggi di mana perasaan pribadi dikesampingkan". Ini termasuk hal-hal seperti melakukan peer review dengan saling menghormati dan keinginan untuk belajar, dan tidak merasa seperti Anda "memiliki" kode, jadi jika seseorang memiliki saran atau mengatakan ada bug atau perlu mengubahnya, Anda tidak perlu bersikap defensif tentang Itu.

Saya juga berpikir itu sebagian besar tentang memiliki sikap yang membuat hubungan yang baik dengan programmer lain dengan tujuan memperbaiki kode. Jadi saya belum melihatnya sebagai tidak sesuai dengan bangga pada kualitas pekerjaan Anda atau merasa menyesal jika sesuatu yang Anda lakukan menyebabkan masalah pada pelanggan Anda.

Namun, jawaban atas pertanyaan baru-baru ini membuat saya berpikir beberapa programmer lain memiliki pemahaman yang berbeda tentang "pemrograman tanpa ego". Jadi apa definisi yang benar? Dan apa implikasinya?

Bob Murphy
sumber
7
Pemrograman Ego-galore jauh lebih menyenangkan daripada pemrograman ego-less.
Ayub
2
@ Pekerjaan: Ya, dan seperti yang dikatakan Mythbusters, semuanya berjalan lebih baik dengan C-4.
Bob Murphy

Jawaban:

17

Semua yang di atas.

Pemrograman egoless sebagian besar berkaitan dengan seberapa besar rasa hormat Anda terhadap programmer yang datang setelah Anda, siapa yang harus mencari tahu apa yang Anda lakukan dengan kode Anda sehingga mereka dapat mempertahankannya, dan sangat mungkin memperbaiki apa yang Anda lakukan ( Saya tahu, itu sepertinya tidak masuk akal, karena semua kode yang saya tulis sudah sempurna;).

Saya juga percaya bahwa pemrogram tanpa ego tidak mengambil posisi dogmatis tentang pekerjaan mereka. Ini membuat mereka cukup fleksibel untuk bekerja di lingkungan di mana harapan idealis mereka mungkin tidak selalu begitu dianut atau diterima tanpa syarat.

Robert Harvey
sumber
Saya setuju bahwa menjadi non-dogmatis sangat penting untuk membangun hubungan yang konstruktif - tidak hanya dalam pemrograman, juga - dan saya terus bergumul dengannya.
Bob Murphy
@ bobmurphy Saya tahu dua cara efektif untuk menghindari dogmatis. 1) Tidak memberi omong kosong tentang cita-cita. 2) Memasukkan waktu dan energi yang dibutuhkan untuk membangun tim pengembangan yang memiliki cita-cita bersama. Banyak orang menyerah pada 2, menulis dokumen standar yang tidak ada yang membaca dan perlahan-lahan masuk ke dalam 1. Satu-satunya anidote adalah review kode yang tentang bagaimana perasaan orang. Bukan tentang mengikuti aturan.
candied_orange
8

Ungkapan itu tidak memiliki makna standar ISO, sehingga orang yang berbeda dapat secara sah memaksudkan hal-hal yang berbeda dengannya.

Saya percaya ini diciptakan oleh Weinburg dalam The Psychology of Computer Programming . Maksudnya pemrograman tanpa mengikat ego seseorang dengan kode, sehingga itu bukan "kode Anda", itu hanya kode. Ini memfasilitasi kerja sama untuk meningkatkan kode, kemampuan untuk menerima kritik atas apa yang Anda tulis (karena itu tidak ditujukan pada Anda), dan kerja tim umum.

David Thornley
sumber
Saya tidak berpikir itu adalah standar ISO. :-) Saya hanya terkejut orang-orang menyiratkan pemrograman tanpa ego yang berarti tidak pantas untuk meminta maaf kepada konsumen perangkat lunak saya ketika mereka merasa tidak nyaman dengan bug yang saya tulis. Jika itu artinya, saya akan bersikap egois dan sopan.
Bob Murphy
@ Bob: Saya tidak melihat bagaimana egoisme ala Weinburg mengarah pada tidak meminta maaf atas bug. Kedengarannya sangat egois bagi saya.
David Thornley
Itu yang saya tidak tahu.
Bob Murphy
6

Tidak ada satu definisi yang benar karena konsep "Ego" tunduk pada interpretasi yang hebat. Bergantung pada keyakinan psikologis dan spiritual Anda, ada lebih dari beberapa jawaban berbeda tentang bagaimana seseorang dapat mencoba menghilangkan ego dari kehidupan mereka.

Implikasinya seperti yang saya pahami istilahnya adalah bahwa ada kepemilikan bersama , sehingga setiap orang dalam tim bekerja untuk kepentingan semua orang, bukan hanya diri sendiri. " David Logan tentang kepemimpinan suku " adalah pembicaraan TED di mana suku level 4 akan menjadi orang yang egois.

JB King
sumber
1

Saya adalah orang paruh baya. Saya telah pergi ke berbagai negara dan cukup beruntung untuk bertemu orang-orang cerdas seperti astronom dan biksu zen.

Sekitar dua tahun yang lalu saya mengambil beberapa kelas komputer untuk memoles pengetahuan saya tentang pemrograman.

Suatu hari profesor pemrograman saya membawa puzzle "Tower of Hanoi" ke kelas. Ada beberapa siswa yang selalu membual tentang kesuksesan hidup mereka sebagai programmer. Profesor saya memberi semua siswa teka-teki dan meminta semua orang untuk memulai teka-teki pada saat yang sama.

Semua maverick pemrograman mencoba yang terbaik untuk membuktikan seberapa pintar mereka. Siswa yang menyelesaikan teka-teki pertama adalah siswa Cina berusia delapan belas tahun yang tahu sedikit tentang pemrograman. Maverick kesal. Tetapi profesor bijak saya yang memiliki pengalaman pemrograman tiga puluh tahun (termasuk Lisp) memiliki senyum di wajahnya.

Maafkan saya karena bahasa Inggris saya yang buruk. Bahasa ibu saya adalah bahasa Jepang

Paman Joe
sumber
+1: Saya sudah sering melihatnya, dan tidak hanya dengan pemrograman.
Bob Murphy
BTW, saya juga setengah baya (52). Ketika saya berusia remaja dan dua puluhan, saya yakin saya tahu banyak tentang banyak hal. Sekarang, saya yakin saya tidak tahu banyak tentang apa pun. Sangat lucu melihat keponakan saya yang berusia 18 tahun sangat percaya diri.
Bob Murphy
@BobMurphy "semakin saya belajar, semakin saya tahu betapa sedikit yang saya tahu"
gbjbaanb
1

Pendapat saya (dan hanya itu) adalah bahwa istilah "pemrograman tanpa ego" adalah sebuah oxymoron.

Programmer dan insinyur pada dasarnya adalah sekelompok egois (termasuk saya sendiri). Pada akhirnya, ketika Anda menulis kode, Anda sedang membuat sesuatu. Ketika Anda bangga dengan pekerjaan Anda dan apa yang Anda hasilkan, tidak peduli seberapa besar Anda menghormati rekan-rekan Anda dan memahami bahwa perubahan perlu dilakukan untuk pekerjaan Anda di masa depan, itu masih melukai ego Anda ketika itu terjadi. Setiap insinyur yang pernah saya temui memiliki reaksi spontan ayah / ibu yang terlalu protektif untuk melindungi bayi mereka meskipun setelah diskusi menyeluruh dilakukan, penulis menjadi lebih bersedia untuk menerima kenyataan bahwa perubahan perlu dilakukan.

Dengan kata lain, saya tidak berpikir itu mungkin untuk memiliki pemrograman tanpa ego murni .

Sekali lagi, hanya pendapat saya berdasarkan pengalaman. Jangan ragu untuk menampar saya tentang ini :)

... Dan sekarang saya menyadari berapa umur utas ini: P

Demian Brecht
sumber
3
Hanya karena kolega Anda adalah bajingan, bukan berarti Anda juga harus begitu! Idenya adalah bahwa jika kita menganjurkan pengkodean yang tidak egois, maka generasi berikutnya mungkin lebih sedikit dari sekelompok kutu buku prima-domnna dan lebih banyak profesional.
gbjbaanb