works on my machine
expressionprogrammingops culture
The developer's classic defense when code fails everywhere except their own laptop.
The phrase that launched a thousand containers. The gap between 'my machine' and production - versions, paths, environment variables, data - is precisely what reproducible builds, CI, and Docker exist to close.
It works on my machine is the defence that ends a conversation and the phrase that named an entire category of problem: software behaves differently in different environments, and the developer's environment is the least representative one available.
The causes are mundane and numerous. Different library versions, a dependency installed globally years ago and forgotten, environment variables set in a shell profile, file paths that exist only locally, a database with test data shaped unlike production, a timezone, a locale, more memory, no latency. None of these are in the repository, which is exactly why the code appears correct and behaves differently.
The industry's response was to make the environment part of the artefact. Containers, declarative dependency manifests, lockfiles and infrastructure as code all exist to close the gap between what is committed and what actually runs, and the joke about shipping your machine to the customer is the honest description of what a container image is. The phrase survives as shorthand for a failure of reproducibility, and the useful response to hearing it is curiosity about what differs rather than an argument about whose machine is correct.