2025-09-12

Refactoring: strong vs weak

Abstract

Two distinctly different widely used meanings of the term code refactoring are identified and named:

  • Changing how code works, without changing the requirements that it fulfills (refactoring in the weak sense) 
  • Changing how code is expressed, without changing how it works (refactoring in the strong sense)

2025-08-29

The perils of whiteboards

Summary 

Building upon the realization that conventional means of software design today amount to nothing more than fancy whiteboards, we examine the pitfalls, disadvantages, and consequences of designing software using such tools.

This post is support material for michael.gr - Towards Authoritative Software Design.