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.