Monthly Archives: September 2016

Learning from Pokemon

Pokemon, and games like it, can model millions of people and things in real time.
Why can’t we have software like that for our organisations?
Problems happen in organisations because of the complexity, ‘it’s not my job’, and because very few people can actually see the full complexity.
Companies are divided up into small divisions, each with a manager, and might run fine as division. But perhaps the only person joining the dots between each division is a senior manager with a lot to think about.
But when big problems happen, such as a patient who dies for waiting for the right sort of doctor, or a road accident because of something it was ‘nobody’s job’ to fix, or an offshore oil drilling disaster, then it is clear to everyone that it would have been worth making more effort to connect the dots better.
We are not going to advocate different ways to manage organisations, such as employing more people to connect dots between different divisions. There are plenty of other people doing that. We are going to advocate better ways to use software so people can understand what is going on.
In 2016 it is possible to build software which simulates what is actually happening in the real world in real time – so that anyone can see what is happening from their desktop computer. The senior managers do not need to walk around hospital wards, drive on a dangerous road or visit an offshore oil platform to see problems which are happening or about to happen.
The software can work out what problems are about to happen as well. Think about how Pokemon manages the world in real time. It would not be a computational challenge to think about what the Pokemon world will look like tomorrow as well, and guess what the players might do based on what they did in the past.
There isn’t a safety hazard from bumping into a Pokemon, but there is a safety hazard from bumping into plenty of things in the real world.
This means a shift in how we make our software. Currently most ‘enterprise software’ revolves around relational databases, a kind of filing system. This needs to change. Computer games are not built around relational databases (we imagine) and neither should enterprise software be.

Hospitals – why can’t we have software to manage their ‘systems’?

I heard a story yesterday of a colleague who took a day off work to take his fragile elderly mother for some surgery in a hospital by ambulance, only to find that the consultant scheduled to do the work did not turn up. He said it was a stressful wasteful day.

Your first reaction may be ‘this is completely normal, why are you telling me this’.

Yes, it certainly feels like normal, what we might expect from a hospital in 2016. But why is it like this?

I don’t know any more about the story than the two lines above. But I am guessing that a few things are happening.

First the consultant is probably under a lot of stress. The consultant certainly doesn’t see it as her ‘job’ to inform patients if she can’t come to work or is engaged somewhere else. Perhaps the consultant had 4 other patients to see that day and wasn’t sure how long the other 4 would take?

Second it is perhaps ‘nobody’s job’ to inform the patient, the patient’s family, or the ambulance driver about consultants who are not able to do scheduled work.

Third the infrastructure in the ‘middle’, where people co-ordinate the ‘system’ of connecting patients with consultants, probably does not exist in a very strong way. Hospitals are co-ordinating patients in the hospital and consultants in the hospital, there are surgeries around the country co-ordinating local patients.

But fourthly why is no-one thinking about this? There has been a big waste of resources (including spending money on an ambulance) which could have been saved with one text message.

Hospitals are big complex organisations with lots going on – and this could have been one of tens of thousands of ‘meetings’ scheduled for the day. One central scheduling office would barely have been able to cope.

My solution – and the ‘Software for Domain Experts’ solution – is to do it with software – but not software designed as medical software usually is (around patient records, or finances, or diagnosing health problems) but about whether the goal of managing patient health with minimum resources is actually being achieved. Software which monitors what is actually going on – and could tell that this problem is about to occur.

Perhaps the sort of software which is designed for computer games, which can co-ordinate millions of people in a single environment, and work out where things are about to collide.

Is that so difficult?

Facebook and entity centric thinking

There was an interesting high profile news story over the weekend – Facebook removed a famous Vietnam war photo from a news story published by a mainstream Norwegian news organisation, which appeared on Facebook.

The photograph included a naked child. Facebook, you see, does not allow naked children on its website.

The Norwegian prime minister, in protest, put the photo on her own FaceBook page and it got censored again.

Here’s another way to view this story – this is a battle between entity centric thinking and goal related thinking – and plenty of people understand the battlefield, even if they don’t view it in quite those terms.

Entity centric thinking is something software people are very fond of. Software people are not alone in that. It means putting things into boxes and creating rules around it. Poorly managed bureaucracies and communism did the same thing. Most western governments and businesses don’t do it.

Software people often like entity centric thinking because that’s what software is good at – particularly if software is designed around relational databases to begin with (with data in tables). Does this photo conform to our company policy yes/no? If no then don’t show it.

After some pressure (from policy gathered by censoring the Norwegian prime minister), FaceBook backed down, with an explanation along the lines of, since this is an ‘iconic’ picture we will allow it.

So that’s still entity-centric thinking. If photo does not confirm to company policy, next ask if it is ‘iconic’ picture and if ‘yes’ show the picture.

Those of us in the real world would set about this challenge differently – we’d say, we don’t allow child pornography on this site. Is photo child pornography yes/no? We wouldn’t have a computer making this decision because computers can’t do this sort of thing, but just about any human could. (If FaceBook doesn’t want to have humans sorting all its photos, we could have a computer doing tier one, with a decision referred to a human if someone disagrees with the human’s decision).

In the real world, most of us are pretty good at understanding people with respect to their goals. What do our children like? What does a potential business partner want to go with this relationship? Is this news organisation posting this picture because they want to serve all the paedophiles out there, or to tell a story about Vietnam?

Note – there would be another entity-centric response to this, which could be for Facebook to ‘trust’ mainstream news organisations, and decide that if it is OK for Aftenposten it is OK for Facebook. But let’s say Facebook want to make their own judgements, this is how they should do it.

Just because entity-centric thinking works with software running on relational databases, that doesn’t mean that is the only way to think or the only way to do software. Or that people living in 2016 need to get better at constraining their thinking into something which works with relational databases, which is a horrendous idea. (If your address can’t be described in a normal database, for example, if you live on a boat by a canal, then you can’t live there).

A lot of people get this idea. The question is how to take the discussion forward.