Common Sense for IT

Posted in philosophy software -

Let’s start with this: Thomas Paine is one of the most bad-ass writers in history. Two hundred and forty years ago, he wrote Common Sense, which was in essence an epic flame that totally went viral. That’s not like going viral in our age of frictionless electronic communication, clicking Like buttons and re-tweeting; it was people packing wood-frame printing presses with lead type and hand-cranking out copies a page at a time. It’s not people flaming each other in 140 characters; it was people loading up muskets and taking to the streets.

But what I love about studying history like this is not just that it’s epic and awesome; it’s that it’s still relevant, because the underlying causes of this conflict were inherent human problems. It wasn’t just about the injustice of monarchies or colonial rule. It was about fundamental issues of governance: How do we unite people or groups with sometimes competing interests? How do we balance the common good against individual freedom? Risks against rewards? Stability against growth? And when do we stop negotiating and settle the issue by force?

All of this applies not just at the level of governments, but to any group of people, whether they’ve come together for a purpose or were thrown together by circumstance. Any group, from a family to a company to a nation, is a roiling gumbo of common goals and competing agendas. So the words of Thomas Paine, which lunge against the shackles holding back the colonies, are a fiery argument for change within any organization.

Lest you doubt this, that the tensions which spawned a colonial rebellion are present in any software development shop, let me present to you the opening of Common Sense, with a few minor substitutions: “society” with “programming”, “government” with “process”, “the English constitution” with “waterfall methodology”, and so on.

Ladies and gentlemen, Thomas Paine:

Perhaps the sentiments contained in the following pages, are not YET sufficiently fashionable to procure them general favour; a long habit of not thinking a thing WRONG, gives it a superficial appearance of being RIGHT, and raises at first a formidable outcry in defense of custom. But the tumult soon subsides. Time makes more converts than reason.


Some writers have so confounded [programming] with [process], as to leave little or no distinction between them; whereas they are not only different, but have different origins. [Programming] is produced by our wants, and [process] by our wickedness; the former promotes our happiness POSITIVELY by uniting our affections, the latter NEGATIVELY by restraining our vices. The one encourages intercourse, the other creates distinctions. The first a patron, the last a punisher.

[Programming] in every state is a blessing, but [process] even in its best state is but a necessary evil; in its worst state an intolerable one; for when we suffer, or are exposed to the same miseries BY A [PROCESS], which we might expect in a [team] WITHOUT [PROCESS], our calamity is heightened by reflecting that we furnish the means by which we suffer. [Process], like dress, is the badge of lost innocence; the [corner offices] of [project managers] are built on the ruins of the bowers of paradise. For were the impulses of conscience clear, uniform, and irresistibly obeyed, man would need no other lawgiver; but that not being the case, he finds it necessary to surrender up a part of his [dev time] to furnish means for the protection of the rest; and this he is induced to do by the same prudence which in every other case advises him out of two evils to choose the least. WHEREFORE, [stable code] being the true design and end of [process], it unanswerably follows, that whatever FORM thereof appears most likely to ensure it to us, with the least expense and greatest benefit, is preferable to all others.

In order to gain a clear and just idea of the design and end of [process], let us suppose a small number of persons settled in some sequestered [startup], unconnected with the rest, they will then represent the first peopling of any [team], or of the world. In this state of natural liberty, [programming] will be their first thought. A thousand motives will excite them thereto, the strength of one man is so unequal to his wants, and his mind so unfitted for perpetual solitude, that he is soon obliged to seek assistance and relief of another, who in his turn requires the same. Four or five united would be able to raise a tolerable [code base] in the midst of a wilderness, but one man might labour out of the common period of life without accomplishing any thing; when he had [written his code] he could not [test] it, nor [deploy] it after it was [tested]…

Thus necessity, like a gravitating power, would soon form our newly arrived [developers] into [teams], the reciprocal blessings of which, would supersede, and render the obligations of law and [process] unnecessary while they remained perfectly just to each other; but as nothing but heaven is impregnable to vice, it will unavoidably happen, that in proportion as they surmount the first difficulties of [development], which bound them together in a common cause, they will begin to relax in their duty and attachment to each other; and this remissness will point out the necessity of establishing some form of [process] to supply the defect of moral virtue.

Here then is the origin and rise of [process]; namely, a mode rendered necessary by the inability of moral virtue to govern the world; here too is the design and end of [process], viz. freedom and [code stability]. And however our eyes may be dazzled with show, or our ears deceived by sound; however prejudice may warp our wills, or interest darken our understanding, the simple voice of nature and of reason will say, it is right.

I draw my idea of the form of [process] from a principle in nature, which no art can overturn, viz. that the more simple any thing is, the less liable it is to be disordered; and the easier repaired when disordered; and with this maxim in view, I offer a few remarks on the so much boasted [waterfall methodology]. That it was noble for the dark and slavish times in which it was erected, is granted. When the world was overrun with [segfaults] the least remove therefrom was a glorious rescue. But that it is imperfect, subject to convulsions, and incapable of producing what it seems to promise, is easily demonstrated.

Beyond this, Paine goes into more specific criticisms against the British monarchy, which are less relevant to our case but still contain insights into the problems of any organization with a sufficiently deep management hierarchy: CEO alienation, nepotism, and the like. I encourage you to read the original. It’s not long, less than eighty pages in my paperback copy. The style of writing from that time is difficult until you get used to it, but it has an elegance of its own.

And seriously, it made history.