19 July 2007
Ruby on Rails the Revolution?
I just jumped into the wayback machine and was inspired to think about technology adoption using a framework for the stages of political revolution - first shown to me by my high school History teacher and the school’s soccer coach, Larry Bosc. So, in addition to the way Geoffrey Moore canonized the technology maturation process in his Crossing the Chasm, I’ve been wondering if there is something to applying a template of political revolution to the way technologies (open source/standard technologies in particular) are born, ascend, and are ultimately usurped. Coach Bosc exposed us to Crane Brinton who published The Anatomy of Revolution in 1938 (reprinted in 1965).
“no government [technology movement] has ever fallen before attackers [rival technology] until it has lost control over its armed forces [engineers, bloggers, and evangelists] or lost the ability to use them effectively” - Crane Brinton
Its interesting to do a ‘find and replace’ on “regime, government, antiregime, radicals, extremist etc.” and substitute technology-related terms and movements in the summary I’ve excerpted below.
Its interesting to think about this model both from the perspective of the replacement/challenge of an ‘old line’ technology (.e.g J2EE, .NET) by an emergent technology (e.g. Rails). Its also interesting to perform the same ‘find and replace’ considering a split or schism within a particular technology movement (as has been hinted at in the Rails community and others before it)
I found a summary of Brinton’s work that allows this ‘find and replace’ on the Davis School District’s (Farmington, Utah) servers.
Perhaps its a stretch, but break out your favorite ‘find/replace’ tool and give it a shot yourself …
*The first stage of actual revolution comes with the growth of antiregime groups and the growth of their power to affect political thinking and behavior. Some critical problem arises which acts as a trigger for pent up dissatisfaction - such as whether the three estates should meet together or separately. The old regime can’t handle the problem. They lag in deciding or decide unpopularly. Rioting breaks out, but troops sent in to crush the rioters desert to the rioters side. The antiregime people take power relatively easily amidst widespread rejoicing. Popular expectations raise still further.
*Moderates initially wield power. They earlier had opposed the old regime but as critics rather than as revolutionaries. They want major reform rather than total revolution; to “fix” the government rather than replace it. The moderates tend to be motivated by morality, plurality, justice, and high ideals. Extremists accuse them of being weak and cowardly, and true enough, they are NOT ruthless enough to crush the extremists. The extremists begin to crush them.
*Extremists take over because they are more ruthless, purposeful, ideologically motivated, and are better organized than the moderates. In what Brinton likened to a fever during an illness, the extremists whip up revolution to a frenzy, throwing out everything old, forcing people to be “good” according to the new revolutionary standards. and punishing real or imagined enemies in a reign of terror which is intended to sweep away any potential threat to the revolution. In France, this stage came with Robespierre; in Iran, with Khomeini; and in Cambodia, with Pol Pot.
*A “Thermidor,” or calming-down period, ends the reign of terror. Brinton named Thermidor after the French Revolutionary month - the revolutionaries even threw out the old calendar - in which Robespierre fell. Every revolution has a Thermidor, which Brinton likened to a convalescence after a fever, because human nature can’t take the extremists and their revolutionary zeal and purity for too long. Power usually then falls into the hands of some opportunist/dictator, who restores order but NOT liberty, protection but not participation - in short, a Napoleon.
Just some food for thought …
Technorati Tags: crossing the chasm, Ruby on Rails, RoR, Anatomy of Revolution, Crane Brinton, Java, J2EE, .NET

