Segredos do Windows: Eliminando as impressões digitais

A última pessoa a tocar um segmento de código é normalmente considerada responsável pela execução desse código.

Raymond Chen

Há uma lei unwritten em desenvolvimento de software: A última pessoa a fazer uma alteração em uma linha de código torna-se, ipso facto, responsável por quaisquer problemas rastreados até que a linha de código. Mesmo se tudo que fiz foi inserir um espaço depois da vírgula ou corrigir a ortografia de uma variável local, suas impressões digitais são um código. Quando algo dá errado, a polícia de código virá bater à sua porta.

A maioria dos sistemas de controle de origem têm uma ferramenta que identifica automaticamente a última pessoa a fazer uma alteração em um arquivo. Ele pode também gerar uma listagem de arquivo onde cada linha de código é anotada com o nome da pessoa que esta página foi modificada pela última vez o código.

Em alguns projetos, pode haver uma função ou um componente que é assim problemáticas pessoas evitar fazer alterações se possível. Eles temem ter suas impressões digitais nele vai tê-los põr sobre o ponto para a enorme quantidade de problemas, finalmente, remonta a esse código.

Um dos meus colegas anteriores tomou esta tradição de instintivamente culpando todos os defeitos a última pessoa a tocar um arquivo e usou como base para uma brincadeira de despedida. Como seu ato final antes de deixar a equipe para participar de outro projeto na Microsoft, ele cometeu uma alteração que ocupadas por centenas de arquivos. Ele tocou todos os arquivos de cada componente crítico.

O comentário associado com essa confirmação de mudança maciça tinha o título "Converter para Unicode amplo." Nos comentários detalhe abundante, ele pediu desculpas que ele era "capaz de converter uma grande parte do projeto, mas não todo ele." O comentário também explicou que o código que precisava mudar ao longo do projeto para concluir o trabalho. Ele também notou algumas "pegadinhas" que poderiam ser encontradas.

Quanto mais você ler o comentário, quanto mais você se perguntou que tipo de insanidade que ele estava experimentando. O comentário discutidas alterações em algumas constantes fundamentais como MAX_PATH, extensões de compilador especial para criar os buffers de pilha que expandido dinamicamente no lugar (deslocando em todas as outras variáveis locais para liberar espaço) e outras alterações no código louco.

A piada foi revelada quando você realmente estudou os arquivos ele mudou. Cada arquivo na mudança foi uma confirmação nula. Ele não alterar uma única linha de código. Os arquivos estavam em conjunto apenas para a mostra de alterações.

Esta brincadeira tinha efeitos duradouros há algum tempo, principalmente devido ao seu sincronismo. Pouco depois de meu antigo colega perpetrado essa piada, a equipe de gerenciamento de projeto decidiu criar um banco de dados controladas que desenvolvedor foi o contato principal de cada arquivo no repositório. Para inicialmente preencher esse banco de dados, eles seguiram a regra de "última pessoa a apresentar uma alteração no arquivo". Porque minha colega tinha recentemente apresentado alterações para cada arquivo em componentes críticos, quase todos os arquivos nesses componentes críticos acabaram com o seu nome anexado.

Por, pelo menos, um ano depois, qualquer pessoa ou ferramenta automatizada que consulta o banco de dados iria enviar meu colega um e-mail quando encontraram um problema em um dos arquivos que ele modificou. Ele teria que encaminhar o email Voltar para seus antigos companheiros para pedir-lhes para dar uma olhada nele e atualizar a banco de dados entrada para referir-se o verdadeiro proprietário. Isto foi vingança cósmica para infligir sua partida de despedida em primeiro lugar.

Raymond Chen

Raymond Chen s Web site, The Old New Thing, e título idêntico livro (Addison-Wesley, 2007) lidar com história do Windows, Win32 programação e metafóricos estacionamentos.

Conteúdo relacionado