breathing data, competing on code
DESCRIPTION
Slides from tTRANSCRIPT
Breathing Data, Competing on Code
Venkatesh Raoribbonfarm.com
February 22, 2012
^mostly this
competing on coders
band-aid
people over process
software is eating everything
-- Marc Andreessen
every company is now a software company
-- David Kirkpatrick
most software is crap
Expand Feature Set,
increase entropy
Expand Feature Set,
increase entropy
Version nVersion n Version n+1Version n+1
Refactor, lower entropy, pay off technical debt
Refactor, lower entropy, pay off technical debt
Release!Release!
99%
1%
software is eating everythingcrap
#OccupySoftware!#OccupySoftware!
Software is eating the world and every industry is being dissolved, disaggregated, disrupted and de-engineered in an acid rain downpour of Big Data and Free Agency coming down from CLOUDS that are forming via DATA evaporation from a world that is an ocean of sensors, iPhone and Android apps and untamed social streams of Facebook life, and when the Internet of Things happens and it is all connected up into a single giant software application a Chinese virus will mutate into a self-improving AI and the Internet will become SENTIENT and TAKE OVER ALL THE DRONES the whole pile of crap will collapse under its own weight and KILL US ALL.
and Windows Phone
^
technical debt is growing faster worldwide than it is being paid off
Everyone knows that debugging is twice as hard as writing a program in the first place.
-- Brian Kernighan
listen to this talkby Alan Kay immediately
http://tele-task.de/archive/lecture/overview/5819/
Action Item #1
people over process
this principle is not generally wise outside of software engineering
one size does not fit all
enlightened governance with a wise policy of exceptions and customization of processes to specific situations
rational governance with a wise policy of exception management and customization of processes to specific situations
principles of forgiveness
great engineers ask for forgiveness, not permission
principles of forgiveness are about when you forgive
if you get them wrong something far worse than rule-breaking will happen
This is a meaningless bromide if you always forgive or never forgive
Work-to-rule: an industrial action in which employees do no more than the minimum required by the rules of their contract, and follow safety or other regulations to the letter to cause a slowdown rather than to serve their purpose.
http://en.wikipedia.org/wiki/Work-to-rule
perfect rule following
burndown chartscode commentingforking normsworking code over documentationcommunication normsdflss certificationscode reviewmeeting ritualspatent applicationsopen source policiesspiral development
sprint tempodaily standupstest-driven developmentusability testingstandrdsversion control retrospectivesuser story semanticsstory points trackingrequirementspair programming
who decides when it is okay to break which rules and why?
narrative | archetypes
cultureculture
governancegovernance
what you forgive depends on where you are in the story
Gustav Freytag, 1863
Venkatesh Rao, 2011
good judgment emerges from a rich sense of narrative situation awareness, not formulaic applications of narrative structure theory
narrative | archetypes
what you forgive depends on who you are dealing with
tinker, tailor soldier, sailorrichman, poorman, beggarman, thief
hacker, hustler, coder, adminmoneyman, dataman, uxman, thief
consultant
after software eatseverything
the best guide to software archetypes can be found within software culture itself
Contemporary culture is a two-tiered system, like the Morlocks and the Eloi in H.G. Wells's The Time Machine, except that it's been turned upside down. In The Time Machine the Eloi were an effete upper class, supported by lots of subterranean Morlocks who kept the technological wheels turning. But in our world it's the other way round. The Morlocks are in the minority, and they are running the show, because they understand how everything works.
-- Neal Stephenson, In the Beginning was the Command Line
dwarves seek beauty
don’t force them to do ugly
a good wizard makes you feel in charge
a good wizard-wrangler realizes he is not
ninjas understand your ideas better than you do
defer to their judgment
samurai prize honor and loyalty
never stop fighting for them
elves understand magical realities that are invisible to you
do not disturb
the exceptional nature of software culture arises from the fact that software engineers build their own tools
software culture is guild-like
Action Item #2
read this book immediately
http://tempobook.com
// end flattery and pandering
// begin evil manipulation
data
When art critics get together they talk about form and structure and meaning. When artists get together they talk about where you can buy cheap turpentine.
-Pablo Picasso
the turpentine effect
form and structure and meaning
Action Item #3
read this book immediately
“Thin Simplification”
“Thin Simplification”
the kind of knowledge required in such endeavors is not deductive knowledge from first principles but…mētis…the kind of knowledge that can be acquired only by long practice at similar but not identical tasks
-- James Scott, Seeing Like a State
great programmers form a subculture based on mētis
respect it
but not too much
mētismētis insularityinsularity complacencycomplacency
self-congratulation is not strategy
...organizations which design systems ... are constrained to produce designs which are copies of the communication structures of these organizations.
-- Melvin Conway, 1968
structure follows strategy
-- Alfred Chandler, 1962
when software eats everything and every company is a software company strategy follows data
managing mētis means mastering data
breathing data makes better strategybetter strategy makes better structurebetter structure means richer mētisricher mētis means better codebetter code means better companybetter company lets you eat rather than be eaten
http://tele-task.de/archive/lecture/overview/5819/
#3#2
#1