リファクタリングは、利用者から見える振る舞いを保ちながら、内部のコード構造を整理することです。重複の削減や読みやすい分割などで、将来の修正を容易にします。
テスト駆動開発は先にテストを書く進め方、ペアプログラミングは二人での開発、リバースエンジニアリングは既存物の解析です。外部動作の維持が条件です。