Praticamente todas as respostas foram ditas até a morte em vários lugares aqui e em outros lugares. Ou, pelo menos, eu ouvi isso até a morte. Aprenda seu IDE, aprenda a digitar mais rápido, use estruturas, use geração de código etc. etc. Sim, é claro que essas coisas ajudarão e duvido que existam muitos programadores que são mestres em todas elas. Mas, sendo o tipo de programador que faz essas perguntas e frequenta sites como o Stack Overflow, você já sabia disso . Você apenas queria repeti-los aqui ou apenas desabafar um pouco?
Mas e se pudéssemos chegar a esse estado? Quero dizer, dominar todas essas sugestões? O que aconteceria então? Bem. Eu acho que os prazos serão reduzidos ainda mais. E, novamente, voltaremos a uma percepção de qualidade. Quero dizer, nosso ofício definitivamente progrediu e se tornou cada vez mais produtivo ao longo das décadas. Mas a qualidade aumentou durante esse período (excluindo os primeiros anos, é claro)?
Minha resposta é simples: software de qualidade leva tempo ! Você pode trocar apenas um pelo outro (qualidade / velocidade). Mas sim, todos nós sabemos que, no entanto, não somos honestos sobre o grau em que esse trade-off geralmente termina na velocidade final da escala. E somos mentirosos ainda maiores desde o início dos projetos!
Eu digo que você não tem culpa aqui. O problema é a percepção que as pessoas têm de quanto tempo o software de qualidade deve levar. Enganamo-nos ao acreditar que somos capazes de criar software de qualidade com os tipos de prazos que nossos gerentes ou até estimamos. Não fabricamos software de qualidade . Escrevemos software que funciona, mas às vezes com lampejos de qualidade em certos cantos de um aplicativo.
Então, o que nós podemos fazer sobre isso? Não podemos simplesmente convencer nossos chefes de que precisamos dobrar ou triplicar o investimento em cada um de nossos projetos. Eu digo liderar pelo exemplo. Crie um software realmente excelente como um projeto paralelo. Coloque seu próprio tempo nisso e não se comprometa. Preste atenção o tempo todo ao progresso. Anote as tarefas aparentemente não relacionadas em que você teve que gastar um tempo inesperado e veja se pode justificá-lo. Compare isso com todos os outros projetos em que você trabalhou. Seja brutalmente honestoconsigo mesmo e com todos os aspectos desta análise. As coisas extras que você fez com seu software de qualidade podem ser negligenciadas em projetos "reais" no trabalho? Mas talvez sua tentativa tenha falhado. Qual foi a razão? Você ficou entediado e se apressou para concluir os principais recursos? Eu ainda tenho que fazer algo assim, e é por isso que encerro esse pensamento com algumas dúvidas - mas pretendo tentar de verdade. Vou mantê-lo informado :).
Finalmente, acho que a maioria (se não todas) as avaliações de desempenho são distorcidas e extraordinariamente manipuladoras. Você não pode diminuir a qualidade e a velocidade em 100%. Seu chefe deve pontuar você contra um padrão definido pela organização. O padrão da organização no compromisso entre qualidade e velocidade. Vamos imaginar que a OrangeSoft Inc. espera 33% de qualidade e 66% de velocidade. Portanto, se você estiver escrevendo um código que tenha talvez um terço dos testes de unidade, deve fazê-lo com velocidade e tempo de entrega reduzido, você deve pontuar perto de 100% em sua análise! (Essas são analogias bastante grosseiras, mas você entendeu). Mas, em vez disso, o que acontece é que Bob escreve código extremamente rápido, mas que é notoriamente incorreto. Portanto, em sua avaliação de desempenho, ele pontua 3/5 em qualidade e 5/5 em velocidade. Carol, por outro lado, escreve código muito mais devagar, mas produz significativamente menos erros. Ela pontua 5/5 em qualidade, mas 3/5 em velocidade. De qualquer maneira, Bob e Carol ficam atracados no aumento. É possível para qualquer funcionário obter uma pontuação perfeita? Isso é justo?