Motivos para refatorar
A refatoração é o processo de alterar um sistema de software de forma que não altere o comportamento externo do código, mas melhore sua estrutura interna. É uma maneira disciplinada de melhorar o código para minimizar as chances de introdução de bugs. (Refactoring: Improving the Design of Existing Code — Fowler, Martin; Beck, Kent; Brant, John; Opdyke, William; Roberts, Don)
O comportamento é a coisa mais importante no sistema e devido a dependência do cliente em ter novos comportamentos ao sistema esse é o maior motivador para que seja efetuado qualquer alteração no sistema existente, desde que seja o que o requisitante necessita.Caso contrário se for alterado ou removido um comportamento atual pode ser considerado um “bugs” e abalar a confiança.
Normalmente um sistema é alterado por quatro motivos:
- Adicionar um novo recurso : Inclusão de um novo comportamento não previsto anteriormente ao sistema.
2. Corrigir um erro existente: Alterção de um comportamento não esperado.
3. Melhorar a arquitetura do código: Alteração na estrutura de um sistema para torná-lo sustentável sem alterar seu comportamento.
4. Otimização de um recurso:o objetivo da otimização é melhorar um recurso do sistema geralmente atrelado a uma melhorar no tempo ou no gerenciamento de memória.

Contudo, a decisão de alteração de um sistema normalmente é atrelado a um conjunto de motivadores e deve ser feita de maneira que uma alteração não impacte todo o resto do comportamento do sistema e para isso é aconselhável o uso de diversos tipos de testes para comparar atual com o esperado.O maior desafio de realizar uma refatoração é prever os comportamentos que podem ser afetados é prevení-los, porém o entendimento do comportamento do sistema é a chave para que seja realizado com segurança.
Outras postagens:
Sobre
Roberto Martins
Scrum Master
ti.robertomartins@gmail.com