A resposta pra isso é simples.
A consistência é de suma importância.
mas vem com uma ressalva ...
Você e seu colega de trabalho provavelmente estão obcecados com o tipo errado de consistência
As implementações são descartáveis. Eles podem ser completamente revisados com vários graus de facilidade, dependendo da qualidade e abrangência do conjunto de testes. Preocupar-se com coisas como "Isso deve ser uma propriedade?", "Esse código não deve usar LINQ em vez de uma construção de nível inferior?" é de valor duvidoso. É muito difícil vincular quaisquer medidas ao valor da consistência no nível da implementação. Uma pergunta muito melhor a ser feita nesse nível é "Esse código funciona como anunciado?". A consistência da implementação de TL; DR é onde as "mentes pequenas" entram em ação.
Por que a consistência não é tão importante aqui? As implementações geralmente têm um pequeno número de colaboradores. A maioria dos métodos é escrita e nunca é tocada novamente. Do código restante, o número de métodos que têm dois colaboradores quase certamente com maioria. Esse padrão continua ad infinitum . Nesse contexto, a consistência simplesmente não é tão importante. Se o prazo de validade do código for bem pequeno ( alguns anos ), os ganhos com consistência agressiva provavelmente não serão um fator.
Isso não quer dizer que você deva enlouquecer em suas implementações. Em vez disso, é preciso dizer que um design simples, limpo e agradável será uma ordem de magnitude mais valiosa para o seu hipotético mantenedor futuro do que o método de consistência de placas de caldeiras bobo por método. Isso nos leva ao ponto real ...
APIs não são descartáveis.
Esse é todo o nível de código das APIs, serviços da web, SDKs etc. Esses devem, devem, DEVEM ser consistentes. Os ganhos de produtividade com essa variedade de consistência são enormes por vários motivos:
Testes de integração:
Se você mantiver a API consistente, poderá criar conjuntos de testes de integração. Isso permite que os desenvolvedores troquem livremente os detalhes da implementação e obtenham validação imediata. Quer trocar sua porcaria de colegas de trabalho pelo LINQ? Os testes de integração são executados? Ele também fornece validação ao se preparar para ir para a produção. Como os computadores são rápidos, um único laptop pode realizar o trabalho de mil testadores executando tarefas comuns. É o equivalente a aumentar consideravelmente o número de funcionários da sua organização.
Produtividade
Quando as APIs são consistentes, você pode adivinhar sobre como usar uma API apenas seguindo o que aprendeu sobre o uso de outras partes da API. Isso ocorre porque a API oferece uma aparência e sensação natural e consistente. Isso significa que seu cliente gasta menos tempo vasculhando a documentação. A integração é mais fácil e mais barata. Menos perguntas são feitas às pessoas que desenvolveram a API. Consistência faz de todos um vencedor
Por que a consistência é importante nesse cenário? Porque as APIs têm o problema exatamente oposto das implementações. O número de pessoas que os utiliza normalmente é muito maior que o número de pessoas que contribuem para suas implementações. Pequenos ganhos com um pouco de consistência são multiplicados e os custos de manutenção dessa consistência são amortizados.
Conclusão
Consistência é cara. Em face disso, diminui a produtividade. Ele restringe os desenvolvedores e dificulta suas vidas. Ele impõe limitações às maneiras pelas quais eles podem resolver um problema, às vezes forçando-os a resolvê-lo de maneira não ideal. Isso geralmente ocorre por razões que eles não entendem, são mal concebidos ou não têm acesso a (contratos, políticas organizacionais ou interorganizacionais maiores).
Raymond Hettinger fez alguns pontos excelentes em sua palestra no Pycon 2015 sobre o uso do guia de estilo PEP8 para equipes de programadores de python. Ele mostrou que a obsessão pela consistência estilística em um pedaço de código fazia com que os revisores de código perdessem sérias falhas de lógica e design. Sua hipótese pode ser resumida, pois é fácil encontrar inconsistências estilísticas; determinar a qualidade real de um pedaço de código é difícil
O ponto aqui é ser crítico. Identifique onde a consistência é importante e proteja-a agressivamente. Onde não é importante, não perca seu tempo. Se você não puder fornecer uma maneira objetiva de medir o valor da consistência (nos casos acima, "número efetivo de funcionários", custo em função da produtividade) e não puder demonstrar que os retornos são substanciais, é provável que esteja fazendo um desserviço para sua organização.