Is Software Engineering Still an Oxymoron? Alan Kay at GOTO 2021

From Viewpoints Intelligent Archive
Revision as of 02:28, 29 November 2021 by Ohshima (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search
here's how this uh came about actually
it was last year fraben contacted me
and asked me if i'd do a conference for gotu's
conference last year and
well i didn't know
he gave me a title which is really
scary is software engineering still
oxymoron can you answer
this in any reasonable way
and it's for people who are in the software
engineering business which really is scary
and he wanted me to do it pretty quickly
i said yes because
a keynote is supposed to be contextual
it's not a question of
giving you straight information about today's
technology and this is a
an excellent question i think to put context on
a software engineering conference
and i have a one-line bio
which is no one owes more to his research community which
is the arpa park research community most
of us in that community feel the same way
it's what we did within that community that counted
my tombstone will be a single
curious and i'm basically
a systems guy so
computing is part of that
but i uh have worked in biology
i worked in human systems so
i like systems and
this talk uh is a
complicated one because of the
the topic and the
field because of the delays
i gave two other
talks on software engineering in between
i wasn't particularly happy with them the talks
were well received but i didn't feel like i
covered the ground well enough
so for this one i engaged a bunch
of my friends and colleagues
who've had a lot of experience in
various aspects of software
engineering for instance gerald holtzman
was responsible for the three
and a half million lines of amazingly
workable c code that
went into the mars curiosity rover a few years
o this is a
basically an assisted talk
and to deal with this
question i think we define
engineering as designing making and repairing things
in principled ways
and if that's the case then it's certainly not
an oxymoron that is what most people in
software do they have principles
and they design make and repair things
and many of the people in this room and
in the field will say hey software engineering is whatever we
do that's maybe an overreach
so i think engineering
is the term we have to look at
uh do we mean it like
the peruvian rope bridges which i absolutely adore
like the salute or even
the making of music which is done in a principled way
you can think of these as kind of crafts
at a high level
but i think we also have to include
things like the akashi straits
bridge how big is this bridge
well that's the empire state building so the pylons
on this bridge are as high as one
of the tallest buildings in the world
and the
empire state building itself was done 90 years
ago and from the demolition of the
site to occupancy was
built by less than 3 000 people in less
than a year and i don't know today
of any software projects of comparable size
that have actually been able to be put
together and built by 3 000 people in less than a
year so we have to think about this as
part of engineering
that means uh we just
have to open up this term engineering a bit
i think oxymoron is kind of insulting
so let's use aspiration
and i'm always interested in the soft
and software because there's nothing
less soft than a legacy system
it just doesn't want to be changed
and there's nothing more soft than a buggy
system so these are kind of a
way of thinking backwards
if you will so i propose
this as the actual title of this talk
we want to aspire we want to
learn we have to understand what engineering
is and we need to understand the hardness and the
softness and i'll mainly talk about
the the last two
so if we
go back before the wear bridges we can
see the historical development of all of these
fields because most things start with
tinkering and we share tinkering with many mammals
so we just do something any old way
we have
an aesthetic sense that tells
us whether we like something or not and by
iterating that we eventually wind up with principles
old days and in
many cases today are in the form of cookbooks
where many recipes
it's not completely understood why recipes work
but it's known that they do and they're collected
together mathematics was like that
also and it was used to
allow a certain kind of thinking
that did not require
structures and these all
co-evolved and then just about 400
years ago what we call real science
uh entered the scene very very
late because it's a very different kind of
thing from these other four things
it has to do not just with knowledge
it has to do with the fact
that what we call knowledge is something
we have to deal with in a very noisy and messy
brain with
noisy representations and so in order to
get real knowledge out of science we have to think
about what the knowledge is in a very different way
and in the 20th century
we had this wonderful thing happen
was engineering finally
got to embedding enough science
in it very very late hundreds of years
late but finally there and
you got this synergistic combination
of tinkering aesthetics engineering
mathematics and science
try to do the social engineering needed to get
uh these different personalities to cooperate when
you have that you have something more powerful
than has ever been done on the planet before
and that's what gives you something like
the akashi streets bridge and the empire state
building now if we ask the
question is where is software engineering on this map
i think it's a little bit like this now
it's still a lot of tinkering there's a little of real
engineering tiny bit of math
and i don't count programming as math here
and just a little bit of science
so it's like where uh engineering
uh medicine uh
were uh maybe
a hundred years ago or so it's evolving
into something where it is taking
on more of the ancillary knowledge that's
needed now when i was making up the
slide i needed a good example and
ferris bueller's day off happened
i mean facebook's
day off and
right when i needed it
a very very large company with billions
of users went off the
net for about six hours
to the point where they couldn't get in their
own offices and of course this has happened
to other companies it's happened to amazon
it's happened to microsoft
but it's never happened to
the internet itself the internet is much larger
much more connected yet somehow
it has not crashed
anything like this uh i know
a lot of the people who did the design of the internet
and they were much more comprehensive than most
of the computer people i know today
did a heck of a job because they
didn't just design for success
they designed for failure and in
fact the whole way of the arpa community
designing both the internet
and the ethernet is to deal with failure
as the main fact and make failure
not be a factor in the successful operation
well i got
one of these guys to comment on the facebook
thing and he said well the facebook engineers
are far from stupid or ignorant
in fact they're the opposite of that but
he internal architecture is such that certain very
small errors but only a few can have huge mystifying
ramifications that's this does not sound good
he said could there
be a internal rule check
that says we shouldn't ever partition
the internet on purpose yes
and what they've got there is
uh configuration checking programs
but they don't have even have
what my firefox browser has
close off something it says
hey you're about to close four tabs you really want to do that
you can imagine that facebook should have something
come up like this should we shut down the routers and get off
the internet well they didn't
have that so what
what they got what they did there was
something that was a part of the job
but i think with not a large
sense of what the job actually is for instance any
any large thing that deals with humans
needs to have a modern equivalent of asimov's laws
of robotics overseeing the entire system
there should be something that understands what
a good system is to oversee the entire
system they didn't do it they
have no model of the system itself and most
uh enterprises don't do this
what is the probability that no one at facebook
understands this zero i'm sure
understand this what's the probability
that facebook can't afford to fix this zero
so what we're looking at is something else
here's a clue to the attitude they named
the street that they're on hacker
way hacking is not what you do when
building big systems their motto is
move fast and break things
that's the voice of naive children vandals
drug dealers and other arrogance
and rebranding the whole thing isn't going to help
no matter what you put up there you're
still going to get the thumbs down
so the patron saint of
all this is a guy by the name of macarthur wheeler
here he is on the on the left there
robbing a bank without a mask
or anything else and uh
robbed several banks actually and
they looked at the cameras and they
got a picture and uh in a day or
so they had found him and arrested him
in jail he was incredulous because he said i wore
the juice i wore the juice they said well what juice
and he had doused himself with lemon
juice because he had read about invisible
ink made out of lemon juice really
and he thought well if he doused himself within
with lemon juice then the cameras wouldn't be able to see him
and the psychologists
that studied this case were named dunning and krueger
and this is called the dunning-kruger syndrome
and it's here he is
a low-ability guy
with a high estimated ability
but the important thing about the dunning-kruger
people is that they looked much
larger than macarthur wheeler
much every human
being overestimates their ability
and you have the basis of greek
tragedy and theater
up here at this end where you have superior people who overreach
and as the greeks used to say
hubris brings nemesis there are
also packed little packets of modesty
so one of the touring award winners uh
from my era tony
once pointed out debugging is harder than programming so don't
use all your cleverness in writing the program
but this is what most people do
they're as clever as they possibly can be before the real
work starts einstein said a bigger
thing we cannot solve our problems with the same levels of thinking
that we use to create them
great cartoon these smug
pilots have lost touch with regular passengers like us
who thinks i should fly the plane
here's zuckerberg who thinks
i should run the company not because
of the crash but because they didn't have enough
knowledge and perspective to understand they were creating a
legal drug and the worst thing
is they were really happy when they realized that they had created
a regal legal drug
and we just had this guy in the u.s for
four terrible years and we can't get rid of them yet
if you want dunning-kruger take a look at almost
all software not just the
facebook software but
this is the boeing 737 max autopilot
who also asks who thinks
the plane the answer is well we want it to fly the plane
that's what its job to do is but now
this is no longer funny it's no longer a joke
because everybody here is going to die because
the boeing 737 max autopilot
does not know how to fly the plane but is still put in charge
of it and boeing let this happen not
just once but twice
so this is a terrible thing it is worthwhile
studying to understand both some
of the states that engineering can get into
and some of the states that management can get into
there are many articles about this
many forms of lying now i was in the air force
so i of course was interested in looking
into this more deeply and i found this picture of the
electronics bay on the 737 max
now i can tell you having been in the air force my reaction
was what this
is the electronics bay it looks like a trash
heap and sure enough a few months ago
boeing notified airlines that
there's a potential electrical problem because
some of the things that were in this trashy were not
sufficiently fastened and it was up to the airlines
to find them so this is an
example of artificial stupidity meets human stupidity
in greek this is happening
more and more and software is getting more and
to get a little of a bit of understanding
about this
let's think about what we're doing right now
you're out there in the audience prabhan
didn't supply a fire but
basically we're at a campfire right now
and if you think about it what we're talking
about are things that were invented because
writing and mathematics and
science got invented and yet we're talking about
them orally around a campfire for
just a few minutes whereas
everything that's important is something that
is hard to talk about orally and it can't
be done in a couple of minutes but somebody
who understands this is our cave
guy from 100 000 years ago he
understands completely what's going on
here and what he wants is a story and
i'm driving i'm trying to
make a story and that pink brain
he has hasn't changed much
so if we give him glasses a tie a briefcase
and bring him up to the presence he still wants a story
and the problem
stories most of the things we
have to deal with today have systems natures
and systems have no start and no finish
they're a bunch of processes uh interlinked
with each other but he still wants a story
so one way to look at is human genetics
has changed very little over the last hundred thousand
years as far as we can tell
there was a place where our invention started outpacing
what our genetics give
us directly our culture gather these
together and we start increasing our wisdom
from what human genetics gives us but
it's so much easier to invent than
it is to get wise that we have this
complete mismatch today and the result of that
his guy with a hundred thousand year old brain
a million times the power of his
fee of his spear and we give them a million
times the power of the campfire to organize
people so this is incredibly dangerous
and we have hundreds
of flaws not just these that i'm
showing and the result
of that is something that is very well
understood very noticeable
like the covid pandemic was
completely botched in most places most
citizens in most governments couldn't handle it
even though there was nothing new about it
as far as contagion
and mortality so that is a very
bad sign because in the background
here we have something that is much more complex
much more devastating which is the climate problem
and right now the general
not in any good
shape to have any perspective on it we can
see it just recently
so 60 years ago one of the great
people in our field an engineer's
engineer by the name of doug engelbart
that we have to augment human intellect
we have to build things around
the human in the general
human intellect in order to be able to take
care of all the
problems we've had especially the problems we've caused
so he wrote this report in 1962 it's online
it's really important
o understand he basically says this explores the nature
of the system composed of the individual
and the tools concepts and methods that match
his basic capabilities to his problems
that's just what we need he says in 1962
one of the tools that shows the greatest immediate
promise is the computer when it can be
harnessed for direct online assistance
integrated with new concepts and methods so this
hadn't really happened yet but he could see
that it was going to and one of the things he describes
here which he saw
an early version of
is a kind of a
thinker of the future's augmentation
system that includes this very large three f
meter by meter display pointing
device a system in which you can give
advice to semi-intelligent
and so forth so that was the image in the early
pages of this and he realized
as with
the k person in this in the spear
that when we have a pink
brain and we're given power
what we learn from the power is power we
don't learn wisdom from it and this
gives us a rather wrong view
a dangerous view of how to use power
so the first thing he called for is
have to intermediate that with education
and training in order to get
a more reasonable balance
and power if we do that
then we can use modern methods which are extremely
powerful and modern ways of representing ideas
especially on computers and we get
quintuple which is an augmented
human then he said most
things that people do
that make a difference in the world are done with groups
and so what we want to do is we want
make up groups of these augmented humans and these groups
also so it's something
like that and then just four years after
making this proposal they gave
what is known as the mother of all demos
in which they showed
many aspects of modern personal computing
and networking today an important
here is that these were not the precursors
of many things we do today
for example uh
this looks the top pain there with
the guy talking and showing looks like what i'm doing
but in fact in the englebarts system
every participant had his
own cursor every participant
could deal with the information simultaneously
and that was built into the operating system
there's no such thing today today
is actually a subset of
many of the things shown in this demo in full
glory and their system was so useful
important that even when they
had face-to-face meetings as you can see in the bottom
they did them using the system as
part of the representation of their
ideas and their communication
so this was one of the great landmark groups
and if we again go back to 60 years
ago to one of the inspirations for englebart
we find
a supercomputer back then which is about
the size of a football field
part of the air defense system it had uh
all of 150 000 instructions per second
and all of 330 kilobytes
of memory but it was this enormous
thing and down at the end
at three o'clock in the morning is just one guy
a graduate student at mit that they
like they gave this machine to him for three hours every morning
and they
had an oscilloscope display
and a light pin on there
and here's what he did
so the display could only plot points so the first
thing he had to do was to make it be able to draw
lines uh do characters and everything
that so these rubber band
lines were his invention and look what he's
doing here he's saying i want these guys to all be mutually
perpendicular and the system
problem so you program
this system by giving it desired
goals and it will figure
out how to do these goals so again he wants
uh to put a hole in this flange
so that he says make these guys uh
parallel and mutually perpendicular
and then he says i want
these gu lines to be collinear
with the guidelines i just put in
ow he makes the guidelines transparent
and notice that this is the first clipping
window ever done is actually drawing
on it on a canvas about a third of a mile on
its side the zooming
is done with knobs
now he wants a rivet
to put into the
flange there the reason it's called
sketch pad is because of the constraint solving
you can just make a rough sketch
and then again he does this thing
saying make these guys mutually perpendicular
this will drag the center guy and that will drag the
top of the rivet
and it generally finds the closest
solution to the sketch that you made
so here he's doing modifying the sketch
and the solution
is a different one that obeys the symmetries
there but he wants something that looks like a
rivet so goes back
to this now here's another
idea done for the first time here is that
this thing that he did is actually a master rivet
what we call a class in object-oriented
programming this is one of the very first systems to
ever have objects
so here's an instance of that rivet
again the rotations and the zooming are being done
by knobs that he has so you can see the system
is rather efficient even compared to ones today
so now he's got that in there and he's showing
us he can make more instances of the rivet
all independent different sizes
he says whoops i forgot i've got those cross
pieces i should make those transparent in the master
and we can see all the rivets feel that
now he's got a flange with
and he says okay i want to make that a master
i want to make instances of those
okay now i want to make that
into a master
instances of those
by the way for each dot that the oscilloscope
is plotting there is a code word in the memory
of this machine so about half of the computer
is actually used just to do the simulated graphic
display okay
now let's take a look at the bridge
example this is a recreation of it
from his thesis because the movie
has gotten mislaid
of it but there's enough information in the thesis
that this is pretty
faithful so again you like
making the flans you hook the
thing together but now you can turn on
a downward force
which you can think of as a constraint that tries to
make the difference between everything and the bottom smaller
the constraint on the beams here is
a spring constraint and if you think about
it a spring is a thing that tries to maintain a constant
length and the constraint
solver here
shows the non-linearity
which is what you want to achieve in a bridge
everything ripples across everything is
connected together and
the solution here shows that the bridge will handle
these weights so
when i first saw this i saw this
uh in 66 about
four years after ivan had done it i was completely
blown away it changed my life
this way of thinking about
all systems the important thing here is
that sketchpad didn't have to be prepared with any knowledge
of bridges it could do electric circuits without
being prepared with any knowledge of electricity
this is a general way of thinking about
propagate things between
their parts and
a mind-blowing thought i had was wow this
is the first thing i've seen on a computer
programming where the programming is
not like the machine code of the computer like
algol programming is like in
when you when i say algol think c today
it's really just a slightly
sugared version of assembly coat
most programming done today is like that
but what sketchpad did was to completely replace
the notion of a von neumann computer with
a computer that is a goal seeker
we have three different problem solvers
and a little operating system that
figured out which problem solvers to use all integrated
so here
he is and
so interactive computer
graphics and computer aided design clipping windowing
pointing iconic user interface
object-oriented uh design
with masters and instances many interesting
internal things like the inverted pointer
recursive garbage collection idea
automatic dynamics simulations from the
designs and this programming
in terms of what's rather than house
so you basically put in the requirements and
the automatic problem solvers find the solutions
and give you this bottom
so my thought from this in 1966
is wow all interactive computing could be like this
i mean this is kind of like the way it all should be
it all should be like this for everything and i asked
ivan a i guess the next year
or so i said how could you do all of this in just one
year all by yourself and machine goat
and he said well i
didn't know it was hard
that is where uh the
main cad that we have today started
was at lincoln labs with this system today
an electrical cad chips
are not made before they're known that they're going to work
because it's not just designing
something it's simulating it using a supercomputer
necessary you know the thing is going
to work to
know one part in 100 million or something
like that before you ever do the fad
people at stanford were able to model
turbulence at close to the
atomic level and got a lot more insights
into why uh when you can see this
the nacelle on this
engine is trying to make the wings stall above it
build a building without being able to simulate it
biocad simulates
nanocad simulates we've
come over to computers we've got this what
simulated punch cards
what is going on here
what happened to ivan
sutherland and sketchpad what happened
to engelbart what happened
to integrating science and math into
engineering in most
places in the country today
in the world today none of this has happened
and this is particularly
unusual because now
we know why because software people
think they should be doing fab much more
than designing and simulating
the rest of the engineering disciplines
know they need uh cad
and sim so they get software people
to make better systems for them than the software
people have themselves for the most part
this is crazy but it's actually what's
going on so mantra
here is look it's cad sim fab design
simulate built you've got to deal with the entire
system these days in order to make progress
i'm basically a researcher but i've spent
the last four decades also consulting with
large organizations that
only yielded anecdotes
and so i engaged these
friends and colleagues to give me more anecdotes
o at least have a lot more anecdotes than i
have and one way of putting
these anecdotes together into a picture is to say
if you go to an organization it will
know certain things and if you look at what
it does it will do a subset of those things
there are a bunch of things the organization
doesn't know that computing knows
and there are a bunch of important things that nobody knows
they haven't been invented yet
and joy
is when what is actually needed for a project
is something that the organization already does
those are the most straightforward ones
it gets much more problematic because really
most projects these days at least need
things that computing knows that the organization
doesn't know often the organization
reinvent those and may wind
up reinventing the flat tire
instead of the wheel
there are things that they do
that they won't use there are things that they do
that they shouldn't use this
one might say hey you should look and see what regu
what computing has turned up over the years like if
facebook had done this they would find the r1 system
that deck used for
modeling complex configurations
products this one was a
real model and it was of
enough strength to actually prevent
the what happened with facebook 40
years ago
ibm had a great initiative called autonomic
computing which took off
more in academia than ibm ibm used it for
a few just a few small things and eventually
abandoned it but if you look this
up you'll find some really great principles
for thinking about making an autonomic nervous
system for the system
that you have something that keeps the large body
of the system running
i've just talked about the need for complete
cat sim fab idea and i
just threw this one in because this is a terrific book it's called
engineering a safer world it's done by
nancy levison who is a aerospace
astronautics engineer
at mit and
this book is about systems in general
and thinking about the whole system
and thinking about what it means to do a safe
system first 75 or 100 pages
hould be mandatory reading for any computer
person because she is able to debunk
most of the fun theories about what
safety and danger are and provides
a much much better picture of how to think about this stuff
and of course
with moore's law and
requirements getting larger and larger
a lot of systems require things for success
that nobody knows yet
computing knows that
it should be doing research funders haven't
quite got it now they used to
so i've this is where i've lived my entire career
and so my knee-jerk response
to this kind of thing is something like this we need to
invent a live super high level language cad synthetic
wobble notes
the it's the right advice
but it's misplaced it took me a long
time to realize that the advice that you would give
researchers is not the advice that
works with most organizations
and the clue to it is most organizations
don't take the trouble to even learn what computing knows
they tend to stick with what they know
and this is very much like
complaints about classic engineering disciplines they're late
to the party as far as making use
the knowledge that is not just available
actually needed and here's a great
little cartoon from the 50s about pollution
that applies to a lot of things we've met
the enemy and he is us and the
problem is we don't understand us computer
people are especially bad at this i think one of the reasons
many people go into
computing is because they're much less messy
than human beings are
but there are people who are trying to understand us and here's a great
called thinking fast and slow by daniel
kahneman uh amos taversky
was his partner and died
before kahneman wrote this book and the book is
dedicated to him the two of them together came up with a
lot of different ways of thinking about things so
first here's a really simple idea
that inside of our head we've got lots of things going on
many many things and
they even got a handle on this they said let's make
an apo expository fiction that
we'll call system one everything that's
done for fast effect
and we'll use system two
for uh the what we call
thinking or slow pondering
and they had a
metaphor that uh inside there it's like
maybe a person riding on an elephant
and when the elephant does something
the person to feel and control says
wanted to do that but in fact
we know from pet scans and functional
mri scans that
in many cases
it's system one that wants to do something and system
two sees this being done and quickly makes
up a rationalization for it
so this brings into question what the term i
actually means if inside of our head we're
and in that multitude we have hundreds of cognitive
flaws that distort thinking most of which
people are unaware of so i'll just
show you a couple because they're really important to
help with the task ahead
so we take two uh things
that whose size we know could be our
thumbs it could be oranges
could be poker chips and
look at them
have one twice as far away as the other first
thing to think about is you know as far as
our brain and our
eye is concerned there's nothing out there
because all we get is photons photons
go through our lens the lens
works like a glass lens descartes showed that years
ago and so on a back of our lens
the further away one is half the size
one but inside the pachico
machine that's our brain we
have the knowledge that these two chips are the same size
so this sets up a conflict
we know and what we're actually looking at
now you'd think that what we're actually looking
at should dominate what we know but it doesn't
what happens is there's a compromise
done in this little theater that i'm calling
the dream it's the thing that
consciousness the compromise
is that the
further away one is
acts as though it's closer
actually is and it winds up
being about 80 percent the size
the dream the way we
think about the dream is not
inside of our head we think the poker
chips are out in front of us and so what
we actually see out there is the further
away thing about 80 the size of the
of the nearer one even though that isn't
actually the case what one of the things
that science is about is to remind us
that we're living in
mcluhan said until i believe it i can't
see it that's true
that's the way our perception system works we have to learn how to
see everything we see it through
our beliefs with sensory information but when
i believe it i see it wrong which is also true
so we live in a waking dream
a delusion an hallucination that is only
influenced by primitive signals that
our sense organs can pick up if we can keep this in mind
we can be semi-sane
and we don't need
uh photons from the outside because we can pay attention
to our own thoughts like we can come up with the idea
is no god but my god cost this
into the dream and depending on where
we are we wind up with a reification of it
and again reification seems like it's out there
instead of inside of us
and for hundreds of thousands of years
been no science to remind us that we're in a dream
and there are
about 3 000 religions
because like languages
the manifestations the particular manifestations
of these ideas are local
but the larger category the category
having gods is global to the human
okay here's a fun one
this hunter in
africa wants to catch a baboon
so he's poking a hole in a termite
nest here
and here's
a young baboon watching him curious
the hunter puts some
into this hole and backs off
well he's curious
a hunter is a
decent distance away so
what's in there
seeds he's got him
can't get his hand out because
the seeds he could let them go
any time but he won't let them go
the hunter could come over and kill
him you still won't let him go
so the you can find the rest and rest of this
video on youtube and i can tell you
no harm comes to the baboon
here the seeds
the seeds well we have that problem
also it's called loss aversion
we can make up
funny cartoons about not being able to
give up terrible old tools
our field is riddled with things
people can't get rid of because they don't naturally rot
they just keep on going on
and going on so some
elevated level of perspective is needed
to know that you shouldn't be using these
so if you go to wikipedia
don't do it now but you look at cognitive
bias you'll find hundreds of them
in a nice chart like this
o we just looked at loss of version
aversion is related to it
because we usually have to give up something we think is
true in order to learn some new thing tunnel
vision is a big part
it's important to understand that all of these cognitive biases
in the small are actually positive for us
they help us focus on things they help us take
chances for instance gunning krueger in the
small is very useful because it
makes us less timid about trying things it's
when we try and scale these things that they become
huge uh problems
confirmation bias helps
in focusing but when i was
a molecular biologist
one of my professors
said beware you always find what you're looking for
this is a big problem in science
is you love your own theories so you
tend to look for evidence that supports the theories rather
than evidence that says
the theory is bumped most of them are bunk
and we like stories because
we're this hundred thousand year old cave
person stories are
the way we tell ourselves lies that
really get us in trouble well
i was at this place
uh in this talk and
this is the way i do talks is i actually
make a kind of a whole
territory of ideas in this case is
like 350 slides
every time i get an idea i try and figure out a way of explaining
it after i've got a bunch of them i try and
see if i can
make a campfire talk because a
talk like this in the end it has to work in the campfire
it has to be turned into a narrative
but here's the way to
think about this at best the story is an ad or commercial
for studying the real thing so i haven't
shown you the real thing i've just shown you that there
is a real thing that you can study
and the real things today are usually systems
and systems have almost
nothing to do with algorithms and data structures
and so if your first way of thinking
about anything computing is an algorithm data structures and
it is for most people because that's unfortunately
the way they're taught exactly backwards
you're starting off in a
behind the eight ball
yeah so while i was doing this i had one of those john
lemon linen moments life is what happens to you
while you're making plans and for me it was
scans not plants those scans
got me under a bunch of robots for
hours there i am
and when i was recovering in the hospital
from this big operation
weeks ago i had a
very happy thought about this talk
that is i should have been talking
about medicine using it as an analogy
because it's hard for people to look at their own field
and see anything they're so used to it
but a medicine is a branch of engineering
and we have this idea
from helping hands which is like writing a few lines
of python to open heart surgery
which is not like writing a few lines of python
and we can think of some funny
like here's a surgeon
should we ask stack overflow what to do next
happens all the time in computing
so we take the server offline meaning the heart
we go back and try band-aids
so my old colleague butler lampson
e of the large mines of the 20th century pointed out that
yeah the early pc and mac os were made from matchsticks
they were kind of tinkered together by people who didn't know about
operating systems but the fix was really
bad because vms and unix which
into service were not set up for
modern computing needs and
so looking at this you see every kind
of bug that we should be familiar
you better not have to ask stack overflow about
anything important
you better not confuse server with service this happens
all the time you take a physical
server offline but you have to have service
band-aids are not the solution to the most
interesting things in medicine
the way the early pc
and mac os's were done don't scale
and even
better ideas don't often scale
so medicine
says there cannot be a continuity
between the
band-aid part of our field
and the open heart surgery part of our field we cannot
stand it we have to have stages
we have to have high fences
we can't allow jumping the queue
and if we do that we're
starting to follow in what
he other engineering fields did and what medicine
eventually did about 80 years ago which
is to integrate science and math
and trying things and engineering
and the whole shebang
into one larger
discipline that uses knowledge in the best
possible ways so i'm very thankful
that i was able to wait for my operation
until today rather than having it when
i was five years old
and medicine has always had a thing called a hippocratic oath
one of the parts of it is
ays to the physician
the physicians promise to
no harm of course they've done a lot of harm
but they thought they were doing well
but this is a really good one to focus in on because if
you really think about avoiding
doing harm you start getting
a better picture of how things might be in
our field so here's a
bridge done by the romans about 2
000 years ago which is still in continuous use today
here's a plane
done about 10 years ago not by boeing
flying safely
and engineering has
something like a hippocratic oath also
the pledge of a real engineer is the bridge must not
collapse the building must not fall the
plane must not crash and now
the software must not harm or fail
and software is reaching everywhere and has the most degrees
of freedom it's the most dangerous
new set of technologies invented
and it's starting to kill people
so the engineering pledge here has
even higher quality it has to be much
much higher than what is being put into it
and you don't get to a place here
al civilization is not a place you get to
it's a group of people try striving to become more civilized
it's a process not a place
engineering is a process not a place it's people
striving to become better engineers and
i take from that that whatever we are
doing each day we also have to
ask ourselves are we also striving to become better engineers
thank you very much and enjoy the rest of your conference