What future working software must look like

Let’s think about what software might look like in the future, if it is designed for the purpose of helping someone do their job better.

So it is a tool, just like a carpenter or plumber has a box of tools, an oil and gas production engineer, or building facilites manager, has a box of digital tools to help them to do different things.

In this thought experiment we are going to try to throw away any ideas about what software should look like, or how we are going to sell it, or what the IT department are comfortable with, or what the customer expects, or what Mr IT Geek believes is going to ‘disrupt’ or align with the expansion of Moore’s Law.

Put all that to one side.

Here’s my answer.

There will probably be a range of different software tools to do different jobs. Work out what is happening, analyse some data, understand things a bit better, see if a task if worth doing right now.

All of these tools might be accessible from a kind of app store, and be continuously iterated and developed.

Beneath that, there will be a robust data platform where all the data which the customer might want is gathered together.

Integration and interoperability is not going to be a headache, so we’re probably talking about data exchange, data model standards, or some kind of API exchange.

The system is probably designed for a business which works in a certain way and has done for millennia. So the core logic of the domain is modelled into the system.

And running the whole thing is pretty inexpensive. The data platform and standards, once built, don’t cost much to keep running. Development work goes into the apps on an experimental basis.

Based on some interesting presentations at the ITF Technology Showcase this week, many companies, including BP and McLaren, can see the benefit of a customer driven digital system, where the person doing the work gets a digital environment where they can get everything they need, access to all the expertise they need.

But the systems being developed by McLaren and BP are probably pretty expensive. Perhaps it can be done much more cheaply.

Above all we have to get beyond the traditional tropes of software – installing complex packages, installing what we know about, complaining about ‘users’, struggling with data integration, bamboozling people, and get to something simple and straightforward and inexpensive, just like the physical tools in your tool box.

Is this a sensible direction to be thinking about?

Industry 5.0 – using software to help with business transformation

I forget what Industry 1, 2, and 3 are, but there’s a lot of talk these days about Industry 4.0 being about sensors and the internet of things. I think industry 5.0 could be about software which helps our managers achieve business transformation.

I know it sounds dull but bear with me.

At some point, people are going to realise that sensors and the internet of things, like any technology, does not change a thing, unless it helps people do something they wanted to do already.

People wanted warm houses, gas and central heating made it easier. People wanted to travel, cars and aeroplanes made it easier. People like to interact and reflect with others, Facebook (perhaps) made it easier. Doing most things requires managing money, Fintech (sometimes) makes it easier. Warm houses, travel, interaction and money management are a major part of our lives and so these technologies have a high impact.

I am not sure where sensors and the ‘internet of things’ will lead to us being able to do something easier (which is a major part of our lives), and so I don’t think the impact of this technology on our lives will be very high.

But there is something very important which just about every organisation wants to do – and that’s to manage itself better (or have better management). Or to put this point another way, there’s barely an organisation which doesn’t want to improve its own management. The best managed organisations would agree most strongly that they need to continually improve their management. An organisation which doesn’t care about continually improving its management is perhaps not one you’d care to have much to do with.

Good managers can steer the business, and its component parts, on a good financial course. They can make sure the business does what it is supposed to do, and doesn’t do things it isn’t supposed to to.

This has been true for every organisation for the last 1000 years and will be true for the every organisation for the next 1000 years, unless you can imagine a world where our robots are so good we don’t need organisations. (If it is possible to have a world, I’m not sure I want to live in it).

But at some point, organisations will get much better at installing and developing software tools which help their managers. For example, help managers get a better situation awareness of what is going on, have good views of current and archived data (including analysed data), share stories with other managers, and see what the impact of their decisions is on the current situation, so they continually learn.

Such a world will enable our organisations to continually improve, which means doing far more with less resources, and operating at higher levels of reliability. Life for managers will be one of continuous learning and sharing with others – no anxiety or loneliness, continous enjoyable work.

We’d all like to live in a world with such organisations, we’d all like to be managers in such organisations, and it can all work in a world of constrained economics, which seems to be where we are headed.

How can we make this happen faster?

How to buy a train ticket from Gatwick Airport central to London

There are three trains – the ‘Gatwick Express’ (about £20, 30mins to Victoria), ‘Southern’ (about £12, about 35 minutes, to Victoria), and ‘Thameslink’ (about £10, 40 / 50 mins, to Blackfriars, Farringdon and St Pancras). All trains go about every 15 minutes but bigger gaps late at night or early morning when you are most likely to be travelling from an airport.

If you don’t have an ‘Oystercard’ you’ll want to queue up at a machine and buy a ticket. Your choice of train will depend on probably which train is departing next, which station you want to go to, and whether you want to spend £20, £12 or £10. Finding the right ticket on the machines isn’t easy unless you want ‘Gatwick Express’. You’ll also have to keep one eye on the board in case your chosen train leaves while you are queuing up to buy a ticket. If you have the wrong ticket for the train you get on, you’ll need to pay a penalty.

If you have an ‘Oystercard’ you don’t need a ticket, and can go through the gate and the fare will be deducted from your card. But bear in mind it will still cost £19.80 with ‘Gatwick Express’, and £14.20 or £8.10 with both Southern and Thameslink, depending on whether it is ‘peak’ or ‘non peak’. (Peak usually means when people are going to work or coming home).

So note if it is ‘peak’ and going by Thameslink, then even if you have an Oystercard, it is cheaper to buy a ticket (£10 rather than £14.20).

An extra complication is that the Southern trains and Gatwick Express trains look similar. The difference is that Southern trains stop at Clapham Junction and East Croydon, and it says ‘Southern’ on the train times electronic board. But the physical train which arrives may have Gatwick Express written on it in large letters and have a voice onboard saying it is Gatwick Express, which could cause a stress if you have a ‘Southern’ ticket. But you’ll pay £8.10 to go to Victoria on it in about 35 minutes so that’s the best bargain.

This is a ludicrously complicated and potentially stressful system which nobody has thought about as an overall system. For Europeans arriving in Gatwick and trying to figure it out: this is because the UK fell in love with free market in travel systems and thinks it is good that all the train companies compete, although the competition is a bit of a myth because the government still controls the track, the ticketing prices and quite a bit of control over the trains themselves.

I read that the UK spends as much on trains as other European countries but the difference is that the UK gets the public to make a bigger contribution for the price of getting there.

It ends up with a solution where there’s a play-off between simple and expensive (just buy a Gatwick Express ticket) or less expensive and complicated as described above. If you don’t know the system then you might just pay more than take the trouble to work it out. So we have a system which rewards the wrong sorts of behaviours and rewards people who know how to play the game. This is the kind of culture we should be getting away from.

What is technology capable of doing today?

Technology today is:

– Capable of helping people have useful and rewarding work even within a big corporation.
– Capable of letting children play online completely safely.
– Capable of supporting employment for millions of people – and helping them provide value.
– Helping us achieve high levels of safety in our working environment
– Capable of helping people learn and build an understanding of just about anything
Helping us achieve high levels of security without people feeling ostracised
– Providing tools to enable experts to reduce CO2 emissions without causing society too much pain or change.
– Reducing the risk of road accidents
– Providing the core components we need to live – water, food, energy – cheaply and reliably
– By doing all of this, keeping populations of the world largely happy and happy to elect politicians who keep things that way rather than stir it up

Yet it seems that most of the software industry seems to want to make software which replaces people, or entertains people, rather than engage people?

 

A decentralised software for managing our health services

Here’s how decentralised software might work for managing health:

First there needs to be an agreed data model. This is probably the hardest part of it. Although there are plenty of examples in industry of people agreeing on a data model. The data model needs to include all of the data which people might want to share.

If it was health data, the data model might include all of the different personal health information we might want to store. It could be our health archive (our record of problems, health issues, pregnancy, genetics, past health emergencies) and current information (needing a hip replacement, current problems, treatment underway).

As an example, yesterday I was writing about the “Pipeline Open Data Standard”, a standard way of holding data for a pipeline, including 19 different categories of data (see http://www.pods.org/pods-model/what-is-the-pods-pipeline-data-model/ )

Then there needs to be a suitable architecture where someone takes responsibility for data, suitable security / confidentiality is met.

For health, perhaps we’d all have a local organisation which would manage our data – for example our local doctor surgery. This organisation would host the data on their own servers, and take responsibility for the accuracy of it, and it could be done on a small scale (no big IT needed).

Accuracy is essential. But because the local organisation is basically chosen by us, and we have a strong incentive for our health data to be accurate, it ought to work.  (Perhaps we could update / correct our own personal health data online).

Then – and this is the clever bit – everyone else could access the data as required, subject to being authorised (probably by us as private individuals). The regional hospital can plan out its hip replacement operating room by downloading data of everyone who needs a hip replacement, looking at any special needs, and making a schedule. The same for any other non emergency services. The data can be made available in aggregate for managing health services, matching supply against demand and making predictions for the future.

The trouble with this idea – and why it would probably never work – is that big health organisations probably have an entrenched mindset that the way to get their IT done is to go to a big software company and sign a big cheque. IT managers, in health as anywhere else, have built their careers and experience in dealing with big IT companies.

And a system like this does not have anything to offer big IT companies. If they build a data model, they’ll want to make sure they have an advantage over competitors somehow in implementing it (which would destroy the whole point). There’s no need for my local surgery to contract with IBM to build their own system, a local IT company could do it just fine. And the same for all the other systems.

Meanwhile health IT has a bad reputation – particularly in the UK – because of contracts delivered to big software companies, who have built centralised systems, which haven’t delivered. (Which is not surprising if you consider that the complexity of software seems to have a logarithmic relationship to the size of it – making a national IT system centrally controlled is perhaps beyond the capability of any one company).

So this may mean it could never be built. Yet Wikipedia got built without any central control. Maybe Jimmy Wales could build something like this?

Could non centrally managed software be the business advance of the next decade?

Business software is traditionally and currently nearly always done like this. Big company buys software from big software company which promises to solve their problems. Small companies have less budget to buy it, and small software companies can’t make such large and complex products, but it is still roughly the same thing.

What if the future is something completely different – with multiple software tools, platforms, data exchange platforms, robust information security, all linked together to achieve the same thing?

Here’s two business examples I’ve looked at – offshore oil and gas drilling, and refugees in Greece.

 

In OFFSHORE OIL AND GAS DRILLING – there has been a dream for decades that you’d have multiple service providers on the drilling rig, operating different sensors and devices, all generating data, which they then send in real time (using a standard data exchange system) to various experts working in different offices around the world. The experts would go through the data and spot problems about to occur, or even problems currently occuring, and help improve the efficiency of the overall operation.

What happens is a long way from this. We hear that the different service providers on offshore drilling rigs can’t even synchronise their clocks (so one stream of real time data might be 10 seconds ahead of another one). Drilling is actually getting slower, due to longer delays (known as ‘non productive time’) which means the cost of an offshore well has grown from $13m to $30m even post oil crash prices.

Drilling rigs can cost $500k a day so the incentive to reduce non productive time is enormous, yet the problem doesn’t get fixed.

 

For REFUGEES IN GREECE  – one problem which the non governmental organisations face is poor data – it is very hard for them to know basic numbers like how many people are where and how many people need medical  help. There are multiple stakeholders involved (different NGOs, the government, refugees themselves). People can easily get counted twice (eg if a refugee is looked after by different NGOs). Developing a software system which could fix it would be very hard – because (among other things) every stakeholder would need to agree to use it, otherwise it would be pointless.

But perhaps developing a standard data exchange system for refugee data, and a standardised method of unique identity, could be relatively easy to make – and then each stakeholder could adjust their own software to use it (including refugees themselves, since many of them have smart phones) ? Security would be perhaps an even bigger concern than for drilling, since it might include people’s personal health data.

For now, this system isn’t being built either. There’s not much money involved in looking after refugees of course but many highly motivated and highly skilled people.

 

It isn’t hard to think of more examples where non centralised software might work. Many businesses have complex eco-systems with money changing hands rapidly along long chains of companies working together, with many complex payment systems, loan systems, invoicing and accounting systems adding to the complexity. if all the financial systems used a data exchange standard, perhaps the actual funds exchange could be much simplified, perhaps with one business to business financial transaction a year for each company, and lending where required could be guaranteed against future business which has already been agreed, so banks can fill deficits in working capital at low interest rates.

 

Going further – right now most people work in big companies but would prefer to work in small companies – and could be much more motivated that way, and there could be much less cost in the overall system.  Where there are barriers to information and data exchange, big companies make sense. Does the opposite apply? Could non-centralised software make it much easier for hundreds of thousands of talented but underemployed young people to set up their own start-up?

What is people centric software engineering

People centric software engineering means building software which is designed to help people. If the people has a specific objective to reach and the software is designed to help them reach it (so we are not talking about for example computer games), what might this mean?

 

  • Presenting people with information they need to make decisions and understand a situation
  • Understanding what people need
  • Providing good data
  • Providing good tools via mobile devices where applicable
  • Building software which can automatically go through standard steps which a person might go through
  • Building tools so the right people can provide the right information where required
  • Constantly reviewing so software does not have superfluous features etc
  • Good data models / domain models in the tools beneath it
  • Understanding what people actually do
  • Software company building up ‘platform’ businesses of having expertise in certain areas – because while there are differences in how people work between companies, the core ideas are probably pretty similar
  • Easy ways to build tools and try stuff out (‘low code’)
  • Robust and accessible underlying data management systems
  • Tools to check data and make it easier to enter
  • Automate tasks like sorting through old paper documents
  • Make it clear how decisions are being made

“Management in a digital age” deserves more focus

In the real world (that is, the non digital world), there have always been good managers, poor managers, and people who thought a lot about management – ever since people were managed.

Just about all of us could say what good management is.

As the person being managed, we are clear on the goals we are expected to work towards, we know where we are, we have a rough idea of what isn’t an acceptable way of getting there, and beyond that we have maximum freedom in how we get there.

So the manager needs to define the goal, outline the path, say what’s not allowed, and leave people to get on with it.

That means the manager trains his or herself to switch off the powerful human instincts to control too much, micromanage too much, worry and bother people too much. The bigger the stakes, the harder this is. Yet plenty of people have managed it.

Now look at the digital era. Most people use software tools all day long. If good management is translated into good software, that means we should have software which helps us understand where we are, what goals we need to achieve, and gives us maximum freedom how we get there.

Do any of us have this? Is anybody building this?

Most software seems to leave people feeling clueless about where they are and what is expected of them, whilst simultanously micromanaging them. Software can be pretty good at telling us what’s not allowed, but not in a very helpful way.

Software for people who like people

This blog is for people who are interested in software which can help people involved in managing something to better achieve their objectives.

Is this you?

Why are you interested in software?

Many people are interested in technology for technology’s sake. This sometimes seems to be the Google thinking. People who like technology being able to do something which it has never been able to do before.

Many people like social angles, like helping support democracy, or helping people learn, or manage some health issue – which are laudable aims even if software by itself doesn’t achieve much.

People in the business software arena are often interested in driving efficiencies and automating things. If it can be done cheaper and easier by a computer, let’s do it. Automation can put the computer in the heart of the company’s operation, managing supply chains,  transactions and data gathering.  Or perhaps they are interested in data entry and retrieval systems.

If someone is not managing anything, ie working on their own (like a graphic designer), they can probably easily find software which can do as much as software can.

But where the current software industry falls down is for people who need to manage something (where other people or companies are involved), including in security, policy, business management, financial management, assets, projects, customer service.

Many of the attempts to bring software into these sectors fail because people want to develop technology for technology’s sake, drive efficiencies, automate things or solve social problems.

It proves to be very hard to develop software which can help  people do things because it involves so much left brain + right brain together. Software people are usually good at left brain stuff – logic – but the people side of it can’t usually be solved by logic.

Even working out what someone’s specific objectives are involves a deep understanding of what they do, which is usually different to how you might think it is without asking them.

These points are important to stress because there is so much discussion right now about artificial intelligence and computers taking over people’s jobs. Computers are nowhere near being able to take over most people’s jobs, because the jobs involve understanding complex situations and computers can’t do that very well.

In the rare occasion where a job involves following specific steps then computers can do it. But that doesn’t apply in many cases, and normally it is the aspects of a job which don’t follow specific steps where you really need a computer – such as an airline check-in person facing an unusual request.

Why you should ignore the ‘internet of things’

If you hear the phrase ‘internet of things’ – you’re probably listening to someone trying to sell you something. Why is this? Because anyone else – someone you might want to use the data from the ‘things’ – is never going to see the ‘things’ in this way.

Let’s say you are a ship engineer keeping track of your ship’s operations. You can install more sensors, yes. But you’ll only do this if they’ll tell you something you want to know. In which case you’ll probably think of it as the ‘sensor which tells you x’. The same could go for anyone monitoring any industrial facility.

In your house, OK yes you can wire your washing machine and fridge to the internet. You can connect your car to the internet. But unless you’re just doing it for fun, surely you would only do this if it helped you to achieve some purpose so the same logic would apply.

Other examples – farmers monitoring their farms with various sensors, electricity companies monitoring consumption in a more granular way. They are going to think about what they are trying to achieve, not their ‘internet of things’.

Yes, we know, it is getting easier to add sensors and connect them up. The point is what we do with them.