1999

Martin Fowler defines refactoring

Martin Fowler's book refactoringRestructuring code without changing behavior — improving design while keeping tests green. gives refactoringRestructuring code without changing behavior — improving design while keeping tests green. a precise definition and a catalog of safe code transformations.

Quote

[refactoring] is a controlled technique for incrementally improving the design of an existing code base.

What it was for

Martin Fowler (software engineer)Before Fowler, 'refactoringRestructuring code without changing behavior — improving design while keeping tests green.' was vague cleanup work. His catalog — extract method, move field, rename — became IDEIntegrated development environment — an editor with debugging, build tools, and project management built in. menu items and code review vocabulary. The definition still anchors agileAn iterative software development style — short cycles, continuous feedback, and adaptive planning. discussions of paying down debt without changing behavior.

People

  • Martin Fowlerauthor

Why it's here

The sentence that turned refactoringRestructuring code without changing behavior — improving design while keeping tests green. from slang into engineering practice.

Why it mattered

It legitimized structural code changes as a disciplined, test-backed activity.

What it solved

TeamsMicrosoft Teams — chat, video calls, and Office integration for workplace collaboration. feared changing working code without a shared pattern language.

Media

  • Martin Fowler (software engineer)
    ImageMartin Fowler (software engineer)

    Webysther Nunes, CC BY-SA 4.0, via Wikimedia Commons

Related