Todas as pessoas que fizeram perguntas sobre se você é ou não realmente lento são bobagens. Tornar-se um programador mais rápido sem sacrificar a qualidade é sempre uma boa meta, não importa o quão lento ou rápido você já seja. Este é o meu objetivo número 1 como programador e nunca terminarei. Estou sempre tentando ficar mais rápido sem sacrificar a qualidade, sou obcecado por isso. Aqui está o que funcionou para mim até agora na ordem da ajuda, juntamente com algumas idéias experimentais no final:
1) Nunca pare de aprender: Aprenda tudo sobre programação e uso de computadores em geral. Encontre áreas em que você é fraco e aprenda-as. Mesmo que pareça completamente não relacionado ao seu trabalho e ao C #, garanto que, se você estiver procurando por ele, frequentemente encontrará maneiras de aplicá-lo ao que faz. Aprender também é experiência, por isso não basta ler as coisas, mas experimentar e expandir suas habilidades. Se você está acostumado a usar o Windows, experimente o Unix ou vice-versa. Se você normalmente gosta de usar as ferramentas de linha de comando e editores de texto do IDE, ou vice-versa. Se você ouvir falar de uma ferramenta ou tecnologia que você nunca ouviu falar antes ou que não conhece muito, não ceda à tentação de seguir em frente. Procure! Não tenha medo de pensar fora da caixa e aprender novas tecnologias experimentais que outros dizem não serem práticas;
2) Divida os projetos: tente dividir seus projetos em mini projetos. Tente fazer um novo lançamento todos os dias ou uma vez a cada poucos dias, no máximo. Pergunte a si mesmo "Qual é a quantidade mínima de funcionalidade que posso liberar e ainda libere algo útil para o usuário". Essa é uma habilidade que você aprenderá fazendo isso. Pode ser necessário convencer seus gerentes a deixarem fazer isso, mas eles geralmente ficam satisfeitos com os resultados rapidamente. Ao fazer isso, você começará a perceber que coisas que considerava essenciais para o seu recurso, na verdade, são recursos adicionais que podem ser desenvolvidos posteriormente. Isso permite que você e seus gerentes priorizem apenas os recursos mais importantes, em vez de todos os recursos relacionados àquele em que você está trabalhando. Isso permite que você pense mais rápido, mantendo a mente clara e focada. Por sua vez, você legitimamente programará mais rapidamente. É provável que seus gerentes ou pelo menos os gerentes de seu gerente percebam que agora você está programando ainda mais rápido do que realmente é porque está obtendo mais lançamentos. Outro grande benefício disso é que você será muito melhor em estimar quanto tempo as versões levarão para serem concluídas, e seus gerentes amarão você por isso. Como você já está realizando muitos testes automatizados, não deve ter problemas ao fazer lançamentos frequentes que são estáveis. Talvez você precise aprimorar seu sistema de compilação automatizado. Eu recomendo a leitura do livro Entrega Contínua da série Martin Fowler. É uma leitura difícil e extremamente repetitiva, mas ainda muito útil. Os gerentes de s também provavelmente perceberão que agora você está programando ainda mais rápido do que realmente porque está obtendo mais lançamentos. Outro grande benefício disso é que você será muito melhor em estimar quanto tempo as versões levarão para serem concluídas, e seus gerentes amarão você por isso. Como você já está realizando muitos testes automatizados, não deve ter problemas ao fazer lançamentos frequentes que são estáveis. Talvez você precise aprimorar seu sistema de compilação automatizado. Eu recomendo a leitura do livro Entrega Contínua da série Martin Fowler. É uma leitura difícil e extremamente repetitiva, mas ainda muito útil. Os gerentes de s também provavelmente perceberão que agora você está programando ainda mais rápido do que realmente porque está obtendo mais lançamentos. Outro grande benefício disso é que você será muito melhor em estimar quanto tempo as versões levarão para serem concluídas, e seus gerentes amarão você por isso. Como você já está realizando muitos testes automatizados, não deve ter problemas ao fazer lançamentos frequentes que são estáveis. Talvez você precise aprimorar seu sistema de compilação automatizado. Eu recomendo a leitura do livro Entrega Contínua da série Martin Fowler. É uma leitura difícil e extremamente repetitiva, mas ainda muito útil. e seus gerentes vão amar você por isso. Como você já está realizando muitos testes automatizados, não deve ter problemas ao fazer lançamentos frequentes que são estáveis. Talvez você precise aprimorar seu sistema de compilação automatizado. Eu recomendo a leitura do livro Entrega Contínua da série Martin Fowler. É uma leitura difícil e extremamente repetitiva, mas ainda muito útil. e seus gerentes vão amar você por isso. Como você já está realizando muitos testes automatizados, não deve ter problemas ao fazer lançamentos frequentes que são estáveis. Talvez você precise aprimorar seu sistema de compilação automatizado. Eu recomendo a leitura do livro Entrega Contínua da série Martin Fowler. É uma leitura difícil e extremamente repetitiva, mas ainda muito útil.
3) Use a técnica pomodoro e adapte / mude o que não funciona para você. Se você combinar isso com o número 2 desta lista, receberá um enorme aumento de produtividade.
4) Aprenda o Vim. Mesmo se você acabar usando esses comandos no Visual Studio via ViEmu, ou a partir do Eclipse por meio de um plug-in ou do Emacs, você ganhará produtividade. A melhor maneira de aprender o Vim é começar a usá-lo e forçar-se a nunca (desabilitá-lo / voltar para suas ferramentas antigas) até que você o domine. É doloroso no começo, mas você nunca vai querer voltar e até se encolher quando precisar trabalhar sem ele. Alguns diriam que isso não aumentará muito sua velocidade. Mas mais rápido é mais rápido, especialmente quando a leitura e modificação de código é O QUE FAZEMOS, e eu me poupou muito tempo com isso de vez em quando.
5) Este último não é necessariamente recomendado, pois não tenho certeza de que seja uma boa ideia, e pode realmente diminuir sua produtividade, mas, mesmo assim, vou fazê-lo. Você pode tentar fazer mais testes de aceitação e menos testes de unidade, ou talvez pelo menos não se esqueça de fazer alguns testes de aceitação. Eu tive sucesso com o SpecFlow, mas suspeito que há algo melhor por aí. Até mesmo escrever as especificações pode ser bastante técnico, portanto, você pode apenas solicitar que seu gerente / cliente escreva uma versão preliminar preliminar para que mude significativamente, ou você mesmo pode escrever a coisa toda e apenas ler e aprovar. Isso irá ajudá-lo com o número 2 desta lista. Os testes de aceitação também podem ser mais práticos e requerem menos código que os testes de unidade. Isso não quer dizer que eles sejam substituídos, ferramentas diferentes para coisas diferentes.
6) Este é ainda mais experimental e controverso. Na verdade, eu mesmo não fiz isso, então não posso recomendá-lo exatamente. Aprenda e use o Meta Programming System da JetBrains. Use-o para criar ferramentas que seu gerente / cliente usa para criar o software desejado. Você pode até parar de fazer testes de unidade e aceitação se puder usá-lo para criar ferramentas que seu gerente / cliente usa para especificar o comportamento de uma maneira muito direta e não complicada. A idéia não é se livrar do programador. Os programadores ainda precisariam adicionar novos recursos a essas ferramentas usadas pelo cliente / gerente sempre que eles (as pessoas, não as ferramentas) não puderem criar facilmente algumas funcionalidades desejadas. Acredito que o MPS ou outras ferramentas semelhantes sejam o caminho do futuro.