Monthly Archives: January 2017

Time to ditch the ‘artificial intelligence’ name?

Wikipedia defines ‘artificial intelligence’ as ‘intelligence exhibited by machines’. But the term AI is often taken to mean, machines doing something similar to what people can do.
The debate about what computers can do and what people can do, and when computers might catch up, is fascinating. But it’s not a business discussion – perhaps something more for weekends or evenings.

Right now, in 2017, computers can’t do anything near what people can do in most cases, although they can do a lot which people can’t do, too. The useful understanding is what computers can actually do.

So to sidetrack the ‘computers vs people’ discussion perhaps we need a new name for computers doing clever things (something more than entering and retrieving data from a database, or following an if .. then routine). How about ‘computer cleverness’?

Then to understand computer cleverness better, perhaps it makes sense to think about different sorts of computer cleverness, so we know which one we’re talking about, and can work out which sort is most useful for the application in hand.

I can think of four groups of computer cleverness.

The most basic, and often the most valuable, is logic. The computer follows logic pre-programmed by a person. Consider a scenario when an alarm goes off on a plant. The operators probably go through a set series of steps to try to work out whether there is a real cause for alarm. A computer could be programmed to follow these steps – and do it in a millisecond – so perhaps the alarm doesn’t need to sound at all.

The second is statistical analysis. An example of this is when a computer takes some readings from sensors, does some calculations, and outputs what is probably happening (ie probability > x). For example, usually when a sensor shows this vibration signature, it means this.  It can suggest what is happening right now (you are operating a drill bit and the drill bit is sticking).

A third is simulation. A computer can build a model of real life, which can run, so you can see what might happen in real life, for example to see how a building evacuation might work. The simulation could also run parallel to actual real life, so you can see more clearly what is happening, for example in a complex engineering plant or retail store.

A fourth is machine learning. This is when a computer uses a few layers of mathematical processes (which can themselves involves statistics or logic), with a variable weighting or impact on the overall result. This is used when the computer is trying to match images, or translate text, or understand audio, or find something which might be useful in a pile of data, work out how to win at Go! or Amazon making suggestions of what you might buy next. Machine learning is perhaps most applicable to consumer environment rather than a business operational environment, where the scales are usually too small and risks too high to justify the investment of building it. But not necessarily. One example of a business application is when computers are identifying cancer cells.

That is more or less it, as far as I can see. Which doesn’t mean that there’s a limit to what computers can do, but if you decide whether the ‘computer cleverness’ you are hearing about fits mainly into one of these buckets then you can get a better understanding of how to move forward.

Donald Trump’s immigration ‘executive order’ looks a lot like bad business software

The big news this weekend was Donald Trump’s “executive order’, that there should be no immigration into the US from certain countries for a while.
Aside from the various political issues involved with this, it also looks like a lot like really bad software.
Reading the ‘executive order’ (here) it seems to make reasonable sense – Donald Trump had a goal, to tighten up security, and decided something drastic needed to be done about it, in fact making this promise was a big part of his election pledge.
The text seems fairly carefully written, saying we need a new system, we’ll stop the system we have now until we have a new system in place, and let’s see how it goes. It notes that many of the September 11th 2001 attackers managed to get around the US visa policy.
What happened? Enormous confusion, particularly over whether permanent residents would be allowed to return to their homes, and families separated, people unable to fly home from Central America to the UK (since the flight involved a stopover in the US), and much more.
The way the system should work is exactly as it is currrently designed. You have human experts at the border, making decisions but with a lot of regulatory guidance. You have people managing the overall system making adjustments as necessary – tightening security, or loosening to allow more people through. After September 11 2001, there was a lot of security tightening.
Widely recognised as a narcissist, Donald Trump probably does not have much ability to see things he cannot see. Or to put it another way, all of us have limits in how much of the world we can understand, but we retain an understanding that there are many people in the world who understand things that we don’t understand, and know how to do things that we can’t. Donald Trump probably does not possess this ability. He has faith in himself.
So his chosen course of action is to drop a barrier to the current way that things work, and start building a new system, and then see how it goes.
The system he has designed is a fairly robotic one, where he gives the border agents fairly strict instructions about what to do (there should be a “a database of identity documents proffered by applicants to ensure that duplicate documents are not used by multiple applicants”). One imagines that US Border Control have a great deal more expertise than Donald Trump about how to check that applicants are who they say they are, but this is something Donald Trump is unable to see.
And of course, the system completely went wrong. Airlines have to cover the costs of flying people home if they don’t get admitted into a country, so they have a strong incentive not to allow people onto planes unless they will be sure they will get admitted, which means they will err on the side of caution. The intent of the executive order may have been to allow people with permanent residency to enter but give them a few more questions at the border, but what actually happened is they weren’t allowed on the planes and got stuck in Dubai.
The problem of people being unable to fly from Costa Rica to the UK since it requires a transit stop in the US probably wasn’t thought through.
So many people ended up on the wrong side of the net, including high profile people such as Somali born British world champion Mo Farah, who has a dual citizenship.
The whole thing must also be massively demoralising to border control agents.
And it probably has achieved absolutely nothing for security. Are there individuals intent on harm who would have got through the old system but will be stopped by the current system? It seems pretty unlikely.
How does this relate to software development?
First – don’t expect to get it all right the first time – real life is more complicated than you plan it to be – build a system which you can test and iterate.
Second – let experts have a much bigger role – listen to them, and use their judgement.
Thirdly – have humility in your expectations for any automation system which involves people. There are some automation systems with people which work, but automation systems for people are extremely hard because people and real life is so complicated. A larger human discretionary component is probably much better.

The software ‘terms and conditions’

Software companies  – and websites – which give people complex ‘terms and conditions’ to read are not just being a little ignorant – they are insulting their customers.

Let’s go through what this is saying, as an imaginary conversation between me, the software company, and you, the customer.

You know and I know that you’re not going to read this.

But I can force you – or very strongly encourage you – to tick a box to say you’ve read it as a condition for going forward with my service because – that’s very easy to do with software.

I get some advantage from this over you (otherwise I wouldn’t be doing it).

So I’m basically happy to exploit your laziness / trust for my own benefit and give you nothing back. Although I take it we’re still friends, because this is what everybody else does, isn’t it?

Imagine the owner of your local public house doing something similar – I’ll serve you beer if you sign this long legal document – to illustrate how ridiculous it is. Yet somehow because we’re in the software realm we’re conditioned to accept it. Does that mean that software programs people to act like morons?

Do these terms have any legal weight? I don’t know, how can you sue someone for not reading something it is obvious they’d never read. But you can still go ahead and do everything you said you had the right to do, and its pretty hard for someone to stop you.

Far better – I would have thought – to scrap the lot of them unless they really add something and people really have a chance to consider them.


What is the point of the Fitbit

If you want to monitor your own health, here’s some useful factors.


How much are you sleeping and how well

What are you eating

Are you brushing your teeth

Are you getting any exercise

Are you spending time in dangerous environments

(If in China or India) are you spending lots of time in dirty air

Are you spending too much time indoors


You can sleep more, exercise more or differently, eat less or eat differently, have more time in clean air, get outside more

Surely the difference between unhealthy and superhealthy is pretty much all there.

What has Fitbit got to do with any of it?

What does humility in software development mean?

Software programmers and developers come in a variety of different types, and it would be silly to try to generalise. But can we just say, people involved in making something nearly invariably have a different perspective on that thing as the person who uses it as a tool in their work.

The simpler the thing, the more the mindsets match. In the days when hammers and dinner plates were made by hand, it would be easy for the person making them to understand what it would be like to use them.

But the more complex the item, and the more mental capacity goes into making it, the more the mindsets are likely to diverge, and software is about as complex a tool as it gets.

From our experiences working with software, it is easy to see what humility isn’t. When you get a sense that the programmer thinks that their software is the only software I’m ever going to use, or I’m willing to make a great deal of effort to work out how to use it. Programmers don’t typically think that, but they don’t typically think the alternative either (this is one of about 200 pieces of software I’m going to use today and i’d rather not apply a single shred of intellectual resource to how I use it).

For an extreme example, consider how the early iterations of mobile Google Maps seemed to be tracking where we were constantly and downloading updated maps, whether we were looking at the map or not. (I am not completely sure about this, but it certainly seemed to drain my phone battery when it was running, even if I wasn’t looking at it, and keeping it running when in a foreign country with expensive roaming charges was very dangerous).

Also in this category I would put websites which demand that we use a new password when we reset it, or a password with a funny character. I understand the demands of cybersecurity but my brain and your brain is not capable of remembering many passwords.

Perhaps you have 4 or 5 passwords you regularly use, with increasing complexity, as demands for complex passwords have increased, but you still use some of the very simple passwords  you set up in the early days of online transactions (or just 2006) and no-one as asked you to change them yet (and they are not the passwords for your online bank). Anyway you don’t want to remember any more.

Programmers appear to be (although probably are not consciously) the sort of people who think it is OK to demand that their customers think, since they don’t mind thinking themselves.

So we could define humility in software programming as the opposite of this. I recognise that you, my customer, are using about 200 different software tools with about 4 different passwords and you don’t want to remember any more. I will minimise the demands my software makes of your intellectual resources, and since waiting can be mentally taxing, I will make sure my pages load up fast. I won’t bring you anything you don’t want or don’t expect. I won’t try to sell you anything. I’ll make a tool which enables you to achieve your objective as easily as possible. And if something isn’t right I’ll make your life as easy as possible.

I have been involved in building software which satisfies none of this criteria, so I know how hard and expensive it is. But other software companies have bigger budgets than my project did. Is this a useful way to move forward?




Supercleverpeople are an interest group too

Supercleverpeople look after their own interests, and don’t mind making life harder for nonsuperclever people.

Clever people have:

Built legal and immigration systems where you win or succeed if you understand clever rules or can afford to pay someone who does

Built employment systems which end up paying salaries to supercleverpeople and leave the rest to fend for themselves

Built technology that many people struggle with (ever struggled to set up your phone, broadband or work your office computer?) – and seen nothing wrong with ever more difficult password requirements

Created marketing and marketing vehicles which exploit mental weaknesses like inability to resist urges, chasing short term hits, anxiety and need to feel recognised (even if in a fake way)

Built financial systems which aim to make it clear who is nonsuperclever with a ‘credit score’ and then leave this people unable to get a sensible loan when they actually need it although they are far more financially vulnerable than the supercleverpeople.


Why do nonsupercleverpeople put up with this?

Part of the reason is perhaps the taboo of identifying oneself as nonsuperclever. There isn’t even a word for it. The opposite of clever is ‘stupid’ which is highly deragatory and hardly appropriate to be applied to let’s say 95 per cent of the population.

There’s a fallacy that anyone can become superclever  through hard work – I guess it suits the supercleverpeople to perpetuate this myth – and it suits plenty of nonsupercleverpeople to perpetuate the myth too, if it motivates children to work hard. it can’t be true though.

Perhaps the supercleverpeople also exploit the fact that no-one is ever going to say “listen I can’t fill in this form I’m not clever enough”. So (for example) we end up with systems which are basically to keep the nonsupercleverpeople away, such as – it sounds like – the 85 page form for getting residency in the UK.


Perhaps we should look at the Donald Trump and Brexit elections as – to some extent -a fight back of the nonsuperclever. Perhaps supercleverpeople should even take this as a signal of worse to come unless the nonsupercleverpeople’s lives get made a little easier.


How should we fix it?

Well nearly all of the problems can actually be solved by superclever software which supercleverpeople can make.


We can build clever software which enables nonsupercleverpeople to learn skills which are useful in real jobs. Software which simulates real life, not just shares facts and does ‘testing’. So people can learn from experience.

We can make the regulatory and immigration systems much simpler, which takes a lot more effort. Where there is a genuine need for complexity the software can help manage it. We can do the same with our websites, broadband services and mobile phone support.

We can develop tools which make it easier to manage finances. If people have a track record of problems, rather than give them ‘bad credit scores’ banks could build systems with varying degrees of nannying, for example to only authorise use of a debit card for a purchase which the person can actually afford, taking into consideration upcoming standing orders for essential things (rent / mortgage / groceries).


[I write this by the way self identifying as a ‘supercleverperson’ based on coming top in maths in the first year of comprehensive school in my non streamed class. Perhaps I would never write this if I wasn’t].


Banking and mental health – the £bn fintech opportunity?

I read that the UK’s Money and Mental Health Policy Institute has published a report showing how people with low mental health struggle to work with banks and manage finances.

This can include difficulty remembering passwords, problems constraining spending, anxiety, problems making decisions, difficulty dealing with human bank telephone help staff. They could add difficulty obtaining loans when you really need it.

Now just about everyone I know experiences some of these difficulties, whether they have bad mental health or not, and that includes me. The opposite of bad mental health, I suppose perfect mental health, is pretty rare, if it exists at all.

So could there be a business opportunity making banking services which solve some or all of these problems – no passwords to remember, automatic constraints on spending, no complex options, tools to reassure customers that their finances are in order, e-mail support, and making loans easier?

All of these problems can be solved technically, although they generally aren’t being solved technically. We have a new league of tech-savvy banks about to launch in the UK, perhaps they could do some of this.

One problem with this business idea is how to sell it. Apart from in extreme circumstances (when there is no choice) people do not want to self-identify as having low mental health. But perhaps banks wouldn’t need to offer these services as specially for people with low mental health, they could just offer it to everyone.

In real life, we have places where people go to have their intellectual resources challenged – they are called universities.  The rest of the time, most people would really not prefer their intellectual resources to be challenged.

Perhaps especially, people with high intellectual resources, who generally prefer total control over whether they are being challenged or not.

This seems to me like a fact but it does not seem to be acknowledged very much by the people who develop software, who often think, perhaps unconsciously, that the “user” (as they put it) has an onus to make an effort.

Let’s go through how all these problems could be made easier.

no passwords to remember – voice passwords or fingerprints?

automatic constraints on spending – tools which automatically block cash withdrawls or debit card purchases if they would take the budget beyond a pre-set amount each month taking the month’s standing orders into account?

no complex options – everything very simple

tools to reassure customers that their finances are in order – how about a ‘do I need to worry’ service which will show that so long as the monthly salary payments arrive, there is enough funds to cover all standing orders and leave enough left over for living costs?

e-mail support – odd why businesses don’t provide this – it can’t be more expensive than telephone support?

making loans easier – if someone does need a loan, it could be automatic at a low interest rate – or specifically agreed against monthly payments which the person shows they are able to fit in with their other standing orders?

Add to this – if someone has a ‘bad credit score’ but a regular salary – then they ought to be possible to get a low interest loan but where they agree the bank can take the loan repayments against their salary before they can spend it on anything else – so the bank just takes the (hopefully low) risk that they lose their job?


I don’t understand Uber’s business model

For years we’ve had minicab companies in London which would arrive after a telephone call and take you anywhere, for an extremely competitive rate. Sometimes the rates are so cheap the driver could hardly be making minimum wage – £20 for a taxi ride which could take 40 minutes, and the driver has to go home afterwards.

Uber arrives promising to ‘disrupt’ this.

At the core of the operation you have a driver, a car, the costs of paying the driver and running the car, which are the same for Uber and for a minicab company. Any difference is in other factors – how much the administration costs, which a customer prefers, what the driver prefers, whether the car utilization can be improved, and whatever is spent on technology. How does Uber have the edge over Sams Cars, my local minicab firm, here?

Sams Cars has an inexpensive office in one area of North London with often one staff member. Uber has a big technology investment which it can share over many cities, perhaps one office covering a whole city. So it could work out cheaper per journey. But it may not.

How do drivers feel? I haven’t asked any. It is easy to imagine drivers at Sams Cars feel more part of an operation, if they are a valued part of the company and the company is valued by its customers. Although I don’t think they get any regular guaranteed income. An Uber driver gets ‘valued’ by its star rating on the website, which may not feel so great. I don’t know.

Can Uber help drivers achieve higher utility rate, for example finding a passenger on the way back? It is possible to imagine, since they have a bigger scale. It is also possible to imagine their utility rate is very low, since it is governed by how many drivers feel it is worth coming to work today. I would imagine Sams Cars probably makes some predictions and spreads the work around different drivers, once you get on its books as a driver. And minicabs also operate on a wide scale too, like London-wide Addison-Lee.

Uber has lots of expensive staff to employ, I would imagine Barack Obama’s campaign manager David Plouffe doesn’t come cheap.

Uber can be pretty cruel to its drivers, as I discovered taking an Uber in Mumbai once, where the driver felt obliged to follow a dreadful route recommended by the computer software through the back of people’s houses.

So what is Uber’s advantage – is it that customers prefer to book a taxi with some clicks on a screen rather than a telephone call? Or an obsession with mobile phone apps?

Is it that as a ‘hot’ Silicon Valley company it can get funding and use that to undercut the prices of its fares?

There are plenty of “Software for Domain Experts” angles here. In  which system are the minicab drivers happier and feeling more valued? In which system is the customer most comfortable with? Is the ‘winning system’ the one where the system works the best – or where the hype and the technology company’s agenda is winning?

Virgin Trains and seat reservations

For an example of non human centric automation, tere’s an example from my experience coming from York with 3 young children, with Virgin Trains last Sunday. We had reserved seats – but were told when we got to York station that the train had “no seat reservations”.

There had been some computer failure at the station where the train started its journey, so the reservation cards which are put on the seat indicating that the seat is reserved were not there. But we still have a ticket which tells us which seats are reserved.

So we have an automated system – designed to do a task – which had failed. What happens next?

As a passenger I have a dilemma. With a young family we pretty much need seats together. Should we go to the seats which are reserved and demand that people sitting in them move, although there are ‘no seat reservations’? That doesn’t sound like a comfortable conversation. Should we take the first seats we find together? If someone else comes on saying that they have reserved our seats, would we then move, or say ‘there are no seat reservations’?

Since the majority of population, I hate conflict, and like to do the right thing, yet I have no pathway of avoiding conflict here.

This is, of course, the sort of situation where a sociopath would thrive – a person who would be happy demanding that other people move out of his family’s seats, or refusing to move from seats reserved by someone else, because there are ‘no seat reservations’. The sociopath would nearly surely win in both situations. Virgin Rail has engineered a situation where the sociopath wins. Well done.

Virgin Rail could have made the situation better by making it clear whether that ‘no seat reservations’ meant that the seat reservations did not apply. Or it could have clarified that despite no reservations cards being on the train, passengers should still try to sit in their reserved seats, if necessary asking people in the seats to move.

The train guard actually made it worse, by saying (once we were on the train and sat down) and people with seat reservations should try to use them. Although this was pretty vague. Does he mean demand that people move if they are in your reserved seat?

A human centric system could have done more – it could have made one carriage of the train available to people who need to have seat reservations – people travelling with vulnerable people who cannot sit by themselves – such as young families.

The point to this story is to show that we have an automation-driven system – but not a people-centric system – and improving it would not be too difficult.

One of our customers is moving to SAP


One  of the customers of our small business is moving their supply chain to SAP. Not very interesting is it? They’ve sent me a long letter explaining it. I had to read it.

The letter explains why they are moving to SAP, they hope my business will benefit from their SAP, they are aligning all their businesses to SAP, I should give them my bank details if they don’t have it already (of course they have it already!) they will send me some further information before their ‘GoLive’ which “you the Vendors will see”. I should contact them if I have any questions and they value their relationship with me.

This is an example of non human friendly automation. They’re wasting my time with something I don’t need to do anything with and don’t care about, they’re subtely reminding me that my company is subordinate and needs to follow their instructions (although they haven’t actually sent any), and they’re willing to answer my questions (although not presumably why they sent this letter in the first place).

The last comments are an effort to sugarcoat their machine with a bit of humanity, but it makes it worse, it would be better if they considered me a human in the first place. “To: all suppliers”.

I guess this letter was produced automatically by SAP, including the translated versions. Doesn’t SAP know enough about my company to know this is a completely irrelevant letter? Clearly not. What matters is that they will “design, develop and deliver common best practice business processes and systems to drive profitable growth and functional excellence across all businesses”. That’s the machine again.