Many companies respond to digital competition by embracing methodologies like agile, building “innovation centers,” acquiring startups, or outsourcing app development to consulting firms. But the true disruptors know that in the digital economy, whoever builds the best software wins. Companies that want to compete need to empower their developers and adopt a “software mindset”: Assign problems to your team, rather than tasks; run a lot of experiments — and tolerate failures; become obsessed with speed; and keep your developers close to your customers.
Fifteen years ago, when I worked as a product manager at Amazon, Jeff Bezos declared at an all-hands meeting that Amazon was not a retailer — it was a software company.
“Our business is not what’s in the brown boxes. It’s the software that sends the brown boxes on their way,” he told us. “Our ability to win is based on our ability to arrange magnetic particles on hard drives better than our competition.”
Not long afterward I left Amazon to found my own company, Twilio. But Jeff’s lesson has stuck with me ever since, especially when I visit our customers, many of whom are engaged in digital transformation. Those companies hope to emulate disruptors like Uber, Lyft, Airbnb, and Spotify, and to compete against giants like Amazon and Salesforce. But many fail to realize what Bezos knew long ago: in the digital economy, whoever builds the best software wins.
Unfortunately, many companies have never viewed software development as a core competency. They rely on packaged programs sold by independent software vendors and hire consultants to write custom code. The problem is that packaged programs are one-size-fits-all and can’t be customized very much. That might be okay for back-end systems like HR and financials, but for customer-facing parts of the business, using off-the-shelf software no longer cuts it. How can you differentiate and gain competitive advantage if you’re using the same software as everyone else? In that part of your business, your choice is no longer “build or buy.” It’s “build or die.”
That means organizations must build their own software development teams and empower developers to be creative problem-solvers. Companies can start by reskilling existing tech staff. These people are among your most valuable employees, but often are an untapped resource.
But companies also must recruit and retain top-tier software engineers. How does a non-tech company lure great developers? You must change the way you view developers. The best engineers won’t work for a company that treats them like “code monkeys” — stuck in some back office, churning out code on command. Top developers want a seat at the table. Involve engineers in strategic problem solving and decision-making. Give them a voice in shaping the future of the company, and the freedom and autonomy to be creative.
Elevating the role of developers involves a subtle (or sometimes not so subtle) shift of power and sometimes invites a backlash from parts of the organization that feel threatened by the rising influence of technologists. To make this work, you have to change the mindset of the entire organization. The commitment must start at the top.
An Inconvenient Truth
Incumbents often respond to digital competition by embracing methodologies like agility and putting thousands of people through training. Other common responses include building “innovation centers” separate from the parent company, acquiring startups hoping to disseminate their DNA throughout the organization, and outsourcing app development to consulting firms.
However, most firms find that after taking these popular steps, nothing has really changed — the digital disruptors are still making rapid headway because building software is just their DNA.
The good news is that it is easier to develop software today than it was a decade ago. Instead of writing apps from scratch, developers snap together microservices — small programs that each provide specific features like communications and billing. Modern developer tools and automation also speed things up.
The payoff can be profound. Building software in-house means programs can be perfectly tailored to the unique needs of your organization. Instead of begging Giant Software Co. for a new feature and then waiting months or even years to get it, you spin up a team of in-house engineers who get code into production in a matter of weeks, or even days.
For example, when Patrick Doyle became CEO of Domino’s in 2010, he determined that in a commodity business the best way to gain competitive advantage was to deliver a better customer experience. That meant having better software and great mobile apps for smartphones. Domino’s expanded its development organization 10-fold and integrated developers with marketing teams. Together they created innovative apps and features, including one that lets customers track the progress of their order from pizza oven to their front door. Great software enabled Domino’s to leap ahead of its competitors and become the biggest pizza chain in America. Since 2012 Domino’s stock price has soared to $400 from $32, outperforming Apple, Facebook, and Google over that time period.
ING, one of the world’s biggest banks, began a similar transformation when Ralph Hamers became CEO in 2013. Taking cues from tech startups, Hamers turned ING into a digital-first organization. He invested heavily in software development and encouraged software engineers to take risks and be creative, which included developing homegrown programs to replace commercial packages. In 2018 small team of ING engineers developed a bespoke program to replace an expensive packaged software system used by the bank’s customer service representatives. The in-house software outperforms the old packaged software program and costs substantially less. Best of all, ING can keep adding new features whenever it wants.
A similar dynamic is playing out at Target, U-Haul, and Allianz, the world’s largest insurer. These organizations are adopting a “software mindset,” which draws on some core principles:
Assign problems, not tasks. Traditionally, people on the business side come up with ideas and hand them to developers who are tasked with turning them into code. Instead, let developers contribute to the solution of business problems. Who knows better how to apply software to your business than people who deeply understand technology?
Tolerate failure. Experimentation is the prerequisite to innovation. Create an environment where developers run lots of small experiments and where failure is celebrated rather than punished. Run blameless post-mortems to discover why an experiment failed and what you can learn from that experience.
Become obsessed with speed. Startups push new code constantly, every day. Companies can no longer spend months developing new programs. Hunt relentlessly for ways to shave the time it takes to go from “great idea” to working production code.
Keep developers close to customers. Remove organizational barriers that separate developers from the people who actually use their software. When developers talk to customers they can deliver better, more useful features in less time.
Every organization will embrace the builder’s mindset in its own way. But these principles provide a framework for building a world-class software development organization, so you can respond faster to customer needs, adapt to a constantly changing market, and keep up with the Amazons of the world.