Category Archives: Uncategorized

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.

Fintech – improving on HSBC

If by bank (HSBC) counts as a typical “traditional financial institution”, in my opinion it is exceptionally good at IT including cybersecurity, exceptionally good at customer service, offers all the services I need as a private individual and as a business, all for very low rates (last time I looked for a mortgage it was available for no fee at 1.79 per cent).

It has been unwilling to take much risk in terms of lending to my business, but then as a bank it is not in the business of taking high financial risk, and my business has been a pretty high financial risk for a while, being in the oil and gas industry.

So how does a fintech company compete with this?

Here’s a few ideas.

Many people find their bank not very ‘user-friendly’. My bank does create a few hoops – complex logins, difficulty setting up new bank accounts. Perhaps there’s room for improvement there.

HSBC has a weakness on some financial transfers – occasionally I’ve made transfers to India which have got stuck on the way, or blocked for security reasons, and no proactive contact from the bank to fix it, they basically wait until I call them. It probably isn’t HSBC’s fault, but there’s room for improvement possibly.

I probably score reasonably well on whatever HSBC’s scoring system is. The scoring system gets pretty vicious for people on the wrong side of it. Perhaps there are millions of people with low score but who could be good customers. Are there opportunities there?

Perhaps there could be better international services. Sometimes I receive and spend money in the same foreign currency, and if my company was bigger there would be more than that. Perhaps it could hold the money for me for a while in Euros or Dollars so I don’t lose twice on the exchange?

The money transfer costs are quite high – £17 to send £100 to the Netherlands for example

I don’t have much insight on when my customers will pay, except from employing someone to talk to people with overdue debts, which is expensive. Having that knowledge could be very valuable.

Bank reconciliations are a very manual process, employing someone to compare the bank statement line by line with the record in the accounts software. Perhaps this could be easier? (Although the bulk of this effort is keeping the accounts software up to date, which would need to be done manually anyway)

Perhaps all the various roles – accounting, debt collection, bank transfer management, cash flow prediction, could all be better integrated?

It is possible to imagine more sophisticated loan offerings – at the moment loans are basically only offered when the risk is zero, and impossible or silly rates otherwise.

Could there be a loan business for more high risk, but still low risk, loans, with some kind of compensation? For example loans guaranteed against future bookings, or loans which are deducted before any payments are made? Or loans for specific business sectors where the bank gets involved in the business’ future scenario modelling to get a better sense of the risk?

Why are we so quick to believe computers are taking over the world?

I have just read this BBC News article. The heading, “robots and drones take over classrooms”, and the opening illustration, showing a robot teacher, suggests that this is an article about robots taking away teachers’ jobs. The third paragraph talks about “a world where artificial intelligence and robots threaten jobs.”

But the article itself is about nothing of the sort.

The article is about a London school where students built a virtual reality Ethiopian village, the students programmed a robot to ski, and an Indiana school where students learned to program a drone. Then it talks about Microsoft building software for headsets for understanding the human body. There is a discussion about whether students should be learning this sort of stuff.

Of course it makes sense for students to learn as much about computers as they possibly can, or are inclined to. [Although based on personal experience, the idea that all young people would rather learn how to code than watch YouTube is not true].

But none of this is taking anyone’s job away, if anything the teachers are far more engaged doing this, and far more robotlike if they were reciting the same lessons year after year with no mental engagement at all (fairly common 20 years ago, based on personal experience).

So what’s going on. Is society just really keen to talk about robots taking over people’s jobs? Is this narrative driven by the sort of people who enjoy threating people’s livelihoods? Anyway, its a load of nonsense.






Is Steve Jobs’ genius helping us be the person we want to be – and what is the lesson for enterprise software companies?

Many people have tried to reverse engineer Steve Jobs and build companies or government departments like he did, and there are many theories about what made him successful. Here’s another – that he understood how to make us become the person we want to be.
This is no trivial thing. Whether we feel that we are the person we want to be is just about another name for ‘happy’. If we are the person we want to be at work, then we’re happy at work, not to mention doing a good job.
We all want to be respected. We want to feel that we have some degree of leverage over our employer to counterbalance the leverage our employer has over us. We want to feel that we are doing something useful. And these may be key points but what makes us happy is also an endless list which varies from person to person.
Steve Jobs managed to create electronic devices which made many of us feel the way we want to feel. That was a kind of double genius, first understanding how a device could possibly do this without seeing it, and then getting the thing built.
When people say he was unpleasant to work with perhaps they are only saying what it was like to be on the receiving end of having a boss with a clear idea of where he wants to go which you can either fit in with or leave. That’s not pleasant but you can judge him on his results.
How can a phone help people feel better about themselves? I don’t use any Apple products but I can think of many ways – the device gives me what I want, it responds to me, it doesn’t annoy me like a lot of software does, it surprises me, it feels great to have close to me, I feel like I understand it.
Plug that into the discussions going on about how to build business software and systems today. Our relationship with our employer is in many ways more personal than our relationship with our phones, in that it governs whether we can provide for our families, or our status in the world (for people who care about that). If people work with software all day long, the software is in some ways the vehicle with people work with their employers.
So is it possible to build business software which makes us feel much more respected, valued, that we have at least some leverage over our employers, that we are doing something useful? Surely, yes it is.
Not many business software companies think about this sort of thing. But if they did, would they be as successful as Steve Jobs?

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