11. 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,
and Windows Phone
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.
12. technical debt is growing faster
worldwide than it is being paid off
13. Everyone knows that debugging is twice as
hard as writing a program in the first place.
-- Brian Kernighan
14. Action Item #1
listen to this talk
by Alan Kay immediately
http://tele-task.de/archive/lecture/overview/5819/
17. enlightened governance with a
wise policy of exceptions and
customization of processes to
specific situations
18. rational governance with a wise
policy of exception management
and customization of processes
to specific situations
principles of forgiveness
19. great engineers ask for forgiveness,
not permission
This is a meaningless bromide if you
always forgive or never forgive
principles of forgiveness are about when
you forgive
if you get them wrong something far
worse than rule-breaking will happen
20. perfect rule following
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
21. sprint tempo burndown charts
daily standups code commenting
test-driven forking norms
development working code over
who decides when it is okay to
usability testing documentation
standrds communication norms
break which rules and why?
version control dflss certifications
retrospectives code review
user story semantics meeting rituals
story points tracking patent applications
requirements open source policies
pair programming spiral development
31. the best guide to software archetypes can
be found within software culture itself
32. 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
42. 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
47. 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
51. ...organizations which design systems
... are constrained to produce designs
which are copies of the communication
structures of these organizations.
-- Melvin Conway, 1968
55. breathing data makes better strategy
better strategy makes better structure
better structure means richer mētis
richer mētis means better code
better code means better company
better company lets you eat rather than be eaten
Scale: how America competed on precision and interchangeability in manufacturing in the late 1800s. Created a new kind of industrial worker and a new kind of ingenious designer-entrepreneur. Colt, Singer, Eli Whitney are some of the famous names from that era. It reached a peak with Taylor in 1919. It created a class hierarchy: between interchangeable and non-interchangeable workers. Craftsmen turned into Design Engineers and Technicians.
Homeless person looking for CTO phenomenon. There are interchangeable and non-interchangeable programmers.
Put a pin in this thought that everybody provides lip service to.
Similar quotes: quash one bug, two new ones are created. Reading code is harder than writing code.
In manufacturing, if a process isn’t being hacked and improvised constantly, it will actually not work at all. Same holds in s/w but 10x more.
It comes down to culture being about 10x more importance than governance, and I am only going to talk about a small part of culture today: narrative and archetypes.
Every age has its archetypes of work. This one is apparently
Artists are process improvement mavens, not process bureaucrats. Which means they often don’t care about their subject. If an artist finds no subject, he will paint his cup of brushes or turpentine bottle.
Torvalds: Git, Knuth: TeX, Ritchie/Thompson: Unix/C, Joel Spolsky,
What are we building FOR? How should it be structured in relation to what it deals with? What does the stuff it processes MEAN? Many s/w development philosophies assume that software is being built for the stated purpose in whatever management scheme you use. NO, software engineering is like a forest that can yield solutions to your goals as one of the outcomes, but there is a good chance it will be a minor outcome. This is like a machine tool where every machined part results in the machine retooling itself to be better.
If you are managing a development effort to produce a spreadsheet say, and you assume that the jungle of code and programmers is there just to serve that one purpose, you are going to destroy things. It will produce that spreadsheet, but don’t make it do so too efficiently. It also does other things you may not be aware of. Explore new programming models, produce new patterns and tools.