“Egoless programlama” nedir?


12

Bu terimi ilk on beş yıl önce duydum.

Anladığım, Wikipedia makalesinde ve TechRepublic makalesinde anlatılanla benzer : meslektaşlarınızla "kişisel duyguların bir kenara bırakıldığı samimi, kolej tarzında" çalışıyorsunuz. Karşılıklı saygı ve öğrenme arzusu ile akran incelemeleri yapmak ve "kendi" kodunuz gibi hissetmemek gibi şeyleri içerir, bu nedenle birisinin bir önerisi varsa veya bir hata veya değiştirmek zorunda olduğu söylendiğinde, o.

Ben de büyük ölçüde kodu geliştirmek amacıyla diğer programcılar ile iyi ilişkiler kuran bir tutum olması hakkında olduğunu düşündüm. Bu yüzden, yaptığınız bir şey müşterinize bir soruna neden olduysa, işinizin kalitesinden gurur duymaktan veya pişmanlık duymakla bağdaşmadığını görmedim.

Ancak, yakın zamandaki bir soruya verilecek cevap, diğer bazı programcıların "egoless programlama" konusunda farklı anlayışlara sahip olduğunu düşündürüyor. Peki doğru tanım nedir? Ve bunun etkileri nelerdir?


7
Ego galore programlama, ego'suz programlamadan çok daha eğlencelidir.
İş

2
@ İş: Evet, ve Mythbusters'ın dediği gibi, C-4 ile her şey daha iyi.
Bob Murphy

Yanıtlar:


17

Yukarıdakilerin hepsi.

Egoless programlama çoğunlukla sizden sonra gelen, kodunuzla ne yaptığınızı anlayabilmeniz ve böylece yaptıklarınızı geliştirebilmeniz için programcıya ne kadar saygı duyduğunuzla ilgilidir. Biliyorum, bu akıl almaz görünüyor, çünkü yazdığım tüm kod zaten mükemmel;).

Ben de egosuz programcıların çalışmaları hakkında dogmatik bir tutum almadığına inanıyorum. Bu, idealist beklentilerinin her zaman bu kadar hevesle kucaklanmayacağı veya koşulsuz olarak kabul edilemeyeceği ortamlarda çalışacak kadar esnek olmasını sağlar.


Dogmatik olmamanın yapıcı ilişkiler için - sadece programlamada değil - çok önemli olduğuna katılıyorum ve sürekli onunla mücadele ediyorum.
Bob Murphy

@bobmurphy Dogmatik olmaktan kaçınmanın iki etkili yolunu biliyorum. 1) İdealler hakkında saçmalık yok. 2) İdealleri paylaşan bir geliştirme ekibi oluşturmak için gereken zaman ve enerjiyi koymak. Birçok insan 2'den vazgeçer, kimsenin okumadığı ve yavaşça 1'e girdiği bir standart dokümanı yazar. Tek anidote, insanların nasıl hissettiğiyle ilgili bir kod incelemesidir. Aşağıdaki kurallar hakkında değil.
candied_orange

8

İfadenin ISO standardı anlamı yoktur, bu nedenle farklı insanlar meşru olarak farklı şeyler ifade edebilir.

Bilgisayar Programlama Psikolojisi alanında Weinburg tarafından üretildiğine inanıyorum . Egodan herhangi birini koduna bağlamadan programlama demekti, bu yüzden "kodunuz" değil, sadece kod. Bu, kodu geliştirmek için işbirliğini, yazdıklarınızın (size yönelik olmadığı için) eleştiriyi kabul etme yeteneğini ve genel ekip çalışmasını kolaylaştırır.


Bunun bir ISO standardı olduğunu düşünmemiştim. :-) İnsanların egoless programlama ima ettiğine şaşırdım, yazdığım hatalardan rahatsız olduklarında yazılımımın tüketicilerinden özür dilemenin uygunsuz olduğu anlamına geliyor. Bunun anlamı buysa ben bencil ve kibar olacağım.
Bob Murphy

@Bob: La Weinburg'un egolessinin böcekler için nasıl özür dilemeye yol açtığını görmüyorum. Bana çok bencilce geliyor.
David Thornley

Anlayamadığım şey buydu.
Bob Murphy

6

"Ego" kavramı büyük bir yoruma tabi olduğu için doğru bir tanım yoktur. Psikolojik ve ruhsal inançlarınıza bağlı olarak, kişinin egoyu hayatlarından nasıl çıkarabileceği hakkında birkaç farklı cevap vardır.

Terimi anladığımın anlamı, kolektif bir mülkiyetin olması , böylece takımdaki her kişinin sadece kendinden ziyade herkesin yararına çalışması. " Aşiret liderliği konusunda David Logan ", bir seviye 4 kabilesinin bir anlamda egosuz insanlardan biri olacağı bir TED Konuşmasıdır.


1

Ben orta yaştayım. Birçok farklı ülkeye gittim ve astronomlar ve zen Budist rahipleri gibi parlak insanlarla tanışacak kadar şanslıyım.

Yaklaşık iki yıl önce programlama hakkında bilgimi arttırmak için birkaç bilgisayar dersi aldım.

Bir gün programlama profesörüm sınıfa "Hanoi Kulesi" bulmacasını getirdi. Programcı olarak başarılı yaşamları hakkında övünen bazı öğrenciler vardı. Profesörüm tüm öğrencilere bulmacayı verdi ve herkese bulmacayı aynı anda başlatmasını istedi.

Tüm programlama mavericks ne kadar akıllı olduklarını kanıtlamak için ellerinden geleni yapıyorlardı. İlk bulmacayı bitiren öğrenci, programlama hakkında çok az şey bilen on sekiz yaşında Çinli bir öğrencidir. Mavericks sinirlendi. Ama otuz yıllık programlama tecrübesi olan (Lisp dahil) bilge profesör yüzünde bir gülümseme yaşadı.

Kötü İngilizcem için affedersiniz. Anadilim Japonca


+1: Bunu sadece programlama ile değil, birçok kez gördüm.
Bob Murphy

BTW, ben de orta yaşlıyım (52). Gençler ve yirmili yaşlarımdayken pek çok şey hakkında çok şey bildiğime emindim. Şimdi, eminim hiçbir şey hakkında fazla bir şey bilmiyorum. 18 yaşındaki yeğenimin kendisinden çok emin olmasını izlemek oldukça eğlenceli.
Bob Murphy

@BobMurphy "ne kadar çok öğrenirim, ne kadar az bildiğimi bilirim"
gbjbaanb

1

Benim düşüncem (ve sadece bu) "egoless programlama" teriminin bir oksimoron olduğudur.

Programcılar ve mühendisler doğal olarak bencil bir gruptur (kendim dahil). Günün sonunda, kod yazdığınızda bir şeyler yaratıyorsunuz. İşinizden gurur duyduğunuzda ve çıktılarınız ne olursa olsun , akranlarınıza ne kadar saygı duyursanız ve gelecekte işinizde değişiklik yapılması gerektiğini anlarsanız da, ne zaman gerçekleşirse egonuzun canını yakar. Karşılaştığım her mühendis, kapsamlı bir tartışma yapılsa bile, bebeklerini korumak için anında aşırı koruyucu bir baba / anne diz sarsıntısı tepkisine sahip, yazar, değişikliğin yapılması gerektiğini kabul etmeye daha istekli hale geliyor.

Başka bir deyişle, tamamen ego içermeyen bir programlamanın mümkün olduğunu düşünmüyorum .

Yine, sadece benim görüş deneyime dayalı. Beni buna basmaktan çekinmeyin :)

... Ve şimdi bu iş parçacığının kaç yaşında olduğunu anladım: P


3
Meslektaşlarınızın eşek şapkası olması sizin de olmanız gerektiği anlamına gelmez! Fikir şu ki, egosuz kodlamayı teşvik edersek, gelecek nesil bir grup prima-domnna dweeb ve daha profesyonel olabilir.
gbjbaanb
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.