A tweetstorm summary of Session 2 of the Breaking Smart workshop, based on essays 4-8.
1/ The story of software so far has been driven by tension between pragmatists and purists, starting with early-sixties hacker culture.
2/ Purist software development, like traditional engineering, is vulnerable to authoritarian high modernism, or waterfall planning.
3/ Projects can succumb to massive cost overruns, mounting delays, failed launches and collateral damage.
4/ In the worst case, this leads to a Catch-22 situation of projects either turning into runaway train wrecks or stalled trains.
5/ Due to such failures, in the 80s balance swung towards pragmatists operating by IETF principle of rough consensus and running code (RCRC)
6/ RCRC treats software as a medium of abundance: it can be created/copied at near-zero capital/marginal cost.
7/ Abundance makes tinkering cheap and high-leverage, and purist visions dangerous and unnecessary
8/ Instead of a purist vision, rough consensus pursues ambiguity and optionality: the direction of maximal interestingness.
9/ Running code results from a release early, release often (RERO) dead reckoning process which seeks out this direction.
10/ But it does so by going through rather than around regions of highest operational uncertainty, creating controlled acceleration.
11/ The result is quality software in perpetual beta: with a internal thread of continuous experimental development and risk mitigation.
12/ Perpetual beta is about visions playing catch-up with execution, not other way around. Surplus, not deficit.
13/ When execution leads, you get pleasant surprises: serendipity. When vision leads, you get zemblanity: unpleasant unsurprises.
14/ Modern agile and DevOps are about heading towards ambiguity through uncertainty, to create antifragile outcomes.
15/ This is not free: RCRC means agreements are real, not fake. This means dissent and exit are also real.
16/ This is so unfamiliar that it took us 30 years to realize that promiscuous forking was a good thing.
17/ Today, Silicon Valley runs on promiscuous forking at both code and people level, via opt-in culture.
18/ At the scale of the software industry, the result is an unpredictable but reliable process of technological evolution.
19/ The process operates by swarming the most promising directions of development in a highly agile and decentralized way.
20/ Once you adopt James Carse’s “infinite game” world-view, indeterminate optimism is the most effective posture for getting things done
21/ This can feel like Blitzkrieg and doomsday to those on the wrong side, but unlike war, technology is non-zero-sum.