O que acontece com os programadores que não têm trabalho em equipe?
Então fica difícil trabalhar em projetos grandes demais para um único programador. Difícil para o programador solo e difícil para o resto da equipe.
Onde os problemas começam?
Todos os tipos de lugares. Atualmente, temos um único programador que trabalha mal como parte de uma equipe. Ele tende a fazer atalhos que têm efeitos negativos no restante do aplicativo, porque ele está focado demais na correção do bug à sua frente. Ou escrevendo o novo recurso de forma que ele não seja compatível com o restante do aplicativo. Temos que reorganizar as coisas para que cada check-in de código seja revisado pelo restante da equipe. Mas, para não destacá-lo, também analisamos as verificações de código de todos os outros, assim, junto com a reunião do status da manhã, não fazemos nenhum trabalho até depois do almoço. Portanto, em nosso escritório, isso significa que quatro pessoas estão perdendo um dia e meio de trabalho todos os dias porque um cara é péssimo no trabalho em equipe. Não posso dizer que é uma melhoria em relação às aventuras anteriores, porque poderíamos perder aleatoriamente um dia a uma semana (geralmente perseguindo novos bugs) de seus check-ins que quebram coisas (chamamos de "obstáculos"). Algumas das correções em seu código acabam limpando meia dúzia de bugs devido ao quão confusa e confusa o aplicativo é (minha recomendação pararemova-o da órbita e comece novamente, porque essa é a única maneira de garantir que não seja aceita).
Quando estamos de bom humor, o chamamos de "programador de cabeça para baixo", ele tende a olhar para o teclado e digitar bem rápido. Ele não presta atenção no que os outros estão fazendo.
Ser um bom programador compensa pelo menos um pouco?
Não. A maioria dos programadores que são maus jogadores de equipes tem uma opinião muito alta de suas próprias habilidades, e isso é chamado de efeito Dunning-Kruger . PDF de papel.
Talvez: o programador solo precisaria ser muito melhor que o resto do time. Mas isso significa apenas que ninguém mais pode manter o que ele faz; e quando isso acontece, provavelmente significa que o programador solo não é realmente muito melhor que o resto do time - ele (e quase sempre é um cara) é melhor em enganar a todos.
No desenvolvimento de software comercial, a empresa estará presente por muito tempo depois que você sair. Provavelmente, os programas foram escritos antes de você iniciar e serão mantidos muito depois que você for embora. Se você escreve coisas que são tão especiais e surpreendentes que ninguém mais as entende, acaba na situação em que a Naughty Dog está - seu principal desenvolvedor parou, ninguém mais entende a linguagem de programação proprietária que o cara escreveu (e escreveu coisas), então agora eles precisam mudar tudo para C ++.
É normal que um programador tenha uma visão sobre seu trabalho, em vez de apenas fazer o que lhe é dito?
É comum - como um engarrafamento ou diabetes. Eu não chamaria isso de normal. No mundo corporativo, há muitas outras coisas a considerar; o ego forte que muitos desenvolvedores normalmente fazem o desenvolvedor pensar que nada mais importa. Essa "falta de adequação" e falta de consideração para o resto dos negócios é o motivo pelo qual muitos tipos de gerentes chegam à conclusão de que é difícil trabalhar com desenvolvedores de software.