O que fazer depois de concluir o projeto, mas antes de passar para o próximo?

8

Estudei ciência da computação e agora estou trabalhando em uma empresa como desenvolvedor único em um projeto Java bastante ágil há quase um ano. O projeto em breve será concluído com êxito (pelo menos, espero!).

A funcionalidade principal ... está funcionando e até outras coisas que não estavam nos requisitos de início. Eu tenho muitas idéias para novos recursos que não são necessários, mas ajudariam na usabilidade e funcionalidade do programa.

Algumas partes do programa funcionam muito bem, enquanto outras têm código que não me orgulha muito ...

Desde o início do projeto, aprendi muito e, portanto, agora sei escrever teoricamente um código melhor nessas partes - o que faz você perceber os erros que cometeu e que não havia notado antes!

O problema: não haverá muito tempo depois que o projeto faça alguma coisa, não é possível reescrever do zero. E reescrever apenas as partes ruins exigiria se aprofundar na funcionalidade principal -> leva muito tempo!

Existem métodos / estratégias para aprender com meus erros e tornar o próximo projeto ainda melhor?

Há mais alguma coisa que devo fazer depois de concluir o projeto, mas antes de passar para o próximo?

hamena314
fonte
3
A maioria dos projetos de software não é reescrita e nenhuma é perfeita ou finalizada, a menos que seja desativada. O resultado mais provável é que você passe para um novo projeto e forneça correções de manutenção no projeto original.
Robert Harvey
4
@gnat Esta questão se encaixa claramente em nossa imagem conceitual do escopo do site . Essa é uma atividade de "disposição" ou "post mortem".
Thomas Owens
1
@ Thomashowens, de acordo com a minha leitura, o problema aqui não é a atualidade (ela se encaixa aqui por tópico), mas a falta da pergunta respondível. "O que fazer ..."
gnat
2
@gnat Está pedindo um processo ou metodologia. Estou lendo isso pedindo um processo post-mortem para um único desenvolvedor. Todas as minhas experiências foram em equipe, então não posso realmente fornecer uma resposta útil.
Thomas Owens
3
@ ThomasSwens: Isso é um pouco amplo. Normalmente, exigimos que as perguntas sejam um pouco mais específicas do que "você tem alguma dica para mim?"
Robert Harvey

Respostas:

1

Um bom código, como uma boa ciência, demonstra sua capacidade de trabalhar / fazer o que pretende de uma maneira que seja aprovada por um grupo de colegas. Se esse aplicativo funcionar, você fará parte do caminho, mas provavelmente não poderá expor esse código ao público e estará trabalhando sozinho.

Inicie um projeto pessoal. Quanto antes melhor. Isso realiza algumas coisas:

  1. Código é uma excelente forma de documentação para código. Aprendemos com exemplos e, embora possamos obter mais informações ao discutir ou documentar código, ainda gostamos do código.
  2. Faça com que outras pessoas vejam seu código. Faça perguntas específicas sobre o Stackoverflow. Crie ou contribua para um projeto de código aberto. Participe de um grupo de desenvolvedores locais e faça com que eles analisem.
  3. Pratique a refatoração - Participe de seu projeto e imite a maneira como você o fez no projeto anterior e depois refatorá-lo. Tenha controle de origem para mostrar o antes e o depois. Novamente, o código é importante.
  4. Teste seu conhecimento recente de codificação. Crie outras partes da maneira que você acha que deve fazê-lo. Funciona? É realmente melhor do que o jeito antigo? Quais são os seus critérios? Mais rápido, mais fácil de escrever, manter?
  5. Adicione um recurso extremo. Agora veremos se seu código é realmente de manutenção. Escreva partes dele para um banco de dados RDBMS e Nosql. Crie seu aplicativo Web para executar também em uma linha de comando. Crie um arquivo de log que rastreie toda vez que alguém não desligar o aplicativo corretamente (eu disse que era louco).

Provavelmente há muitas anotações e outras documentações que você pode reunir, mas a qualquer momento você pode realizar as coisas no código, faça isso. Você fica melhor na programação, como a maioria das coisas com prática, e espero que algumas medidas para melhorar. As revisões por pares podem ajudar se você estiver melhorando. Se você tem um aplicativo que é exposto a um grupo de usuários que podem fornecer feedback, ainda melhor. Eles não conhecerão os detalhes, mas reconhecerão melhorias na velocidade, melhor design e sua capacidade de fazer alterações / correções mais rapidamente. Isso não precisa ser um projeto extenso. Basta perguntar: "Isso é melhor ou não?"

JeffO
fonte