breathing data, competing on code

56
Breathing Data, Competing on Code Venkatesh Rao r ibbonfarm.com [email protected] February 22, 2012 ^mostly this

Upload: venkatesh-rao

Post on 15-May-2015

658 views

Category:

Technology


0 download

DESCRIPTION

Slides from t

TRANSCRIPT

Page 1: Breathing Data, Competing on Code

Breathing Data, Competing on Code

Venkatesh Raoribbonfarm.com

[email protected]

February 22, 2012

^mostly this

Page 2: Breathing Data, Competing on Code

competing on coders

Page 3: Breathing Data, Competing on Code

band-aid

Page 4: Breathing Data, Competing on Code

people over process

Page 5: Breathing Data, Competing on Code

software is eating everything

-- Marc Andreessen

every company is now a software company

-- David Kirkpatrick

Page 6: Breathing Data, Competing on Code

most software is crap

Page 7: Breathing Data, Competing on Code

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!

Page 8: Breathing Data, Competing on Code

99%

1%

Page 9: Breathing Data, Competing on Code

software is eating everythingcrap

Page 10: Breathing Data, Competing on Code

#OccupySoftware!#OccupySoftware!

Page 11: Breathing Data, Competing on Code

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

^

Page 12: Breathing Data, Competing on Code

technical debt is growing faster worldwide than it is being paid off

Page 13: Breathing Data, Competing on Code

Everyone knows that debugging is twice as hard as writing a program in the first place. 

-- Brian Kernighan

Page 14: Breathing Data, Competing on Code

listen to this talkby Alan Kay immediately

http://tele-task.de/archive/lecture/overview/5819/

Action Item #1

Page 15: Breathing Data, Competing on Code

people over process

this principle is not generally wise outside of software engineering

Page 16: Breathing Data, Competing on Code

one size does not fit all

Page 17: Breathing Data, Competing on Code

enlightened governance with a wise policy of exceptions and customization of processes to specific situations

Page 18: Breathing Data, Competing on Code

rational governance with a wise policy of exception management and customization of processes to specific situations

principles of forgiveness

Page 19: Breathing Data, Competing on Code

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

Page 20: Breathing Data, Competing on Code

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

Page 21: Breathing Data, Competing on Code

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?

Page 22: Breathing Data, Competing on Code

narrative | archetypes

cultureculture

governancegovernance

Page 23: Breathing Data, Competing on Code

what you forgive depends on where you are in the story

Page 24: Breathing Data, Competing on Code

Gustav Freytag, 1863

Page 25: Breathing Data, Competing on Code

Venkatesh Rao, 2011

Page 26: Breathing Data, Competing on Code
Page 27: Breathing Data, Competing on Code

good judgment emerges from a rich sense of narrative situation awareness, not formulaic applications of narrative structure theory

Page 28: Breathing Data, Competing on Code

narrative | archetypes

Page 29: Breathing Data, Competing on Code

what you forgive depends on who you are dealing with

Page 30: Breathing Data, Competing on Code

tinker, tailor soldier, sailorrichman, poorman, beggarman, thief

hacker, hustler, coder, adminmoneyman, dataman, uxman, thief

consultant

after software eatseverything

Page 31: Breathing Data, Competing on Code

the best guide to software archetypes can be found within software culture itself

Page 32: Breathing Data, Competing on Code

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

Page 33: Breathing Data, Competing on Code

dwarves seek beauty

don’t force them to do ugly

Page 34: Breathing Data, Competing on Code

a good wizard makes you feel in charge

a good wizard-wrangler realizes he is not

Page 35: Breathing Data, Competing on Code

ninjas understand your ideas better than you do

defer to their judgment

Page 36: Breathing Data, Competing on Code

samurai prize honor and loyalty

never stop fighting for them

Page 37: Breathing Data, Competing on Code

elves understand magical realities that are invisible to you

do not disturb

Page 38: Breathing Data, Competing on Code

the exceptional nature of software culture arises from the fact that software engineers build their own tools

software culture is guild-like

Page 39: Breathing Data, Competing on Code

Action Item #2

read this book immediately

http://tempobook.com

Page 40: Breathing Data, Competing on Code

// end flattery and pandering

// begin evil manipulation

Page 41: Breathing Data, Competing on Code

data

Page 42: Breathing Data, Competing on Code

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

Page 43: Breathing Data, Competing on Code

the turpentine effect

Page 44: Breathing Data, Competing on Code

form and structure and meaning

Page 45: Breathing Data, Competing on Code

Action Item #3

read this book immediately

Page 46: Breathing Data, Competing on Code

“Thin Simplification”

“Thin Simplification”

Page 47: Breathing Data, Competing on Code

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

Page 48: Breathing Data, Competing on Code

great programmers form a subculture based on mētis

respect it

Page 49: Breathing Data, Competing on Code

but not too much

Page 50: Breathing Data, Competing on Code

mētismētis insularityinsularity complacencycomplacency

self-congratulation is not strategy

Page 51: Breathing Data, Competing on Code

...organizations which design systems ... are constrained to produce designs which are copies of the communication structures of these organizations.

-- Melvin Conway, 1968

Page 52: Breathing Data, Competing on Code

structure follows strategy

-- Alfred Chandler, 1962

Page 53: Breathing Data, Competing on Code

when software eats everything and every company is a software company strategy follows data

Page 54: Breathing Data, Competing on Code

managing mētis means mastering data

Page 55: Breathing Data, Competing on Code

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