Everything you shipped this year
ran somewhere you can log into.
If it misbehaved at four in the morning
you could open a terminal
and be inside it
before you were properly awake.
That has been true
for your whole career,
and you have never once
called it a luxury.
More of what you write next
will not have that.
A unit in a van.
A meter in a basement
with a lock and a landlord.
A till in a shop
that connects for an hour a day.
A board inside a machine
on a factory floor
where a laptop is not allowed.
A sensor in a wall
that has to keep working
for fifteen years.
This is not a niche
getting slightly larger.
It is where the remaining problems are,
because the cheap problems
in the places you can reach
have mostly been solved.
The physical world
has no deploy button.
Distance stops being
a network property
and becomes a logistics one,
measured in a route,
a van, and a person
who is not you.
Which reorders everything.
The first feature
is no longer the feature.
It is how this thing
takes a new version.
Unattended.
Over a link that drops.
On a half charge.
Safely enough that a failed update
leaves something alive
to try again.
The second is how it behaves
for six months
with no instruction from you,
because that is the normal case,
not the outage.
The third is how you learn
anything is wrong
from a device
that cannot phone home.
And the code you write
in an ordinary afternoon
stops being provisional.
A version you cannot replace
is a decision you cannot revise,
and you will want to revise it,
because you always do.
So start now,
while you can still reach everything.
Before you write a line
for anything that leaves the building,
write down how it gets fixed.
If you cannot answer that,
you have not designed it.
You have only described
what it does
on the day it works.
– Serguey Asael Shinder
Top comments (0)