In the 1980s the formal standards world lined up behind OSI (Open Systems Interconnect), a fully-specified protocol suite produced by the international ISO process. It was backed by European telephone monopolies and most governments, who were legally required to purchase OSI gear, and it was the rational choice: complete, rigorous, standardised in advance by committees. The internet's TCP/IP was the dark horse — defined only by a self-governing community of volunteers, with no mandate, no ballot, no standing in any official body.
A straight contest by the rules of the standards institutions was unwinnable. OSI had the votes, the officialdom and the procurement mandates; TCP/IP had almost none. Any committee-style reckoning of the two by legitimacy, representation or bureaucratic standing would hand the field to ISO before a single implementation shipped.
Instead of contesting OSI on its own formal turf, the internet engineers refused to vote at all. By 1992 the IETF had made explicit a governing principle David Clark named in a talk that year: 'We reject kings, presidents and voting. We believe in rough consensus and running code.' A standard was settled not by a yes/no ballot but by whether enough people had actually built and run it — the code in the field, not the number of delegates in the room, was the arbiter.
The IETF refused to vote, settling standards by rough consensus and running code: what was already deployed, not ballots, became the arbiter.
Running code is observable and already deployed, so it wins by adoption while the rival is still being specified.
Every new deployment of TCP/IP acts as a vote, so the criterion accumulates in one direction.
OSI's completeness made it too complex to finish, leaving little running code, while TCP/IP was live on thousands of networks.
When two standards deadlock, don't vote—count which one already works in the field, and let that decide.
OSI had too much complexity and too little running code, while TCP/IP was already live on thousands of networks — so it won by adoption, not vote. By the mid-1990s TCP/IP prevailed and OSI quietly lost. Rough consensus and running code didn't just win one battle — it became the governing norm of internet standardisation, carried from the IETF into the W3C and most open-collaboration processes since. The mechanism outlived the specific protocols that first proved it.
FOLLOW THE EVIDENCE
The sources
- IEEE Annals of the History of Computing — 'Rough Consensus and Running Code' and the Internet-OSI Standards War (A.L. Russell) IEEE · doi.org
- Computer History Museum — Networking revolution: the protocol wars Computer History Museum · computerhistory.org