Você deve escrever boa documentação e código limpo para aumentar o "fator de barramento"?

48

Um dos principais objetivos das empresas de desenvolvimento de software é aumentar o fator Bus. Isso também é defendido em uma palestra organizada pelo Google .

Isso significa que você deve codificar e documentar tudo de forma que, se você for atropelado no ônibus amanhã, o projeto ainda possa continuar. Em outras palavras, você deve ser facilmente substituído por outro programador com uma habilidade semelhante à sua.

Ser substituível, não é contra o interesse de um desenvolvedor? No livro, a regra 11 das 48 leis do poder estabelece que você deve tentar manter as pessoas dependentes de você, a fim de obter poder, o que se traduz em recompensas monetárias.

Além do cenário, em que você precisa de alguma documentação para continuar um projeto após 6 meses de pausa, parece haver um claro conflito de interesses entre o desenvolvedor e a empresa de software.

Portanto, como programador, você deve realmente escrever uma excelente documentação e um código facilmente legível para todos; ou você deve escrever código e documentação de uma maneira que ele faça o trabalho e você possa entendê-lo, mas outra pessoa pode ter problemas para entendê-lo?

siamii
fonte
41
O livro de Greene é adequado para déspotas e lacaios que buscam favores nos feudos. Não é uma boa filosofia moral para o trabalho em equipe. Para dizer o mínimo! [Observe que a Wikipedia classifica este livro em "sociopatia"]
Steven A. Lowe
27
Eu nunca iria contratá-lo: D
deadalnix 01/10/11
37
Os cemitérios estão cheios de pessoas insubstituíveis.
Job
20
Você nunca quer ser insubstituível - como obter promoção se não pode ser substituído? A menos que você esteja feliz exatamente onde está, para sempre, o 'fator de ônibus' é sempre importante.
Dave
11
"O livro compartilha elementos temáticos com The Prince, de Niccolò Machiavelli, e foi comparado ao tratado clássico de Sun-Tzu, The Art of War". Acho que não quero trabalhar com quem vê seu local de trabalho como a política italiana do século XVI ou ... a antiga guerra chinesa.
Cascabel

Respostas:

110

Você deve se esforçar para se tornar insubstituível, não escrevendo código que ninguém mais entende, mas reunindo mais experiência e conhecimento do que outros. A maneira anterior faz de você um desenvolvedor com quem todos tentam evitar trabalhar, pois eles temem e detestam manter o código que você escreveu. Da última maneira, você se torna um membro da equipe procurado, que os gerentes desejam ter em sua equipe.

Na minha experiência, escrever código limpo e bem documentado (e de preferência auto-documentado) sempre valeu a pena. Na verdade, aproveitei quase todas as oportunidades para ajudar e ensinar os outros (além de aprender com eles quando eles sabiam algo melhor), e quase nunca me senti em perigo de ser substituído por alguém menos capaz do que eu. De fato, isso geralmente ajudou toda a equipe a trabalhar melhor e resolver problemas mais rapidamente, o que é o sonho de todo gerente - e um gerente sensato não deseja substituir os membros de uma boa equipe.

Péter Török
fonte
11
É interessante que isso seja abordado agora, porque há poucos dias atrás me disseram como eram valiosos alguns diagramas que eu fiz de um dos projetos em que estou trabalhando atualmente, para pessoas que provavelmente nunca o farão. toque no código. Isso e, claro, fornecendo uma visão de alto nível dos diferentes módulos e como eles interagem. Essa visão não pode ser particularmente necessária agora, quando eu tenho tudo na memória fresca, mas quase certamente vai ajudar quando eu revisitar o código no prazo de um ano ...
um CVn
2
Algumas pessoas que escreveram códigos (ruins, ofuscados) que os tornaram "insubstituíveis" no meu trabalho não funcionam mais aqui. Programadores melhores viram seu trabalho durante revisões de código ou consertando coisas enquanto estavam de férias. Viram a "qualidade" de seu trabalho e foram enlatados.
CaffGeek #
44

Se você vai manipular organizações ou pessoas de forma tão transparente, é melhor que seja estúpido ou em um congestionamento que não lhes deixa outra escolha. Uma loja de desenvolvimento de software bem administrada examinaria seu código obscuro e a documentação ausente e simplesmente o demitiria antes que você pudesse causar muitos danos. Se eles são mal executados ou não conseguem que outros desenvolvedores trabalhem para eles, por que você gostaria de ter uma segurança com eles?

PS Nem Greene nem Maquiavel realmente conseguiram muito além de escrever livros que tentavam lisonjear os "homens durões" da época. Siga os conselhos deles com um grão de sal.

Charles E. Grant
fonte
42

Se você é insubstituível, não pode ser promovido.

James McLeod
fonte
14
Pior, em alguns lugares, se você demonstrar que pode pegar o código não funcional de outras pessoas e fazê-lo funcionar, nunca mais poderá trabalhar em seu próprio código, porque será percebido como mais barato permitir que os outros caras desbaste uma enorme pilha de vapor e depois limpe e polir a enorme pilha de vapor.
John R. Strohm
melhor argumentação de todos os tempos sobre o tema
ZJR 02/10
2
Resposta clássica de fato.
Sarawut Positwinyu
@ JohnR.Strohm Dude !!!! Eu estive lá e isso é tão ruim. Sendo um engenheiro mais cuidadoso, levaria um pouco mais de tempo em uma tarefa. Então, o gerente começou a deixar outras pessoas escreverem código gasto rapidamente e depois me fez limpá-lo em uma revisão de código. Eu me senti absolutamente mal usada porque esse papel se tornou minha relevância para a equipe, mesmo que não fosse o que eu queria. Escusado será dizer que deixei a equipe logo depois que percebi isso.
davidXYZ 03/04
17

Você não quer ser insubstituível. Você não quer que as pessoas se sintam dependendo de você, quer que elas o apreciem. Geralmente, você quer ficar longe das pessoas, que acreditam que metade das leis do poder deve ser aplicada aos relacionamentos (profissionais ou pessoais).
Essas regras são um conjunto de instruções sobre como estabelecer com êxito uma situação de perda e ganho. O que você quer é uma situação em que todos saem ganhando .
Assim que as pessoas começarem a sentir, você está tentando empurrá-las para o lado perdedor de uma situação em que todos perdem, eles reagirão. As tentativas de estabelecer situações de perda e perda geralmente acabam em um resultado de perda e perda, porque você está efetivamente desperdiçando recursos para colocar seu parceiro em uma posição de perda, em vez de investi-los no sucesso geral de sua parceria.

Se você fizer isso com seus empregadores, eles tentarão forçar medidas contra você, para reduzir o monopólio do conhecimento. Principalmente, essas diretrizes serão ridículas sobre como você deve fazer seu trabalho e, assim, transformar sua vida profissional em um inferno. Além disso, eles ligam para você às 3 horas da noite, quando algo quebra, porque você é a única pessoa que pode consertá-lo. Tentar explorar situações como alavancagem provavelmente sairá pela culatra e causará mais problemas.

Os cemitérios estão cheios de homens indispensáveis.
- Gaulle, Charles De

Então, corte a porcaria e faça seu trabalho corretamente. Se não for para mais nada, então para você, porque é provável que você seja a pobre alma, que precisa fazer algumas alterações no código daqui a dois anos.

back2dos
fonte
Descobri que toda vez que tento estabelecer uma situação em que todos saem ganhando, as pessoas querem ganhar e parecer superiores. É quase como aquele livro sobre como a Máfia funciona: se você tratar um colega como igual, logo ele assumirá que ele é superior a você. Funciona no designer gráfico que acabou de sair da faculdade por 3 anos - quanto mais eu o respeitava, mais ele me tratava como lixo. E agora eu pareço superior a princípio, e mais pessoas me respeitam. Isso é estranho. Mas o lugar da diferença deve ter uma cultura diferente. Eu trabalho nas startups do Vale do Silício.
Nopole
11
@ 動靜 能量: Isso soa mais como perder-ganhar. O objetivo do ganha-ganha não é ser legal com todos incondicionalmente. Se você tem a sensação de que alguém o está tratando como lixo, deve abordá-lo de maneira aberta, clara e razoável. É fácil mostrar que, se alguém da sua equipe se comporta como um idiota, isso não é benéfico para o desempenho geral da equipe.
back2dos
"perder-ganha" é uma situação especial no sistema "ganha-ganha" ou "ganha-perde"? Não consigo encontrar muita informação sobre isso ... mas observe que nem tudo no mundo pode ser ganha-ganha. O colega de trabalho que quer ser o diretor ou o líder da equipe definitivamente não conseguirá vencer. Ou os colegas de trabalho que querem aparecer como a super estrela ou obter uma promoção, obter um aumento ou proteger seu título de "arquiteto" ou não serem demitidos antes da data de aquisição de um ano da opção de compra de ações, definitivamente não o verão como "ganha-ganha" quando ele precisa te derrubar. Agora eu não quero nem entrar em uma situação "perde-ganha" para começar com ...
nopole
a razão é que, se ele me tratar como lixo primeiro, provavelmente o odeio um pouco, e não será um bom relacionamento depois. Se eu pareço superior e ele me respeita um pouco, então o relacionamento pode continuar melhor sem os altos e baixos. Mas é verdade que descobri que no vale do silício da garganta cortada, se você está "aceitando" e "tolerante", você se torna um capacho no qual as pessoas gostam de pisar. Então, definitivamente retaliar apropriadamente ou que ele saiba que há conseqüências.
Nopole
@ 動靜 能量: Por favor, siga o link no meu post. No seu caso, você deve defender abertamente os acordos ganha-ganha ou nenhum acordo. Muitas vezes, todos os tipos de interação se transformam em brigas, quando, na verdade, gastar tempo discutindo a maneira como a interação é abordada resolveria as coisas. É tão simples quanto: "Eu preferiria que nosso relacionamento fosse uma colaboração, em vez de uma competição, e estou disposto a assumir compromissos de acordo. Se você não vê isso como uma opção, seja honesto o suficiente para me dizer agora. Se você tentar para usar isso para me enganar, vou arrancar suas bolas. " Embora você queira reformular o último bit;)
back2dos
15

As respostas negativas não são muito surpreendentes, dado o número de programadores acima da média que este site atrai. As pessoas talentosas geralmente não precisam recorrer a esse tipo de tática de segurança através da ofuscação. Mas eu trabalhei em um fornecedor automotivo da Fortune 500 com alguns desenvolvedores não tão talentosos que criaram pequenos feudos para si mesmos, que eles zelosamente guardavam, criando quantidades abundantes de documentação para as horrendas interfaces que eles haviam projetado.

O trabalho de um indivíduo era manter o código de um módulo que fazia a ponte entre dois subsistemas completamente separados, permitindo que os módulos de cada sistema se comunicassem por meio de um UART. Basicamente, era a Programação Serial 101. Em vez de apenas criar uma interface geral que se parecia com isso:

  int sendData (int targetModule, void * data, size_t byteCount);
  int recvData (int sourceModule, dados * vazios, tamanho_t maxBytes);

ele criou opcodes separados para cada mensagem que dois módulos de comunicação podem querer enviar um ao outro. O que significava que seu módulo precisava conhecer todas as mensagens e precisava ser atualizado sempre que uma mensagem fosse adicionada ou alterada. Fale sobre intimidade inadequada!

O problema é que esse cara manteve um documento do Word listando ordenadamente todos os códigos / mensagens e atualizou-o diligentemente, conforme necessário. Tornou-se todo o seu trabalho . Algumas vezes por semana, ele enviava uma nova revisão a todas as pessoas infelizes o suficiente para tê-lo em seu caminho crítico. E isso foi visto como 'profissional', já que a gerência adorava ver a documentação. Meio que me faz chorar pela indústria automotiva.

Acho que meu argumento é: às vezes escrever documentação pode, de fato, proteger programadores medíocres. Os gerentes geralmente não conseguem distinguir a diferença entre um bom design e um ruim, e muitos são forçados a tomar decisões técnicas com informações limitadas. É incrivelmente estressante para eles. Ver um documento do Word com dezenas de tabelas bem formatadas pode ser muito reconfortante - mesmo que o que ele descreve seja uma idéia fundamentalmente ruim.

evadeflow
fonte
Uma perspectiva interessante.
Scrib #
Isso não se limita apenas à indústria automotiva. Eu acho que qualquer organização grande, que não esteja no campo de software / tecnologia, mas emprega desenvolvedores de software (entre outras equipes de TI), sofrerá esse tipo de coisa em menor ou maior grau.
CraigTP
Acredito no valor da documentação, mas a documentação não é o que está protegendo o trabalho desse cara. Ele está lá apenas devido à administração e complacência incompetentes. É surpreendente que ninguém tenha demorado 90 minutos para escrever um memorando intitulado: Como economizar milhões de dólares E criar um produto melhor. Talvez isso seja parte da razão pela qual empresas como GM e Chrysler se viram em buracos muito profundos e muito caros.
Caleb
11
@ Caleb: Em qualquer organização de grande porte, nenhuma boa ação fica impune. É muito mais fácil permitir o feudo dos outros e criar um feudo para si mesmo, se você puder.
Gilbert Le Blanc
3
@ Caleb: Estamos saindo do assunto, mas eu e outras pessoas como eu decidimos não combater a natureza humana. Você pode alcançar uma meritocracia em um pequeno (<20) grupo de tecnologia da informação, mas depois de passar por mais ou menos 100 desenvolvedores de software, sua organização será um feudo, goste ou não.
Gilbert Le Blanc
14

Ser substituível, não é contra o interesse de um desenvolvedor?

Eu odeio dizer isso a você, mas todo mundo é substituível. Claro, às vezes pode ser um pequeno desafio substituí-lo (se você é experiente e inteligente o suficiente), mas são anos-luz do impossível.

A maneira de realmente ser uma mercadoria valiosa para o seu empregador (não apenas o empregador atual, mas qualquer empregador) é demonstrar a capacidade de escrever um código que seja fácil de entender por qualquer pessoa que esteja lendo o código (pouco tempo de aceleração para trabalhar com ele) e documentar o código (qualquer pessoa pode obter uma visão geral de alto nível de seus sistemas sem precisar pesquisar no código).

Na verdade, ser bom em documentação de código é uma qualidade difícil de encontrar hoje em dia, de modo que sozinho o ajudará a diferenciá-lo dos outros.

Código limpo e bem documentado também merece ser colocado em um currículo (pelo menos, resultados tangíveis, ou seja, "fomos capazes de atrair nnovos desenvolvedores com o mínimo de ramp up e assistência devido à minha documentação), onde estamos sendo sorrateiros sobre como criar você mesmo "insubstituível" não é.

Demian Brecht
fonte
-1: Eu odeio dizer isso a você, mas todo mundo é substituível. - Sim, mas algumas pessoas são mais difíceis de substituir do que outras.
Jim G.
10

Ser substituível, não é contra o interesse de um desenvolvedor?

Depende de quais são os interesses desse desenvolvedor. Se você é alguém que quer se destacar em um único emprego por toda a sua carreira, seja completamente indispensável para uma empresa que recompensa a incompetência e ganha muito dinheiro, então sim, absolutamente.

Mas o que acontece quando a empresa falha, provavelmente porque eles contrataram muitas pessoas assim? Para onde você vai depois? E quando eles perguntam por que você permaneceu no mesmo emprego por 15 anos? E assim por diante.

Agora olhe para ele de uma maneira diferente: quantos desenvolvedores perderam o emprego sendo alguém que escreve código que qualquer um pode ler?

A única probabilidade de que isso aconteça é se a empresa estiver com problemas e tornar as pessoas redundantes. Se isso estiver acontecendo, é melhor você sair e estará muito bem preparado para as próximas entrevistas. Além disso, sua consciência estará completamente livre - você não deixará para trás um código inexplicável que você escreveu para seu próprio ganho.

Não sei que tipo de pessoa você é, mas isso serve melhor aos meus interesses.

Pessoalmente, acho que uma das minhas maiores forças é automatizar meu próprio trabalho. O que você acha que uma empresa tende a pensar quando me tornei excedente aos meus próprios requisitos? Eles pensam "ok, vamos nos livrar dele agora" ou eles pensam "por que não o colocamos em outro papel e o deixamos fazer de novo"?

pdr
fonte
9

Ser substituível, não é contra o interesse de um desenvolvedor?

Você está certo, mas acho que não entendeu o significado de substituível. Eu pude encontrar mil desenvolvedores que escrevem códigos agitados, sem documentos, que podem rapidamente se transformar em uma bagunça insustentável.

Um desenvolvedor que produz não apenas programas estáveis, mas também código limpo, documentação informativa e garante a continuidade do projeto, que não é apenas insubstituível, mas inestimável .

rahmu
fonte
7

Abordarei esta questão de uma perspectiva diferente, uma vez que já existem várias respostas excelentes.

Considere o que acontece quando você joga pequenos jogos, tentando se tornar "insubstituível", impedindo que outras pessoas aprendam como seu código funciona. Você permanece no mesmo trabalho, mantendo suas próprias bagunças enquanto a empresa o tolerar. E esse é o melhor cenário, o pior cenário é que outros engenheiros e gerentes mais talentosos e éticos da sua empresa veem o obstáculo que suas más práticas impõem à empresa e decidem fazer algo a respeito: demitindo e reescrevendo tudo do zero. Já foi feito. De fato, é uma coisa bastante comum acontecer.

Agora considere o que acontece quando você escreve um bom código e uma boa documentação. Você cria um componente ou sistema que funciona bem e, depois de um tempo em operação, os bugs funcionam sem problemas e dificilmente precisam ser vistos. É preciso pouco esforço para mantê-lo. Você pode então avançar para projetos maiores e melhores, com uma sólida vitória. As pessoas o reconhecerão por ter feito um bom trabalho e começarão a respeitar sua opinião. Você poderá subir na cadeia alimentar e tomar decisões mais significativas, realizar trabalhos mais importantes e com impacto, ou gerenciar projetos em um nível superior. Sua carreira irá melhorar, você será promovido, ganhará mais dinheiro, ganhará reconhecimento e aprovação de seus colegas, acrescentará cada vez mais sucessos de projetos cada vez mais importantes ao seu histórico.

Qual rota você prefere?

Cunha
fonte
4

Se você é o único ponto de falha, seu cliente (ou empregador) provavelmente tentará substituí-lo; sempre há um ponto em que é mais barato substituir o software do que mantê-lo, por mais essencial que pareça. Há uma razão pela qual a TI é uma das profissões mais terceirizáveis.

Por outro lado, ser substituível oferece vários benefícios inestimáveis:

  • ser capaz de tirar férias
  • não estar de plantão
  • liberdade para sair e trabalhar em um projeto novo e em andamento
Domchi
fonte
-1: Se você é o único ponto de falha, seu cliente (ou empregador) provavelmente tentará substituí-lo; - Não na minha experiência. Por favor, veja a resposta @evadeflow.
Jim G.
3

Se você não gastar 5 minutos escrevendo alguma documentação rápida, passará uma hora relendo e explicando às pessoas quando elas precisarem usar seu código.

Pior ainda poderia ser passar dias procurando um novo emprego, porque seu chefe descobriu que você não estava escrevendo código de manutenção.

Pubby
fonte
3

Uma documentação excelente ficará obsoleta com a refatoração / evolução, e mantê-la atualizada é realmente demorada.

Código limpo + teste de unidade> excelente documentação

xsace
fonte
11
Acordado. Não posso dizer quantos projetos em que trabalhei, onde todos da equipe (inclusive eu) decidiram que "faríamos certo desta vez" e usariam o doxygen ou o CppDoc para documentar tudo e mantê-lo atualizado. encontro. Ainda não aconteceu. Sendo os cronogramas do projeto o que são, as doutrinas inevitavelmente ficarão fora de sincronia com relação ao código, e nossa cobertura de teste seria mínima ou inexistente. Agora, tenho tendência a olhar dardos para quem sugere o uso de doxygen e pedir que eles me mostrem seus testes primeiro. A documentação do código sem nenhum teste é apenas um pacote de mentiras.
Evadeflow 01/10/11
Isso não vem ao caso - bons testes de unidade são documentação. Você está apenas defendendo uma variedade específica de código limpo e documentado, sem dizer que isso não deve ser feito.
Cascabel
2

A resposta para sua pergunta é sim". Sim, você deve escrever boa documentação e código limpo. Deliberadamente, agir de outra forma mostra falta de integridade, o que, apesar de cada vez mais prevalecente no mundo dos negócios, não é de repente algo "bom".

Ninguém é insubstituível. As pessoas que fabricam uma situação em que pensam que são tendem a descobrir da maneira mais difícil que não são. Fabricar uma co-dependência para si mesmo é contraproducente, pois também limita você, não apenas seu empregador.

tentador
fonte
2

Um dos principais objetivos das empresas de desenvolvimento de software é aumentar o fator Bus

Premissa falsa. Os principais objetivos de uma empresa de desenvolvimento de software (de qualquer maneira em que trabalhei) são produzir o melhor software possível e ganhar dinheiro, não necessariamente nessa ordem. Reduzir o "fator de ônibus" é apenas uma maneira de evitar perder dinheiro.

Lei 11 Aprenda a manter as pessoas dependentes de você.

O que isso significa para você?

Você quer que as pessoas dependam de você porque você as prejudicou de tal maneira que elas só podem avançar com sua ajuda? Ou você quer que as pessoas dependam de você porque você é inteligente e perspicaz, confiável, confiável e capaz de ajudar outras pessoas a fazerem seu trabalho melhor também? Deseja fazer com que seus colegas pareçam ruins sem a sua ajuda ou deseja que eles o apreciem por fazê-los parecer bons?

A decisão é sua.

Caleb
fonte
1

(assumindo código de produção)

Eu tendem a ir um pouco mais longe. Eu escrevi sobre tornar os programas "à prova de idiotas", mas nem sempre qualifico isso: escrevo muito código que outras pessoas não verão ou trabalham (pelo menos, essa é a expectativa quando é escrita). Eusou o idiota do qual estou tentando me defender nesse caso. É uma coisa boa quando o seu programa detecta problemas para você, e o problema foi tão simplificado que é bastante óbvio que há um erro e sua origem. A verdade é que os detalhes da implementação são óbvios quando você escreve um programa (a menos que esteja implementando prematuramente), mas eles devem ser abstraídos e resistentes a erros para os clientes (mesmo quando existe a localização do módulo). A razão é que os programas se tornam muito complexos. Às vezes, você pode separar problemas, mas não o tempo todo. Se você mantiver seus componentes muito rígidos, simples, bem encapsulados e à prova de idiotas, eles tendem a escalar bem e a maioria dos defeitos é detectada antes do envio. É mais fácil reutilizar, e você tem mais confiança e facilita a reutilização dos programas. Além disso, esses programas complexos que você escreve apenas se tornam mais complexos (mesmo para você) depois de algum tempo fora do programa. Quando você o lê em 6 meses, pode levar uma quantidade absurda de tempo para entender e depurar em comparação com a versão à prova de idiotas. Se um componente introduzir uma alteração de ruptura, ele poderá não ser detectado por um longo tempo, caso contrário. Programas são complexos; você não pode escapar dessa realidade, mas pode torná-la à prova de idiota, o que tornará sua vida muito mais fácil quando algo der errado ou quando precisar ser reutilizado ou alterado. Portanto, a abordagem à prova de idiotas significa que seu software pode ser entendido, reutilizado ou mantido por seus juniores ou por pessoas mais novas da equipe (não apenas alguém tão bom / experiente quanto você). A substituição é uma preocupação separada: se as pessoas adoram trabalhar com seus programas, você está fazendo um bom trabalho - não não se preocupe com a substituição. Claro, eu poderia criar cenários em que programas ininteligíveis poderiam salvar seu trabalho, mas escrever um bom programa que outros possam usar e manter é claramente o mal menor (veja as resenhas dos outros). Se me pego escrevendo algo que não é à prova de idiotas, tento consertar isso.

Além do cenário, em que você precisa de alguma documentação para continuar um projeto após 6 meses de pausa, parece haver um claro conflito de interesses entre o desenvolvedor e a empresa de software.

Você realmente não tem ideia do que estava pensando algumas vezes ao revisitar implementações inativas. Quando você é realmente experiente, o problema é mais simples, porque você pode confiar mais em metodologias ou abordagens estabelecidas que você usa. Isso, no entanto, também pressupõe que essas metodologias sejam invariantes. Embora a documentação possa relaxar, você ainda precisa ser defensivo em suas implementações (por exemplo, você sabe que não deve passar NULL nesse cenário - teste essa condição).

Portanto, como programador, você deve realmente escrever uma excelente documentação e um código facilmente legível para todos; ou você deve escrever código e documentação de uma maneira que ele faça o trabalho e você possa entendê-lo, mas outra pessoa pode ter problemas para entendê-lo?

Eu recomendo a abordagem à prova de idiotas, que é ainda mais clara e mais resistente a erros do que a abordagem de fator de barramento. Escreva seus programas e documentação para que seja facilmente entendido por alguém externo ao projeto - isso também é bom para você. Isso aumentará seu valor para sua empresa e equipe; eles não desejarão substituí-lo.

justin
fonte
1

Você entendeu fundamentalmente o jogo. O jogo não é continuar fazendo as mesmas coisas antigas que você fez antes, sendo responsável por todo o código que você escreveu, porque ninguém mais o entende. O jogo é concluir um projeto e avançar para o próximo, deixando para trás um código que outra pessoa possa entender e trabalhar com facilidade na sua ausência, para que você possa fazer coisas novas e assumir mais e diferentes responsabilidades. Sua premissa só funciona se você estiver feliz por ficar parado repetindo a mesma coisa sem chance de aprender ou melhorar.

tvanfosson
fonte
1

Também vou apontar que, se você não tiver oportunidade de analisar esse código com muita frequência, também terá problemas para descobrir isso em seis meses se o ofuscar deliberadamente.

HLGEM
fonte
0

Documento o pequeno código que escrevo, não para que outros possam lê-lo, mas para que eu possa lê-lo em três meses! Trata-se de facilitar a manutenção. Se você é responsável pelo código que escreveu e não pode consertar os erros que aparecerem mais tarde, então você quer que seja bem documentado ... É muito irrelevante o quão substituível você é se não conseguir para fazer o seu trabalho!

Seamus
fonte
-1: Por que você não se esforça para obter um código de auto-documentação? Em vez de, na melhor das hipóteses, documentação redundante e, na pior, documentação que se tornará obsoleta muito rapidamente? Consulte a resposta @xsAce.
Jim G.
0

Todos os profissionais de informática "insubstituíveis" com os quais tive a infelicidade de interagir foram substituídos, em grande parte porque estavam tentando manter reféns os recursos de seus empregadores. Quando algumas pessoas que me relatam dizem que seu tempo é valioso para "desperdiçar" a documentação, eu as substituo o mais rápido possível.

Parece que se um empregado em potencial considerar as 48 leis do poder aceitáveis ​​ética ou moralmente, você estaria melhor sem elas.

John Percival Hackworth
fonte
-1: Quando pessoas que me relatam dizem que seu tempo é valioso para "desperdiçar" a documentação, eu as substituo o mais rápido possível.
Jim G.
@ Jim G: Legal. Eu estou indo supor que você del seu tempo é valioso para desperdiçar documentação ...
John Percival Hackworth
0

Se você REALMENTE deseja ser insubstituível (que você pode reconsiderar após ler todas as respostas ...) - por que parar de não documentar o código?

Há um guia verdadeiramente brilhante sobre como escrever código não-sustentável que você definitivamente deveria ler: http://thc.org/root/phun/unmaintain.html

Desfrutar! (Eu certamente fiz ...)

yonix
fonte
Há também "Refutoring" :)
CraigTP