Resposta à mudança de tópico:
Se o problema é simplesmente que as pessoas não estão se esforçando o suficiente, você precisa encontrar uma maneira de interessá-las. Isso pode variar de ser mais aberto a idéias, mesmo que sejam ruins, a prometer uma garrafa de uísque se o projeto chegar a tempo.
Não compre na prateleira de baixo!
Resposta à "incompetência":
Sim, eu corri para essa situação. A incompetência total não é algo com o qual eu tenho que lidar, mas mais de algumas vezes fiquei surpresa com alguém que pensei ter descoberto fazendo algo que considero questionável.
A primeira coisa que você precisa fazer é tentar suprimir esse sentimento. Tenho certeza que você também fez coisas idiotas. Eu sei que tenho.
A próxima coisa a fazer é se certificar de explicar por que algo que eles fizeram estava errado. Deixe-os discutir com você e / ou fazer perguntas ... espero que sim. Faça-os fazerem certo; espero que você obtenha apoio da gerência, porque esse sempre foi um dos meus principais problemas (eles precisam apoiá-lo quando você diz: "Faça o que é certo" e o outro cara começa a surtar)
Você deve fazer isso o mais politicamente correto possível. Mesmo se você quiser gritar com eles, "WTF onde você está pensando, seu idiota !!!" Isso não voa e não ajuda em nada. Portanto, não tente falar com eles a princípio, se você se sentir assim. Às vezes, o email funciona melhor para que você possa se editar.
O objetivo aqui é ajudá-los a melhorar. É frustrante como o inferno tentar realizar algo com pessoas que, do seu ponto de vista, não conseguem sair de um saco de papel ... mas às vezes você precisa.
É assim que você os ajuda a melhorar. Agora para você ...
Você tem que aprender como deixar para lá. O código não precisa ser perfeito ... apenas tem que funcionar. Você pode ter que diminuir um pouco seus padrões.
Para fazer isso e não deixar que a árvore de códigos do produto se transforme em uma bagunça terrível, você precisa se concentrar nos grandes problemas. Desde que a caixa de areia seja limitada a uma área específica que pode ser refeita mais tarde, quando houver tempo ou eles aprenderem mais, pode ser o pior e mais desagradável código de espaguete que você já viu e enquanto funcionar ... Está bem. Portanto, procure maneiras de tornar isso possível. Se sua arquitetura estiver desacoplada, você poderá permitir que pessoas incompetentes trabalhem nela sem muito dano.
Obviamente, isso significa que sempre que você precisar consertar algo que eles fizeram ou adicionar um recurso a algo que eles escreveram, você terá uma dor de cabeça. Isso é vida. Vive com isso. Se puder, você pode forçá-los a adicionar o recurso ou corrigir o bug ... o que realmente pode ajudar bastante a ensinar boas práticas e habilidades de codificação (quanto mais você precisar limpar sua porcaria, menos tenderá a porcaria no tapete).