O que é "programação sem ego"?

12

Eu ouvi esse termo pela primeira vez cerca de quinze anos atrás.

Meu entendimento é semelhante ao descrito no artigo da Wikipedia e em um artigo da TechRepublic : você trabalha com seus colegas de uma "maneira amigável e colegiada na qual os sentimentos pessoais são deixados de lado". Isso inclui coisas como fazer análises por pares com respeito mútuo e desejo de aprender, e não sentir que você "possui" o código. Portanto, se alguém tem uma sugestão ou diz que há um bug ou precisa alterá-lo, não fica na defensiva isto.

Eu também pensei que se tratava basicamente de ter uma atitude que cria boas relações com outros programadores com o objetivo de melhorar o código. Portanto, não vejo como incompatível orgulhar-se da qualidade do seu trabalho ou me arrepender se algo que você fez causou um problema ao seu cliente.

No entanto, uma resposta a uma pergunta recente me faz pensar que outros programadores têm diferentes entendimentos sobre "programação sem ego". Então, qual é a definição correta? E quais são suas implicações?

Bob Murphy
fonte
7
Porém, a programação egoísta é muito mais divertida do que a programação sem ego.
Job
2
@ Job: Sim, e como dizem os Mythbusters, tudo corre melhor com o C-4.
Bob Murphy

Respostas:

17

Tudo acima.

A programação sem egos tem a ver principalmente com o respeito que você tem pelo programador que vem depois de você, que terá que descobrir o que você fez com seu código para que ele possa mantê-lo e, possivelmente, melhorar o que você fez ( Eu sei, isso parece inconcebível, já que todo o código que eu escrevo já é perfeito;).

Também acredito que programadores sem ego não assumem posições dogmáticas sobre seu trabalho. Isso os torna flexíveis o suficiente para trabalhar em ambientes onde suas expectativas idealistas nem sempre podem ser tão avidamente abraçadas ou aceitas incondicionalmente.

Robert Harvey
fonte
Concordo que ser não dogmático é muito importante para relacionamentos construtivos - não apenas na programação também - e luto constantemente com isso.
Bob Murphy
@obmurphy Conheço duas maneiras eficazes de evitar ser dogmático. 1) Não dando a mínima para os ideais. 2) Colocando tempo e energia necessários para construir uma equipe de desenvolvimento que tenha ideais compartilhados. Muitas pessoas desistem do 2, escrevem um documento de padrões que ninguém lê e passam lentamente para o 1. O único anídoto é uma revisão de código sobre como as pessoas se sentem. Não é sobre seguir regras.
Candied_orange 18/09/19
8

A frase não tem um significado padrão ISO, então pessoas diferentes podem legitimamente significar coisas diferentes por ela.

Acredito que foi cunhado por Weinburg em The Psychology of Computer Programming . Ele quis dizer programar sem vincular nenhum ego ao código, para que não seja "seu código", é apenas código. Isso facilita a cooperação para melhorar o código, a capacidade de aceitar críticas ao que você escreveu (porque não é direcionado a você) e o trabalho em equipe em geral.

David Thornley
fonte
Não achei que fosse um padrão ISO. :-) Fiquei surpreso que as pessoas impliquem em programação sem ego significa que é inapropriado pedir desculpas aos consumidores do meu software quando são incomodados pelos bugs que escrevi. Se é isso que significa, serei egoísta e educada.
Bob Murphy
@ Bob: Eu não vejo o quão egoísta a Weinburg leva a não pedir desculpas por bugs. Isso parece muito egoísta para mim.
precisa
Era isso que eu não conseguia descobrir.
Bob Murphy
6

Não existe uma definição correta, pois o conceito de "ego" está sujeito a uma grande interpretação. Dependendo de suas crenças psicológicas e espirituais, existem mais do que algumas respostas diferentes sobre como alguém pode tentar remover o ego de sua vida.

A implicação que entendo do termo é que existe uma propriedade coletiva , de modo que cada pessoa da equipe trabalha para o benefício de todos, e não apenas de si mesmo. " David Logan sobre liderança tribal " é um TED Talk, onde uma tribo de nível 4 seria a de pessoas sem ego em certo sentido.

JB King
fonte
1

Eu sou uma pessoa de meia idade. Já estive em muitos países diferentes e tive a sorte de conhecer pessoas brilhantes como astrônomos e monges budistas zen.

Há cerca de dois anos, participei de duas aulas de informática para aprimorar meu conhecimento sobre programação.

Um dia, meu professor de programação trouxe o quebra-cabeça "Tower of Hanoi" para a classe. Alguns estudantes sempre se gabam de suas vidas bem-sucedidas como programadores. Meu professor deu a todos os alunos o quebra-cabeça e pediu a todos que iniciassem o quebra-cabeça ao mesmo tempo.

Todos os especialistas em programação estavam tentando ao máximo provar o quão inteligentes são. O aluno que termina o quebra-cabeça primeiro é um estudante chinês de dezoito anos que sabe muito pouco sobre programação. Os dissidentes estavam chateados. Mas meu sábio professor, com trinta anos de experiência em programação (incluindo Lisp), tinha um sorriso no rosto.

Desculpe-me pelo meu inglês ruim. Minha língua materna é japonesa

Tio Joe
fonte
+1: eu já vi isso muitas vezes, e não apenas com programação.
Bob Murphy
Aliás, também sou de meia-idade (52). Na adolescência e na casa dos vinte anos, eu tinha certeza de que sabia muito sobre muitas coisas. Agora, tenho certeza que não sei muito sobre nada. É muito divertido ver meu sobrinho de 18 anos ter muita certeza de si mesmo.
Bob Murphy
@BobMurphy "quanto mais eu aprendo, mais eu sei o quão pouco eu sei"
gbjbaanb
1

Minha opinião (e apenas isso) é que o termo "programação sem ego" é um oxímoro.

Programadores e engenheiros são inerentemente um grupo egoísta (inclusive eu). No final do dia, quando você escreve código, está criando algo. Quando você se orgulha do seu trabalho e do que produz, não importa o quanto respeite seus colegas e entenda que as mudanças precisam ser feitas no seu trabalho no futuro, isso ainda machuca o seu ego quando isso acontece. Todo engenheiro que eu já conheci tem uma reação instintiva de pai / mãe contra-protetora para proteger seus bebês, mesmo depois de uma discussão aprofundada, o autor fica mais disposto a aceitar o fato de que a mudança precisa ser feita.

Em outras palavras, não acho possível ter uma programação puramente sem ego.

Mais uma vez, apenas minha opinião com base na experiência. Sinta-se livre para me divertir com isso :)

... E agora eu percebi quantos anos esse segmento tem: P

Demian Brecht
fonte
3
Só porque seus colegas são idiotas não significa que você também precisa ser! A idéia é que, se incentivarmos a codificação sem egos, a próxima geração poderá ser menos um bando de burros prima-domnna e mais profissionais.
Gbjbaanb