A idéia principal de refatorar está em uma série de pequenas melhorias que mantém a estrutura inicial da regra de negócio realizando a manutenção do código. Cada refatoração faz pouca coisa, mas uma seqüência de pequenas refatorações pode fazer uma diferença significativa. Uma vez que cada refatoração tem um escopo pequeno e é localizada existe um baixo risco associado. O sistema se mantém funcionando normalmente após cada refatoração, reduzindo as chances de o sistema sofrer um grande erro durante sua reestruturação.
O objetivo de refatorar um código seguidamente é manter o custo de manutenção baixo constantemente ao longo de bastante tempo. Refatorações buscam obter simplicidade, clareza e na maioria das vezes um melhor desempenho do código. Sem refatorações o código vai ficando mais desorganizado e quanto maior for a desorganização, mais difícil é de encontrar uma solução, ou seja, desorganização é como uma bola de neve, até atingir o limite em que o código fica praticamente ilegível. O custo da manutenção fica tão alto que a única solução é reescrever novamente toda a parte do código, desde o zero, isso é a última coisa que pretendemos em um desenvolvimento de software, mais que algumas vezes é necessário.
A refatoração se torna mais freqüente na medida em que o programador vai ficando mais experiente e mais ambientado as rotinas, estas que devem estar sempre bem claras e definidas. Refatorações não devem ser usadas de qualquer modo e a todo o momento, mas quando fica perceptível que determinado pedaço do código está complicado de se ter um entendimento fácil. Bom programador surge só com trabalho, experiência e conhecimento das regras de desenvolvimento. Qualquer programador pode escrever código que seja facilmente entendido pelo computador. Já os bons programadores escrevem código em que os outros possam entender o significado sem a utilização de um “manual”.