obama-refatoração

Os planejamentos de projetos de desenvolvimento de software de maneira geral englobam atividades de especificação, codificação, testes e talvez um tempo para correções. Nós pensamos nas funcionalidades implementadas como blocos de uma construção, sendo colocados uns sobre os outros.

Porém, não é assim que um software funciona. Ao adicionarmos novas funcionalidades no decorrer do projeto, o sistema como um todo pode ser afetado e, por vezes, torna-se necessário adaptar ou reescrever parte do que já estava “pronto”. Por isso, um sistema 90% “pronto” pode levar muito mais que 10% do tempo planejado para ser efetivamente concluído.

Pense nisso!