Development

Software Thinking

Existing companies must make the transition or they will be left behind in a previous era of business history.

Author

Paul Rush

I’ve been immersed in the world of software and its creation almost my entire life. From shell scripting in high school to founding Substantial - a now 12 year old digital innovation and build studio - software has been at the heart of everything I’ve done.

On reflection I realized how much the evolution of software has transformed how its creators approach the world and build organizations. The purpose of this article is to collect and lay a foundation for a movement that has been 20 years in the making and describe why it’s so important.

Software has indeed “eaten the world,” but it’s done far more than that. It’s changed how the world works. And there’s no going back. This is a one-way process. Existing companies must make the transition or they will be left behind in a previous era of business history. Learn to think in software.

source: https://www.youtube.com/watch?v=fobx4wIS6W0

20 years later, this is what that same graph looks like:

In 1998, one company in the top ten was a software company. Today, seven of the top ten companies are software companies.

In 1998, one company in the top ten was a software company. Today, seven of the top ten companies are software companies.

This is a tremendous shift in value creation, quite possibly the largest in contemporary history. And this begs the question, what is it about software companies that is so value generating?

Shipping Product / 20 Years Ago and Today

20 years ago, as I was first getting involved with software development, all of our work product was shipped on disks and CDs. More or less the exact same production process from every other product in the world. You built a product, you shipped it and that was that.

What software looked like 20 years ago

Today, in the world of software, this process is upside down. Software processes, methodologies, and tools have freed us from the constraints of production systems of the old world. We operate and think differently than everyone else. We change our products and services while they rest in users’ hands, we do more development on products post-launch than pre-launch, and the boundaries of what a product is have greatly expanded. Indeed, calling software a product may no longer be a useful description.

This shift in thinking, and the accompanying organizational changes to support this mindset, is what I believe is responsible for the value creation shown above and will eventually be the dominant mode of thinking in the world for organizations, businesses, and governments.

This is a one-way shift that will delineate eras in business thinking.

I call this modern mindset Software Thinking - the principles, concepts and business patterns that are behind the world's most value generating organizations. This mindset isn’t about software, per se. It’s not about applying or using or creating software. It’s about the possibilities software open up and how that changes how you think about the world and how you can approach problems. This mindset can be applied to many if not most aspects of organizational work - marketing, brand, research & development - as well as product.

It already happened, Software has eaten the world

Why should you care? Put simply, studying, understanding, and practicing Software Thinking gives you superpowers. It allows you to build faster, take well calculated risks, get better results, and run circles around those who haven't adopted this mindset. It offers tremendous distinct competitive advantage.

This mindset is being applied to every industry. As Marc Andressen pointed out in his 2011 essay 'Why Software Is Eating The World', software has reached into every aspect of our lives and our businesses. Similarly, Software Thinking is eating the organizational mind of all business sectors and applications, without exception. With creative effort this mindset can be used to create competitive advantage anywhere.

Software Thinking Is Not Just for Technology Companies

This is clearly evident in the modern Silicon Valley startup landscape. The newer crop of startups are no longer really “tech” companies at all. Older guard companies like Google, Apple, and Intel are certainly what we would call pure tech, but you’d be hard pressed to find many well recognized tech industry companies started after 2000. Consider this list:

All of the above companies have been challenger companies to established industries and have quickly gone from small startups to major players. Opportunistic entrepreneurs realize they have a distinct competitive advantage in utilizing the new approach and tools that pre-digital companies don’t know how to take advantage of.

This means two things:

  • New companies using Software Thinking are coming after every industry and sector imaginable (including yours).
  • Any industry can benefit from a Software Thinking approach.

And really, this is encouraging news for all companies, established or new. These principles, practices, and tools are out in the open and clearly documented. Anyone can adopt a Software Thinking mindset to thrive in today’s market. It’s a matter of doing the work to change perspective and start employing a new approach.

What is Software Thinking?

Software Thinking is a shift in both product thinking and organizational thinking. Outlined below as a set of Principles, Concepts, and Patterns. It is an attempt to capture the perspective and behaviors of software product organizations and developers - the most valuable companies in the world and how they do what they do.

In Practice

From the Software Thinking perspective products can be changed in real time. Amazon deploys new code to production - changes to their products - 90 times per minute. That's roughly 129,600 updates to their products every day. These changes are typically small and incremental but represent a constant evolution and ability to adapt to changing user needs in a fluid manner unthinkable in previous decades.

Using Software Thinking, shipping a product is typically just the start of its productive life. Products are never finished and continue to grow in value over time with steady investment. We talk about launching a product in similar ways to giving birth - products are expected to evolve and grow over time. At Substantial we have estimated that on average we write 3-5x the amount of code after a product initially launches. At Google, it would be hard to get an accurate read, but it would be easy to predict that just the Google Search engine has had 1000s of times more code written after launch.

Using the Software Thinking lens we learn that everything can be tested. The mobile gaming industry represents a great example of this in practice. Leading companies like Zynga and Tencent all use a similar product development process that is highly experimental and create optionality through cheap experiments. Their process is roughly as follows:

  • Brainstorm a game concept
  • Build a cheap prototype ($50-500k)
  • Launch it in a small market (Australia, Canada, Philippines, etc.) without branding
  • Buy users and observe their behavior (testing for core game loop strength)
  • If it does not perform well, throw it out. If it does, promote it for further investment.
  • Repeat

These organizations spend $10s of millions on prototypes that they throw away to find products that can easily reach $1 billion / year in revenue or more. They know that their businesses are hit-driven (1 in 100 games succeed, similar to movies and music) and they have tightened the loop (reduced cycle time as much as possible) through the discovery process to search for hits more efficiently. Here are the results.

In just 10 years The Mobile Gaming Industry has gone from zero to over half the revenue of the gaming industry. Of course, the rest of the gaming industry is now catching up releasing games that use the same development methods that are so effective.

The first mainstream console gaming system - Atari 2600 - was released in 1977. The first modern ‘smart’ mobile device - Apple iPhone - was released in 2007. From the above chart we can see that in 2015 mobile gaming reached the same market size as pc and console games (and is already eclipsing those industries). It took the mobile games 8 years to do what the console game did in roughly 38 years. The mobile games industry had some advantages (e.g. unit sales) but also pioneered the use of Software Thinking techniques that the PC & Console makers are now scrambling to deploy.

Let's zoom out and look at the bigger picture briefly.

Software Thinking Redefines Product and Customer Experience

Consider the journey a customer takes when flying today on an airline. The experience begins with a visit to a website. Post-purchase the experience continues on email and then continues for many on a mobile device during check in. A kiosk or a mobile devices guides a user through the airport. And ONLY THEN does a customer interact with what was formerly considered an airline’s product experience, the flight. Of course inflight entertainment and subsequent marketing emails offer continued interaction and extend into the post purchase experience and hopefully back to the start again.

The same thinking, the same tools and approaches that are used in software driven product development can be applied to every moment of your customer’s journey. The web site, mobile app, marketing emails and even the in flight experience can be measured, experimented on, tested and updated fluidly.

Customers today are not forming brand relationships in an old world, static, one-to-many fashion (advertising, tv, etc). Instead they are forming a one-to-one relationship while interacting with every aspect of your product and company.

Most touchpoints with your customer can be made to be interactive, measurable and testable. Every interaction forms a relationship with the brand.

Using a Software Thinking perspective we understand that Brand, Marketing and your product service all must be driven by the same kind of thinking. This can either be a redefinition of what product is (broadening the start and end of the product interaction) or a prioritization of centralizing an organization’s thinking around a dynamic interactive measurable customer experience.

Selling Eyeglasses Online / Physical Digital Retail

Warby Parker - one of the first digital -> physical retailers, sells eyeglasses direct to consumer. Warby has done a fantastic job of using software to merge marketing, brand, and product into one seamless customer experience.

At Warby, when you sign up for a fitting online your customer information is available directly to the greeters at the store in moments as you enter and check in. Then when you make a purchase, you get an email that helps keep you aware of the ordering process, which is also available online. It's an effortless and delightful process that can only happen when customer data is centralized and when product and marketing are treated as part of the same system.

They accomplished this by building the business as one deeply connected piece of software that shares data effortlessly across business functions (we call this the Organizational Operating System). The system is the same no matter what part of the business you are interacting with - all user data is available to marketing and physical retail and online.

This is a core business design pattern that the vast majority of Silicon Valley startups use. But it's not exclusive to modern startups. We spoke with a large real estate management company that built software from the ground up to run their company and they've unlocked tremendous growth potential from the streamlined process they built.

The Core Experimentation Loop

20 years ago running experiments was costly. Prototyping required physical manufacturing, getting products into the hands of customers required time and physical proximity, and once products were in the wild, it was difficult to track what happened to them. Data collecting was a manual process, storage was cumbersome and analysis was time consuming. Software development changed all of this and with it came a new approach for testing ideas.

Today one can run 1000 times the number of experiments they could 20 years ago for the same price and in a fraction of the time. Once you understand this, it is almost irresponsible not to incorporate more experiments into relevant aspects of your organization.

For Software Thinking organizations, experimentation is an integral part of creating business value.

Our success at Amazon is a function of how many experiments we do per year, per month, per week, per day.
Jeff Bezos : founder, CEO, and president / Amazon

Companies are often challenged by experimentation because experimentation and failure go hand in hand. Most experiments have setbacks and missteps and traditional corporate structures are allergic to this kind of failure.

Software Thinking companies embrace experimentation as a healthy learning process rather than a series of failures. When incorporated properly the failures encountered during experiments can be immensely valuable in driving decision-making as well as further experimentation. When implemented properly, the core experimentation loop continually refines which direction to take and (more importantly) which one to avoid.

Inexpensive experiments allow organizations to place many bets which allows more ideas to be evaluated and helps inform which bigger bets to invest in. This allows organizations to take an investment approach to find ‘hits’ that provide high return.

“Big winners pay for so many experiments,” says Bezos.

Experiments can be used to create learning about product viability, market positioning, customer engagement and future investment opportunities. Ultimately this process builds informed confidence about where to spend time and energy and provides a great rate of return on investment.

Radio Flyer, the venerable toy company, known and loved for their Radio Flyer Wagon, faced an existential crisis when production costs and the changing market forced them to update and modernize their business. One of the key steps they took was to create an experimental product pipeline that allows them to rapidly explore market demand for products that will generate good sales.

"Cross figures there were 500 concepts developed in the Radio Flyer prototype shop last year alone; of those ideas, only 50 made it to an actual prototype-building stage; and of those, maybe 15 were presented to retailers in the fall; and of those, maybe 12 became toys that were sold in stores."

To Schlegel put it bluntly - “Most of what we do fails.”

But the success has been tremendous. When Pasin, Flyer's CWO (Radio Flyer's equivalent of a CEO) took over and modernized the company he was able to not only save the company but bring it to levels of success unheard of in its history.

Software Thinking Defined

Software Thinking isn't about one particular concept but rather how so many of these ideas - many of which have existed for quite some time - combined with the dynamic and flexible power of software to powerful effect.

Principles

  • Minimize assumptions. Because now you can. Instead of assuming what your customers want, find out using a myriad of software enabled tools. Identify key assumptions and validate or invalidate them through cheap trials. This could also be called Test with Real Users.
  • Minimize time to feedback. Due to the instantaneous nature of software you get results faster. Create a result time scale for feedback, then half it and go build it.
  • Everything can be tested. Everything can be tested with enough creativity.
  • Use data wisely. All data is not created equal. Focus efforts on data that is actionable for decision making.
  • Place many bets. Create optionality by testing more ideas cheaper and faster. Create optionality through cheap experiments.
  • Launch sooner. The ultimate test of your ideas is the fully realized product in users hands. Instead of fine tuning, perfecting and honing a customer experience, release and be ready to move quickly to respond to feedback. Or release to a segment of your audience, something only software lets you do.
  • Learn by doing. The best way to learn is by trying out ideas, not reading a book or taking a class (those are useful but not informative). This whole methodology is about moving closer to the real world as fast as possible.
  • Continuous improvement. The most important part of the Lean / Agile movement; systems can and should be updated at high frequency to improve performance.
  • Leverage reusable components, modularity, and interfaces. Do not repeat work that has been done before, create modular business systems that can act independently.
  • Give people autonomy. Due to the creative nature of this work, the best teams work in a small focused autonomous cross functional fashion.
  • Embrace examined failure. When you place bets, prototype, test and experiment, failure is directly on the path to success. Organizations that lose their ability to accept failure we will lose out. Failure is not something to avoid, it’s something to learn from.

Concepts and Patterns

  • Collapse Brand, Marketing and Product. These groups serve the experience of your customers.
  • Experimentation core loop. This is a core pattern that allows disciplined and regular experimentation to improve key aspects of product and business performance.
  • Organizational OS. Running the business on process and tools that allow for fluid and fast interaction between internal organizations and utilize a single source of truth.
  • Automating Build Test and Release aka Devops. Using tools to automate deployment in order to release software faster and more reliably.
  • Leverage AI & ML - Insert the data collection <> model training loop wherever you can to gain efficiency and increase yield. Frees decision making strength for other areas.
  • Small cross functional autonomous teams with responsibility instead of large centralized efforts.

Adopting Software Thinking

Software Thinking is universally available to all companies and organizations, established or new. The practices and tools are out in the open and well documented. Anyone can adopt a Software Thinking mindset to thrive in today’s market.

For those of you who have been working in a digital native environment, you know how to leverage software and to maintain your edge by studying and updating ideas about how the landscape is continually evolving. For non digitally native companies, however, this can be extremely challenging

A big part of the problem for these organizations is, the approach non digital natives has been sold is plain wrong. The ubiquitous term ‘Digital Transformation’ and the consulting firms that claim to be able to help, fail over and over again because a) they often don’t have staff who have participated in actually building and running digital organizations and b) often they are really just trying to sell expensive software. The approach of throwing software at the problem is destined to fail because it’s like giving someone who barely knows how to swim a bathing suit and telling them to get back to shore.

Digital Transformation implies that the process has an end state, that a company will become “transformed”. This is a deeply flawed framing of the problem. Partially because it implies that building tools gets you to that end state. But more importantly - if you haven’t noticed - the world is continuing to change at an unbelievably rapid pace. And software is leading that change. There is no end state to be achieved but rather a different frame to approach challenges with.

Adopting Software Thinking is not a technology challenge, it’s a cultural challenge and a challenge of organizational change. People are the key, technology is the tool.

The term Software Thinking gets to the heart of the work to be done in a way that Digital Transformation can’t. This is not a process to complete or a tool to install, it’s a shift in thinking and best practices and behaviors that change organizational behavior. Without the cultural change, no software platform or technology will create material impact for a business.

If people lack the right mindset to change and the current organizational practices are flawed, Digital Transformation will simply magnify those flaws.
Harvard Business Review : Digital Transformation is not About Technology

How then to these companies make progress? From experience working with various companies at Substantial I have a few thoughts to share.

Get help from those with real experience.

Find people who have been there and done it before, people who have been leaders in product, marketing and technology from digital native environments and get their help. This isn’t about replacing your team - they know your business and industry better than anyone - it’s about getting help to practice shifting their mindset, giving them guidance and empowering them to think differently.

From what we’ve seen at Substantial, after helping hundreds of companies launch products, most teams can be greatly improved in function after being exposed to a best practices and new ways of thinking.

Learn by doing.

The best way to learn these skills is to practice them. Instead of making big plans and executing great overarching strategies, jump in and start.

The best way for developers to make progress is to download a toolkit and start messing around. Adopt this philosophy. In keeping with the ‘Launch sooner’ philosophy - getting your feet wet sooner makes all the difference. Hold standups. Do design sprints. Start running experiments. I will be publishing a forthcoming resource guide soon. You can sign up below to receive updates.

What's next?

This is just the beginning of capturing the approach of organizations that are using software to excel. Expect more resources and tools.

For those who are excited about the idea of Software Thinking and want to contribute / discuss the ideas, please feel free to get in touch.

For those who want to build this capability and adopt Software Thinking, Substantial can help. Our innovation offering provides services and tools to help organizations learn and implement the mindset.

We can help you:

  • Understand how far along you are in your journey and where to go next
  • Build and deploy process for programmatic experimentation
  • Design and build an Organizational OS
  • Solve organizational challenges involving digital practices
  • Level up your teams by working alongside people who have been there before

If any of the above is relevant to you, please get in touch.

The ever evolving landscape

It will be interesting to see how things unfold. New digitally native Software Thinkers will enter the market, some pre-digital companies will learn the mindset and thrive. The rest of the companies - maybe the majority? - will fall hopelessly behind and slowly fade into obscurity, becoming a footnote in pre-digital history.

One thing is for certain - the landscape will continue to evolve as the tools we create shape how we think, how we create and how we organize in a feedback loop that will propel itself in one direction, forward. The Software Thinking age has begun.

Tags:

Let’s build a better future, together.