biles have not been replaced by web-
sites, what makes auto companies
succeed is increasingly a result of
their software acumen. Their supply
chain, manufacturing, marketing,
and sales processes are controlled by
software. The typical car has 10–100
million lines of code in it. The major-
ity of what differentiates car models
comes from software-powered fea-
tures such as the dashboard and au-
dio system. Everything I love about
my new car is software; everything
I dislike is software that could have
I recently purchased a very low-tech
refrigerator. As far as I can tell, it has
zero software inside of it. Not long af-
ter the purchase, however, I received
an email offering a water-filter-replace-
ment subscription. That system is en-
tirely software driven. Considering the
high price of the subscription filters, I
presume they are responsible for more
profit than the original purchase.
If you don’t control what makes
your product valuable, then you are not
much of a company. Therefore, execu-
tives and managers must now under-
stand the software-delivery lifecycle.
Both Stack Overflow Talent and
LinkedIn now list more software
engineering job advertisements for
nontechnical companies than the
tech industry itself. 11 This is a major
shift in the economy and indicates
that companies are ramping up their
Here are my top 10 things I believe all
executives and managers must know
1. Software is not magic.
Often it looks like magic, or is magical, but it isn’t magic. Every element
was designed by a human and has its
basis in math or a process that can be
explained in human words.
Unlike magic, software isn’t con-
jured out of thin air. It needs to be
designed, built, and operated. Just
as a house has layers of systems that
work together (foundation, structure,
plumbing, rooms, furniture, and so
on), software has layers and subsys-
tems that create the whole. It can be de-
signed well or badly, and a fast design
is rarely a lasting one.
If you cannot describe in words
what it will do (both the desired outcome and how it can get there), then
a computer cannot do it. The “how” is
called an algorithm and is not magic.
A Web search for pictures of chairs
doesn’t actually show pictures of
chairs. It shows images that frequently
appear on Web pages that mention the
word chairs. The difference is subtle,
and it took years for someone to think
of that trick and perfect the technique.
Yet, it isn’t magic.
Your email system’s spam detection
looks pretty magical, but it is not magic.
Bayesian statistics and other mathematical models work under the hood
to achieve the behavior you see.
Autocorrect feels magical (try turning it off for a day), but the best autocorrect systems process trillions of
data points from the past to create a
database of precomputed autocorrec-tions to use in the future.
Machine learning (ML) and other AI
techniques are not magic. ML is prediction based on data, instead of explicit
rules or instructions. It is monkey-see-monkey-do using linear algebra. An ML
system is trained by showing it millions
of pictures with bananas, then million
of pictures without bananas. Now, if
you show it a picture it will tell you if
it looks like the first or second group.
Not magic. ML is enormously useful
across many domains, but sometimes
it can act like The Sorcerer’s Apprentice.
For example, using ML to sort resumes
based on past hiring decisions can amplify a racist hiring history, even without any intended bias. 2
2. Software is never “done.”
Software is an iterative process with
many revisions and updates shipping
over its lifetime. Your job is to create an
environment that recognizes this.
Likewise, we never expected marketing and customer acquisition to
be “done.” They too are iterative processes. We learn and grow with each iteration as we continue to deliver value
to the business. We don’t ever plan to
“stop” doing any of those things, even
once we find something that is a successful launch.
It would be nice if software could
be finished in one release, but that is
not reality. Requirement documents
are full of ambiguity. The first release
of software is full of “oh, that’s what I
wrote but it wasn’t what I meant” moments. The best software inspires new
ideas and new features. Seeing that
the new sales-management system is
more efficient inspires even more ef-ficiencies. If you don’t plan on future
releases that will incorporate the best
ideas of your employees, you have
built a system that just solves yesterday’s problems. The world changes,
your competitors offer new features,
people have new ideas. There are always bugs to be fixed—maybe in your