Comparisons of the US Constitution to software design are fairly commonplace. A pattern-focused one by Howard Dierking appears in a recent book on Open Government, but it goes back at least to the dot-com era and probably before. The analogies have their limitations, such as a tendency to foreground the machinery of government and background the people in politics, and the reasons they might push a given position. That said, I certainly dabbled in it myself during the wild analogy-soaked amusements of my youth; and as a system which is human centric, statically defined and with key properties only obvious at runtime, thinking about government is not such a bad training for software design.
Whatever the merits of the full metaphor, I don’t think it’s a stretch to describe the Philadelphia convention itself as a design process. I was struck by Hamilton’s role as described by Ron Chernow. The design meeting was a bit thinly attended. Of the fifty-five on the invite list, only thirty were actually there most of the time, with people drifting in and out, and a number of invitees considering it not particularly important in their busy working lives. The discussion itself happened behind closed doors, with an agreement for the debate to stay between delegates, to allow the sharing of different design ideas.
At the time of the convention, as Americans who stayed awake in civics class probably already know, the United States was organized on the basis of the Articles of Confederation, which loosely grouped the former colonies together on terms weaker in some ways than the current European Union. The US government was unable to reliably raise tax revenue, for example, and as a result still held massive debts from the Revolutionary War, including soldiers’ pay.
The convention had so far been dominated by a proposal from Madison and the Virginia delegation for a much stronger national government, of two legislative houses, proportional to population, a President and a Supreme Court. William Paterson of New Jersey argued for revisions to the Articles that fixed some problems in the confederation but retained its minimalist character. Three weeks in, constructive discussion had begun to stall, with delegates forming factions around the two plans. Hamilton, relatively young but hardly unknown, had uncharacteristically spoken little during the convention so far, and didn’t favour either plan. Chernow relates:
It was predictable than when the wordy Hamilton broke silence, he would do so at epic length. Faced with a deadlock between large and small states, he decided to broach a more radical plan.On Monday morning, June 18, the thirty-two-year-old prodigy rose first on the convention floor and in the stifling, poorly ventilated room he spoke and spoke and spoke. Before the day was through, he had given a six-hour speech (no break for lunch) that was brilliant, courageous, and, in retrospect, completely daft. He admitted to the assembly that he would adumbrate a plan that did not reflect popular opinion.
His mind had minted an entire program for a new government, not just scattered aspects of it.
He now suggested a president and Senate that would be elected but would serve for life “on good behaviour”. Hamilton’s chief executive differed from a monarch in that he would be elected and, if he misbehaved, subject to recall. […] While Hamilton’s Senate would be chosen for life by electors [ie like the historical Electoral College -CA], his House of Representatives, by contrast, was exceedingly democratic, chosen directly by universal male suffrage every three years. Thus, the aristocratic element would be represented by the Senate, the common folk by the House. As prosperity widened income differentials in future years, Hamilton feared that the Senate and House might try to impose their wills on each other: “Give all the power to the many, they will oppress the few. Give all power to the few, they will oppress the many.”
To curb further abuse, Hamilton recommended a Supreme Court that would consist of twelve judges holding lifetime offices on good behaviour. In this manner, each branch would maintain a salutary distance from popular passions. The House of Representatives would be the striking exception. Hamilton concluded, “The principle chiefly intended to be established is this – that there must be a permanent will.”
— Ron Chernow, Alexander Hamilton
There is no definitive record of the plan, but some describe it as abolishing the states, with state governors appointed by the central government. It owed much to the structure of 18th century British government, to the point where it is sometimes called the British Plan.
Chernow goes on to ask “How had Hamilton blundered into this speech?”
Oh Ron, you’re a great biographer, but you’re so wrong about this. Yes, it caused him a great deal of political grief later on. Yes, it didn’t get many votes at the convention. Maybe you could even blame it for derailing his run at the Presidency. But I’ve been in that sort of design meeting. And it needed Hamilton’s crazy design sketch like a thirsty runner needs water.
Hamilton was a designer of systems, and as a system it made sense. William Samuel Johnson said it was “praised by everybody [but] … supported by none”. The debate was becoming entrenched, after which problem solving stops. The size of the meeting would have already been awkward for genuine design conversation. (Its notable that the full convention basically did little but choose among solutions proposed by smaller groups). The Hamilton plan showed some of the dimensions along which the design could meaningfully vary, without simply being an attempt to average the two major proposals on the table. Whenever he incorporates a controversial ingredient of the rival plans, he turns the dial to 11: not just a democratic lower house, a lower house elected every year by every man! Not just an executive: a President-for-life, who he even calls a monarch! Not just a Supreme Court: a dozen Supreme justices! For life!
Often there is a dialectical dynamic in problem solving. I doubt it is as universal as Soviet systems of dialectical materialism for engineers would have it, but the mental procession of thesis, antithesis and synthesis happens often enough to be useful. You can even see it expressed in code sometimes, as two theories of how core concepts in a system should be expressed, fighting it out in marching ranks of source source control commits.
Hamilton showed one synthesis: a way the plans could be modified and still work as systems. Chernow mentions some scholars argue it also worked politically, by being a more radically central government than the Virginia Plan, making it seem moderate by comparison. The eventual solution, the Connecticut Compromise from Roger Sherman, varied along similar axes as Hamilton’s plan, of the composition of the two houses and the nature of the Presidency.
It’s also nice that once the ultimate plan was adopted, Hamilton sent a number of meaty patches in the first milestone of the new system, and didn’t go off and fork the codebase. The merge conflicts from that can be hell.