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?
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.