The scent of software
A couple of months ago I gave an impromptu talk at Lost My Name about how to detect the ‘scent of software’.
The photo below is the whiteboard I used to share the thinking at the time.
I think being able to detect the scent of software, or, more precisely, when writing (or buying) software is a good idea, is a key skill for anyone working in any industry today.
Tie this to an ability to write, design or manage the subsequent software creation process and you’re on the way to ensuring you’re never out of a job, and, hopefully, never bored.
In this post I explain why this is the case, and then add a few notes on how to start sniffing out hidden software opportunities.
Software that is used is evidence of learning
Lost My Name might seem like a publishing company on the outside, but it’s really a software business. We manage our books like software products. We sell our books using software. We market to customers using software. We help our customers using software. We analyse our business using software. Software is essentially everywhere in our business.
I think this is great.
The reason I think this is great is not just because I enjoy the logical elegance of encoded processes. It’s because encoded processes that are being run— aka software that is being used — represents real learning.
If you understand something enough to make a piece of software that encodes and automates it, and other people (or systems) use it, it means you’ve understood something very thoroughly.
I’d go as far as to suggest that because of this, everyone working in an innovative business should really have one main rule that they are working towards:
Rule #1 — Replace yourself with software
This is a simple way to ensure three useful things are always happening:
- You are always learning about new things
- The learning is being encoded in a way that lets others benefit from it easily and quickly
- The stuff you are learning about is valuable enough to warrant encoding and maintaining
It does take quite a lot of confidence to embrace this rule as you have to be confident you can always keep learning. And it seems weird at first.
Historically people built value for themselves in a business by hoarding information, controlling access to specialist skills, creating information asymmetry.
But that’s the old way, surely.
In my opinion, now we have an overabundance of information and much more transparency within firms, the people that create the most value in innovative businesses are the ones that filter and interpret information fastest.
The ultimate expression of effective information filtering and interpretation is being able to encode what you’ve learnt in software so that colleagues and customers get things done quicker and better themselves too.
People who do this repeatedly are clearly onto something.
This leads me to an important second rule:
Rule #2 — Keep replacing yourself with software
Obviously if you just did Rule #1 you’d be out of a job!
But if you keep replacing yourself with software, over and over again, it implies you are doing a good job of pushing things forward and learning new things about your market, your skills, your suppliers, your colleagues and your customers.
Which, in my opinion is a good thing, because learning is fun.
Ok, so if you buy this, the obvious question is, how do you know which bits of your work you should try and replace with software?
What is software?
In my opinion software is more or less four things.
- Scripts — automated procedures that take inputs and produce outputs
- Databases — stores of data that can be queried
- CRUD — short for ‘Create, Read, Update, Delete’, but basically an interface layer for humans (or other software) that allows them to change the data in a database or make other scripts run
- API’s and cloud services — basically other people’s Scripts, Databases and CRUD commands available to you, or your software, via the web
I’m sure this is far too simple, but it helps simplify the hunt for the scent of software.
What can software do better than you?
When you are looking for ways to replace yourself with software productively, I think there’s two simple things to watch out for and a simple action to take.
- Is there something you do the same regularly? If so, capture it as a script and let the computer do the work for you.
- Is there data that you store in spreadsheets and crude file systems that you and others update and manage all the time? If so, stick it in a database and put some CRUD on it so everyone can interact with it more easily.
That’s basically it.
There’s one more thing that relates to the fourth bit of software — API’s and cloud services.
Before you write any custom software, you should obviously always have a look around and see if someone else has solved this problem for you already!
Someone probably has, but possibly not quite in the way you would like. In my experience, the more innovative the thing you are doing, the less likely it is that someone has solved your problem really well.
Basically, don’t be stupid and write your own custom helpdesk software.
Software is your responsibility
This has been a pretty rapid run through some potentially pretty big and complicated things. Obviously it’s not by any means as simple as this. It felt more coherent when I gave the talk in person!
I guess what I’m getting at is that creating software, and finding opportunities for software, can (and should) be everyone’s job.
He basically summed up all the above much better than me when he explained his secret system for creating digital products (aka software) people want:
- Map out the steps people take to do something
- Reduce the number of steps