Estou passando por um momento muito difícil, porque meu colega parece exibir
- Esforços de otimização prematuros / desnecessários
- Desduplicação prematura com abstrações questionáveis
Por exemplo, usamos uma arquitetura VIPER modificada. Ele introduziu uma classe base para o componente Router (usando genéricos) como parte da implementação da primeira pilha viper sem saber o que exatamente será duplicado em outros roteadores. Agora, não podemos fornecer um tipoUseCase
que contenha casos de uso, mas a maioria dos roteadores não possui vários casos de uso, apenas um. - Inventando soluções de uso geral para recursos futuros potenciais especulativos
Por exemplo, ele escreveu um gerente para preencher visualizações de tabela de células estáticas quando tínhamos apenas duas telas como esta no aplicativo e ele não sabia que o design passaria de formas verticais chatas para mais personalizadas UIs para que o gerente seja inútil. - Optando pela complexidade incidental
Como eu luto contra isso quando ele também exibe uma barreira no idioma com o péssimo inglês?
architecture
Earl Grey
fonte
fonte
Respostas:
Sua descrição soa como a codificação que fiz nos anos 90. Atuar adequadamente no mundo moderno não é fácil. Eu recomendo focar nos seguintes fatores:
Pelo exposto, meus dois principais pontos de foco seriam revisões de código e histórias menores.
No final do dia, acho que a melhor solução para mudar o comportamento existente é ter uma pessoa dedicada liderando a mudança. Nas organizações ágeis (provavelmente a maioria hoje), é necessário que uma pessoa dedicada, como o scrum-master, esteja constantemente fazendo as perguntas certas e orientando a abordagem de desenvolvimento. Na minha última organização, tínhamos uma dúzia deles, um em cada equipe, para ajudar a orientar as pessoas sobre esses tipos de problemas. Isso elimina a necessidade de um desenvolvedor de um membro da equipe tentar convencer os outros de que "seu caminho é o certo", o que geralmente pode levar a trocas acrimoniosas e sangue ruim.
fonte