Estou trabalhando em uma empresa em um projeto para o departamento de vendas. É o meu primeiro trabalho de programação profissional, mas eu tenho codificado sozinho e aprendido há anos. Parte do projeto envolve pegar alguns dados e combiná-los com dados para produzir e representar graficamente. Em seguida, salve os dados ... e assim por diante. Então, eu escrevi o código para isso em pouco menos de um dia. No dia seguinte, mostrei meu supervisor de projeto e ele gostou, mas "e se tivéssemos isso", e queria que eu acrescentasse algo ao gráfico. Não foi uma grande mudança na aparência ou na função do programa, mas mudou drasticamente a maneira como eu precisava armazenar dados, processá-los etc.
Novamente, demorei um dia para reestruturar a tabela do banco de dados e reescrever o código basicamente do zero para dar suporte a essa nova solicitação. Levei de volta para ele novamente, e exatamente a mesma coisa aconteceu. Ele solicitou outra coisa que mudou drasticamente a forma como eu precisava processar os dados. Então, eu tive que reescrevê-lo novamente. Finalmente, ele assinou o contrato e, esperançosamente, não precisarei reescrevê-lo novamente.
Apenas fique claro, não estou atacando meu gerente ou algo assim. Ele é um cara legal e as coisas que ele estava solicitando não estavam fora deste mundo, eram apenas incompatíveis com o que eu havia feito anteriormente.
Só estou me perguntando se há algo que eu possa fazer no futuro para evitar reescritas completas. Entendo criar código flexível e estava tentando fazer isso, mas gostaria de saber sobre práticas ou coisas que eu poderia ter feito de maneira diferente para tornar isso mais fácil, para que, no futuro, não passe três dias em algo que deveria ter tomado 1.