Code review Database refactoring Decomposition (computer science) Design pattern (computer science) Obfuscated code Software peer review Prefactoring Separation of concerns Test-driven development Modular programming Amelioration pattern