ministic) Mealy machine.
7 This is a
finite-state machine where the next
output value and the next state are determined by the current state and the
current input (Figure 4). The Mealy
machine view emphasizes an organization’s “corporate memory” and posits that decisions on the current input
may be influenced by a state that has
been accumulated over many iterations using past inputs and outputs.
At a meta level, however, the environment in which the enterprise operates
will also change over time; hence, the
corporate memory needs to be “reset”
occasionally since it is not tracking
relevant inputs anymore.
As a concrete example, take Microsoft, which since 1975 has accumulated an impressive corporate memory
of shipping boxed products. While the
world was craving boxed software, the
Microsoft machine was able to optimize the output to generate spectacular profits. The environment changed,
however, and began demanding cloud
services, and suddenly the knowledge
of optimizing for boxed software became an impediment for growth. Microsoft has had to lay off thousands of
people recently to “forget” the past and
change to a “cloud first” direction.
Every company should have a “10th
man” (“When nine people agree on
something, it’s the tenth man’s responsibility to disagree no matter how
improbable the idea”)
6 or devil’s advocate who injects a certain amount
of randomness and chaos into the
process. This prevents falling into the
trap of getting stuck in a local optimum, or worse, making wrong decisions because changes in customer
preferences were ignored and nobody
dared to point out that the emperor
had no clothes.
The People Side of
the Responsive Enterprise
From a people’s perspective, running
a company powered by software is totally different from running a traditional enterprise. Once a company realizes the road to success is to accept
that a responsive enterprise is powered by software, it must apply open-loop feedback control to make the
engine run smooth, and, moreover,
it must deeply embrace developers as
the engine for growth.
performance every quarter, making it
difficult to adjust quickly to changes
in the environment. In contrast, Facebook ships new versions of its product
multiple times a day, with enhancements and fixes determined by real-time feedback from actual use of the
website. Companies such as Amazon
and Booking.com continuously perform A/B testing or multi-armed bandit experiments on users to optimize
purchase rates on their sites.
Amazon even makes its A/B testing technology available to third-party
developers for free (https://developer.
-testing). The same holds for other
companies such as Facebook and Netflix, which make most of their internal
software available as open source.
Continuous delivery and A/B or
multi-armed bandit testing not only
require new products to be rolled out
quickly, but also mean that wrong decisions can be rolled back quickly. Accepting that decisions can be wrong,
and acknowledging them, requires
courage that traditional risk-averse enterprises tend to eliminate by introducing process.
Responsive enterprises accept that
failures will always happen and guard
themselves from cascading failures by
purposefully causing failures. Just the
thought of creating a deliberate failure
to make a system more robust against
failure immediately sends many traditional middle managers over the edge.
At Netflix, however, it is common prac-
tice to “let an army of monkeys loose”
in the data center to pull out virtual
cables and wreak havoc. Many agile
development methods propose writ-
ing tests before writing code. It is im-
possible, however, to faithfully model
the complexities of the environment
in which deployed code runs in the test
environment. Instead, software ap-
plication failures should be treated as
any other failures, deploying code in
production immediately and rolling it
back when problems occur.
Elementary psychology teaches us
that in order for humans to learn (that
is, improve), feedback about their actions must be immediate. Smokers
keep smoking because lighting up
gives them immediate satisfaction,
but the feedback effect of lung disease comes years later. Developers
are humans, too, and, hence, can be
stimulated to write better software by
providing them immediate and physical feedback about the quality of their
code. Companies can implement this
feedback loop by making developers
wear pagers that wake them up in the
middle of the night in case problems
arise and by making them responsible
for the “whole stack” (also known as
the DevOps model). Decoupling the
development process from the operations side removes a valuable (
recursive) feedback loop in the system and
thus reduces the responsiveness of the
system as a whole.
Another way of viewing a
closed-loop system is as a (nondeter-
Table 1. Five fastest-growing companies.
Facebook 118.80% 2004
Apple 55.90% 1976
Intel 48.50% 1968
Gilead Sciences 47.60% 1987
Microsoft 41.80% 1975
Table 2. Bottom five companies that lost market capitalization.
GlaxoSmithKline 6.30% 1900 (mergers)
Citigroup 5.00% 1812
Philip Morris 4.90% 1900
Sanofi 4.30% 1973 (mergers)
Wal Mart Stores 2.60% 1962