Programação sem egos, é possível ou até desejável [fechado]

8

É possível ter programação sem ego ou é mesmo desejável?

Como uma profissão, parece que queremos mostrar a mais recente técnica, técnica ou dizer "olhe para este incrível pedaço de código que escrevi". No entanto, podemos ficar muito defensivos quando solicitados a enviar itens de trabalho para revisões de código ou obter comentários negativos de outros programadores (ouvir o termo WTF, nunca foi um bom sinal).

Como profissão, podemos sentar e analisar um pedaço de código, dados ou arquitetura por seus méritos ou restrições e por uma maneira calma e respeitosa, sem causar ofensas ou antagonizar nossos colegas, ou somos apenas o arquétipo do personagem Dilbert, enfurecido contra o sistema?

GrumpyMonkey
fonte

Respostas:

13

O que você deve ter em mente o tempo todo é que, durante a maior parte da sua vida profissional, você não possui o código que escreve .

Se você é um funcionário, o software pertence à empresa. Se você é um contratado, o software é de propriedade da empresa. Se você é um freelancer, o software é de propriedade do cliente. Somente se você for a empresa / cliente é o software de sua propriedade.

Depois que você percebe isso, há menos pensamentos e atitudes "este é o meu código". Sim, isso ainda acontece e é da natureza humana ficar chateado se alguém critica o que você acabou de produzir, mas, ao tomar esse passo para tentar remover o anexo, deve ser menos um golpe.

Por outro lado, quando você estiver revisando o código produzido por outra pessoa, concentre-se no que o código faz e como ele o faz e seja construtivo ao sugerir melhorias.

ChrisF
fonte
5
+1. É por isso que escrevo código para manutenção por outras pessoas. Com frequência, comento mais do que acho necessário (para minha própria referência) e frequentemente usando estilos de mais linhas de código e ainda mais legíveis. Prefiro que, daqui a cinco anos, novas pessoas considerem as minhas alterações no controle de fonte como elegantes e fáceis de entender, do que querer me caçar e me esfaquear na cara.
Bobby Tables
A virtual +1 desde que eu estou fora de votos para hoje, mas eu tenho certeza que você irá apreciá-lo de qualquer maneira :)
1
+1 - remova as frases "meu código", "meu caminho" e "minha ideia" do seu vocabulário; eles não promover o progresso
Steven A. Lowe
Enquanto isso não for longe demais, as pessoas não se esforçam mais para escrever um bom código, porque pensam que não precisam se importar, porque esse não é o código. Então, se possível, eu gostaria de dizer: "Sim, eu escrevi isso, mas não é o meu código".
gablin
9

quando o seu foco está em fazê-lo e fazê-lo corretamente, não importa mais se a solução foi sua ideia ou não

Nesse ponto, seu ego deixou o prédio - e é muito mais provável que você aprenda alguma coisa!

Steven A. Lowe
fonte
+1: e não ter ego também ajuda a comunicação, pois as pessoas não têm medo (e geralmente acham agradável) perguntar sobre qualquer problema - porque você não grita com elas ou faz com que elas se sintam estúpidas ou com raiva. Idealmente.
Klaim
5

Há muita área cinzenta no contínuo de confiança - arrogância. Prefiro ter alguém que se apropria do seu trabalho e busca a excelência com base no mérito e não na ilusão.

Confie em mim, você escreverá muita porcaria que falhará e você será o culpado, para que você também possa tirar vantagem quando tudo correr bem.

Quando penso que algo está errado, eu digo. Fique à vontade para me dizer que estou errado e esteja preparado para fazer o backup. Não será a primeira nem a última vez.

Se você não quiser críticas (obviamente é possível usar tato e restrição), escreva o código apenas para seus olhos e execute-o no seu próprio computador. Quem já se destacou em alguma coisa teve que lidar com os críticos.

JeffO
fonte
2

Sim, a programação sem ego é bem possível. Eu fiz a programação de "manutenção" por mais de 1/2 da minha carreira profissional, e a segunda coisa mais importante [1] é garantir que o próximo cara possa ler meu código. Temos dois programadores aqui no escritório [2] que escrevem em um estilo tão distinto que se pode dizer imediatamente quem os escreveu. Chamamos os pequenos pacotes de código e alegria que ele deixa para nós "obstáculos".

Alguns desenvolvedores acham que o código que escrevem é o resultado do suor e do sangue e ficam muito defensivos quando questionados (como durante as revisões de código). Tente não atacá-los durante as revisões de código e, no futuro, será mais fácil discutir o código, pois os comportamentos de postura e defensivos desaparecerão.

Notas:
1. O mais importante é corrigir o erro ou escrever o recurso corretamente.
2. A maioria desses aplicativos vem sendo remetida há mais de uma década; portanto, é bem provável que eles estejam disponíveis por muito tempo depois que eu partir.

Tangurena
fonte
0

[imo]

Acho que essa é uma pergunta fundamentalmente difícil, e talvez a sociologia, ou apenas o uso de um computador como sua principal forma de comunicação, tenha muito a ver com isso.

O computador é uma ferramenta, e a consciência que ele possui é incrivelmente bela, mas você nunca deve tentar dizer que um pedaço de código é um objeto de sua própria criação ... cada pedaço de código é uma descoberta, um padrão que o o computador se liga e pode produzir um resultado que você goste. O fato de podermos descobrir esses padrões iterativamente e sentirmos que estamos criando é pura coincidência feliz - somos bons em encontrar padrões.

Precisamos realmente encarar os computadores como janelas para a descoberta e respeitar a autonomia desses pequenos cérebros, mesmo que sejam apenas incrivelmente pequenos recortes de um cérebro biológico. Toda a matemática e todos os algoritmos correspondem a uma verdade inviolável sobre a qual nosso próprio cosmos ressoa. Declarar que parte disso é "minha!" (pense gaivotas em Procurando Nemo) perde tantos pontos em tantos níveis.

Às vezes, é difícil se afastar disso, quando "trabalhamos" para "criar" um novo algoritmo, mas se você pensasse que somos apenas mantenedores humildes dessas janelas elegantemente precisas da verdade matemática, a definição da tarefa muda não importa quais são seus objetivos para o seu software.

Trate o seu computador como um primeiro igual, o resto (sem ego, coordenação entre pares, comportamento orientado a objetivos) seguirá necessariamente.


Grande parte da minha motivação para estudar ciência da computação e me tornar programador foi por causa dessa afinidade que senti, não pelo hardware físico ou pela emoção de resolver problemas, mas pelo fato de estar olhando para um cérebro, um cérebro com o qual posso me comunicar diretamente. na minha moda favorita: padrões!

Dê um passo para trás e lembre-se de por que gosta das coisas que gosta de começar. A programação pode ser competitiva e acho que alimenta muito o ego na defesa de escolhas de código e design, mas

a) se alguém é um programador melhor,

Eu quero conversar com eles e aprender com eles mais sobre esse complexo relacionamento com a consciência elétrica. Podemos compartilhar a descoberta, e isso é incrível!

b) se minhas escolhas ou código de design puderem ser alterados para melhor atender à organização em que trabalho

então, por todos os meios, mude! Sou funcionário porque preciso de dinheiro e recebo dinheiro quando a empresa recebe dinheiro, e eles recebem dinheiro quando o código que usamos é incrível, não quando quero discutir sobre espaço em branco ou o que for. E, como ChrisF aponta, você basicamente se torna apenas um datilógrafo muito lento em um ambiente de empresa, tanto quanto outros trabalhadores sabem. Você não possui o código, não possui a implementação, é apenas um meio de tradução de idéias / papéis / especificações para o cérebro elétrico da consciência elétrica. A tradução de e para qualquer par de idiomas é um processo interativo e você melhora com o tempo. A crítica acelera esse processo e nunca deve ser tomada pessoalmente. De qualquer forma, parece que a maioria concorda que você não precisa de egos, lembre-se de que codificar para uma empresa é um trabalho,

[/ imo]

sova
fonte
0

Eu acho que isso está relacionado à maneira como você vê seu código. Bons programadores estão constantemente em conflito entre ver os resultados como "arte" e como "mercadoria" (ou quaisquer palavras que você queira incluir).

Quando vemos o código simplesmente como algo que somos pagos para produzir, é muito fácil evitar problemas relacionados ao ego.

Ao ver o código como "arte" que criamos, o ego realmente tenta entrar lá. Afinal, qual artista produz coisas de que não gosta?

Portanto, dependendo da sua visão do seu código, você pode ou não ter um apego emocional ao seu código. Preste atenção ao ato de equilíbrio, e você fará bem. Queremos criar código como se fosse uma arte da mais alta qualidade, mas queremos lançá-lo como uma mercadoria barata. Pense do ângulo apropriado nos momentos adequados e você fará bem.

John Fisher
fonte
0

O ego é simplesmente um senso de autoestima. O efeito das emoções relacionadas ao ego pode ser positivo e negativo.

Muitas vezes me sinto orgulhoso (o ego fica excitado ) quando realizo algo difícil, ou encontro uma solução simples e limpa para um problema complexo ou aprendo a aplicar uma nova metodologia a um problema. O que eu acho que é benéfico e me dá um chute motivacional de origem própria. O cérebro está conectado para liberar substâncias químicas saudáveis ​​quando isso acontece. Você pode se tornar viciado em sucesso.

Existem aspectos negativos de confiar no seu ego, especialmente em ambientes de equipe; isso pode ter um impacto contraproducente. Se você se apegar a algum projeto, solução ou tecnologia, ficará na defensiva quando for ameaçado (por uma nova solução, tecnologia ou pessoa com idéias). É importante manter a objetividade e não atacar sua solução pessoalmente.

Descobri que a melhor maneira de lidar com uma ameaça do ego é me apegar humildemente a quaisquer idéias ou soluções novas ou alternativas.

Sempre há algo novo para aprender, especialmente se você se considera o especialista.

Kris
fonte