Um projeto de software em que estou trabalhando envolve eu e outro programador. O projeto envolveu um back-end de mecanismo com um front-end MVC. Inicialmente, fiz um monte de trabalho no projeto e, portanto, configurei algumas metodologias simples de design, principalmente em torno da abstração e da estratégia de modelos.
Por um bom tempo, estive fora do back-end do motor e trabalhei no site. No entanto, ainda mantive um interesse no motor, pois fui informado de que poderia voltar a usá-lo em algum momento.
O projeto tem um prazo muito apertado, por isso estamos todos prontos para finalizá-lo no front-end e no back-end.
Eu não me considero um ótimo programador e, portanto, nunca tento impor qualquer design ou conjunto de metodologias específico às pessoas, pois nem sempre tenho certeza de que estou certo e gostaria que outras pessoas oferecessem suas opiniões para tentar encontre melhores soluções. No entanto, notei alterações sendo feitas neste código do mecanismo que realmente está começando a me irritar. Quando confrontei o desenvolvedor para sugerir que ele fizesse o trabalho de outra maneira, ele disse que não entendia o ponto, pois parecia haver pouco benefício, considerando os prazos apertados.
Eu tive que tentar explicar que o truque que ele havia colocado poderia significar mais desenvolvimento após o lançamento, e não achei justo fazer com que outros entendessem a folga quando pudéssemos corrigi-la agora. Passei cerca de 30 minutos analisando o que havia feito e, no final, ele me pediu para escrever o código para que ele pudesse copiá-lo.
A base do que eu tinha inicialmente configurado foi:
- Uma classe abstrata x
- Uma classe de fábrica abstrata para criar instâncias concretas de x
O que aconteceu foi que ele colocou algumas instruções if que poderiam facilmente ter sido colocadas como métodos virtuais / abstraciais na classe abstrata e, em seguida, implementadas conforme a nova mudança já seguia o mesmo princípio de outros métodos na classe abstrata.
Isso me parece trivial, no entanto, ele não conseguiu entender isso, mesmo quando eu mostrei a ele as aulas envolvidas.
Agora minha pergunta é:
- É injusto supor que ele deveria ter entendido esse conceito. Percebo que temos prazos apertados, mas achei que era trivial. O programador deve ter pelo menos um nível intermediário.
- Isso já aconteceu em vários lugares e sempre tentei fazê-lo mudar, mas ele não parece. Devo simplesmente ignorá-lo?
- Devo levantar essa questão em outro lugar ou simplesmente sugá-la e, quando voltar ao projeto, mude todas essas coisas.
Sua parte do projeto não será concluída e é por isso que terei que voltar e ajudá-lo. Eu realmente não quero muito, pois ele pegou um projeto com arquitetura não muito boa, mas ok, e realmente inseriu um monte de código confuso que, na maioria das vezes, não seguia o que estava tentando ser alcançado.
Se a pergunta for muito vaga ou correta, entre em contato e tentarei editar de acordo.
EDITADO: Espera-se que o projeto continue após o prazo inicial, pois já existe o trabalho de acompanhamento planejado e o trabalho em que não nos encaixamos e que foi acordado em ser implementado posteriormente.