The Software Infinity: how to be eternally optimistic

The Baseline
The Baseline Blog
Published in
7 min readFeb 26, 2017

There is an infinite amount of software to be written, and a significant amount of it is commercially viable. We have not “solved” software, and the uses and demands on software are only increasing.

This is exciting and inspiring. It means there is always things to be done.

The world is never done

Where is all the missing software?

Why is integration still complex? Why is security still reliant on good setup of servers? Why do companies evaluate 3–5 systems each time they buy… Why isn’t there software to help you evaluate? Why are my medical records not available to me, in detail, via an app? And so on and so on…

The fact is that the world is never “done”. There are always new things to be made, be they music, film, books, apps, articles, food or whatever.

Where is all the missing software?

And yet… when teams sit down to think about what could or should be built, they are paralysed by looking at the wealth of software out there and the streams of updates. How could I ever compete?

If what’s out there already doesn’t make you feel lost and unable to contribute, consider the fact that what you see out there is the tip of the iceberg. Ever product you see has teams working on updates for tomorrow, next week, next month and next year. And you’ll never know what all those new products and features will be until they’re done.

The software machine is churning out more software than ever. Your job is to come up with a new product in that melee.

Go!

What shall we build?

Blank pieces of paper are terrifying. Daily work can be stultify. These are a recipe for “non-decision decisions”:

  • There are too many options. Let’s wait until a clear direction emerges. (It never will.)
  • Let’s wait for inspiration! (Inspiration comes through working at it, and sometimes it never comes, the great idea just emerges. (“Amateurs look for inspiration; the rest of us just get up and go to work.” Chuck Close)
  • We can’t do that. (People just out of university build great things because they don’t spend time thinking about what they can’t do.)
  • When these projects are done… (Life’s projects are never done. Life will keep you busy until you die. (Why you will fail to have a great career, Larry Smith)
  • If we do this, maybe someone will notice us. (You have to create your own luck, and your own noise.)

These, and all the related non-decision decisions are in my list of totally useless conversation. As soon as the conversation turns to these dead ends, I either turn it around or leave the conversation. They are the same as the tedious family conversations which comment on the “way things are”.

Why? Because they give you reasons not to try, and reasons why you’ll fail. Or reasons why there’s nothing to be done.

But there’s loads to be done and if you start with that assumption your focus will be on solving something truly worthwhile.

But it’s hard to be convinced, so let’s give some grounding to this mantra: there is lots to be done.

The scientific view: The Beginning of infinity

The book, The Beginning of Infinity is certainly not an easy read, but it’s a hugely satisfying one.

“In our search for truth, how far have we advanced?”

From this simple questions, the physicist David Deutsch makes us examine the nature of knowledge and the quest for understanding. He expands from physics to look at implications in all areas of life. It’s a thrilling book when the implications sink in: we really are at the beginning of infinity.

As a species, we have created explanations which travel far into the wider universe, into the past and into the future. This, so far as we know, uniquely human trait has given us physical and mental tools to understand, predict and build a huge amount.

But even though the world looks “done”, we are at the beginning of infinity. Since the enlightenment and the emergence of the scientific method we have understood and built more than was understood and built in the proceeding human time before it. But there is still much we don’t understand.

That’s true of physics, biology, chemistry. Of the human mind. Of how machines work. Of how populations work. Of how society should work.

All these things to solve, which we’re working on now because that’s what we do as humans: understand, play, predict, build.

What does that mean for software?

If we have to solve all these problems, software is going to have to be there to help it happen. To build models, to link systems, to share information, to analyse data. To bring people together. To allocate resources, to understand people’s needs. There really is no end to what needs to be built. Ever.

If you imagine a line stretching past the horizon in both directions. You are at one point on the line, looking along the line. Behind you is everything which has been built: Facebook, Intel, Vacuum tubes, object oriented programming, CSS, GPRS.

In front of you is everything which is going to be built. Some of the things behind you appear in front, but not that much. You won’t get to see past the end of the horizon (unless human longevity is solved soon), but there’s still a line which is mostly empty in front of you.

There are things to be done.

The software view: all unix commands in the cloud

The “all unix commands in the cloud” philosophy. Understanding it.

A number of clever people have noticed that the tools which were created in the early days of unix were then recreated on the web.

“grep” is the tool which search through files. This is google.

“rsync” which syncronises files from one machine to another is Dropbox.

“finger” which allows you to find information about computer users is either Facebook, twitter, Linked In or another social network.

And so it goes on.

This tells us that there are basic human needs when working with information, computers and networks. Some of the basic human needs were transported from the real world into computers: files, directories, users. Others were created for the unix and early computing environments from scratch.

These tools were created by people who used and built for the environment.

When we moved to the web, we needed similar tools and so those got created and augmented. But the wonderful thing about networks for computers is that every time someone solves one problem they create a plethora more. There is no such thing as “done”.

In the same way as we have translated unix commands to the web, we will have to translate other features from the web to mobile, to IoT and beyond. Every time we solve a problem we create a new aspect of the network and that creates more questions.

There are things to be done.

The software view 2: when we realised what had to be built

Marc Andreesen, famed for being the creator of the Netscape browser and now an outspoken VC, once said that when he arrived in silicon valley it felt like everything had been done. The PC had been invented. People had reasonably large disks. They had Word Processors.

But then: the internet.

When they realised what would happen _if_ the internet connected all machines, the implications and the things to be done became obvious. When they realised what had to be built, the world turns from “done” to “things to be done”.

They had to build directories, communication tools, security, payments, document storage, encryption, monitoring. They had to build all the software tools to make all that happen. And then the software engineers had to be created to use the tools.

And now, nearly 23 years after Netscape was founded we still have problems. The web still isn’t “done”.

Throughout the process, we have bundled and unbundled features based on technical needs but also trends. Platforms have been created and supplant. Every time, new needs are created.

This optimism also comes through in a quote from Marc Andreesen:

I have another theory that I call the missing campus puzzle. When you drive down highway 101 through Silicon Valley, you pass the Oracle campus and then the Google campus and then the Cisco campus. And some people think, wow, they’re so big. But what I think is, I’ve been driving for close to an hour — why haven’t I passed a hundred more campuses? Why is there all this open space?

Missing software. There are things to be done.

The nihilist view: everything has been done

Rubbish.

There are things to be done.

Now, go and build something.

At http://thebaseline.co, we write software but we also try to understand the industry and where it’s heading.

Head over to http://thebaseline.co to see more of what we do. Subscribe to our upcoming podcast https://thebaseline.co/podcast/.

via https://www.flickr.com/photos/mabi/38307124/

If you got this far and like what you read, please like and share! Thanks!

--

--

The Baseline
The Baseline Blog

Where I help tech people think differently about the opportunities and effects of new technologies — See https://thebaseline.co. Follow me: twitter.com/danfrost