Monthly Archives: July 2016

Eric Evans – software should solve a specific problem

The hour long video of Eric Evans’ talk at his Jan 2016 Domain Driven Design conference in Brussels is well worth watching. Online here.

One interesting point he makes is that software should be able to do some specific thing. That task is probably important and complex, otherwise you probably wouldn’t want software to do it.

There’s plenty of objects in the world which aren’t useful for anything (think about your tool box, or perhaps a few people come to mind). It’s much easier to be useless than useful, you could say.

If it is part of some big piece of complex software, as projects often are, it is good if you can somehow put a box around your project, to make sure everything within your box works and does something.

A few thoughts of my own to add – can modern software tools make it much faster to build software which does some specific thing – lowering the bar of how important or complex the task must be, to justify building software to do it?

For example – there might be many software tools which could help a police officer, which haven’t been built yet. Not transform his working life and cut crime but make a task easier, this sort of thing.

Eric Evans also says that it could be a much better time now (as in Jan 2016, when he gave the talk) for Domain Driven Design, than 2003, when he wrote his famous book about it. The software frameworks are much easier to work with, software is seen as more of a craft, there is a drive to solving problems.

These are interesting ideas.


Why Software for Domain Experts is like music

In the world of domain expert software, there is a lot of talk about models. Its a confusing idea. What exactly is a model in software? It may be a diagram on a white board. But beyond that, even people who think about it all the time struggle to express what it really is. It is a very abstract idea. A model is a simplified representation of something. That’s not a very helpful definition.

Perhaps here’s a better way to get the idea across – music.

Popular music (by which I mean, any music which has been particularly popular at any time) expresses some feeling that people in that society have, in a way which no-one really understands. The Beatles reflected the atmosphere among young people in the late 1960s in the UK and the US.

By doing this, music becomes a powerful ‘model’ in the centre of society. People can engage with popular music and understand how their society works on levels more subtle than anyone directly explains.

Similarly, the idea of a ‘model’ in Software for Domain Experts (or Domain Driven Design) is of a central idea, which sits in the middle of the software structure, and reflects how the people in the wider business (who we call ‘domain experts’) see their world. The model reflects the knowledge of people who know the domain. You can study the model and learn more about the domain.

Like music, a model can be continually improved, until you get it really good – something which gives out a great deal, and does it with enormous simplicity. The music has enormous power and can reflect the way society feels right into its deepest corners – in the same way, a good software model can bring the challenges of the domain to every back room programmer.

How do you build the model? Like how do you build good music. You need an understanding of both the domain (the wider culture, in music’s case) and the technical issues of how to build the software (or create the music). Like good programmers, a musician feels intrinsically part of, and connected to, the domain.

Then there are lots of tools to help you create good music and good models. But basically, you’re on your own. You can’t do it just with a book. You might get better with practise, you might not. What helps most of all is if you really want to understand the domain, and understand how to work with your tools, and create something to sit in the middle which expresses it.

My phone company shows the perils of automation

If you think most work can be automated, perhaps it might help to think about the last experience you had with your phone company, I am guessing that your phone line (like mine) loses either internet or phone capability every couple of years and you have an excrutiating experience with your phone company’s automated system to fix it. (TalkTalk in my case).

The phone system is not automated itself, you are talking to human beings rather than computers, but the humans are reading data from a screen and typing data into a screen. Or certainly feel like they are.

The problem was something which occurred between my house and the telephone exchange, a few hundred metres away, and would have been solved most simply by me being able to speak to whoever last worked at the exchange, to inform them that (perhaps something like) when plugging a wire to connect up someone else’s line, they accidentally unplugged mine. I am sure managing a local phone system is difficult expert work. There are people who know how to manage it and it makes sense to speak to them directly.

What I had to instead took 6 phone calls (many involving long delays on hold). The first call was disconnected when the person on the other end of the line wanted me to plug in my land line to a special socket while on the phone to him on my mobile, and when I went to a corner of the house under the stairs there was no mobile reception. (Doesn’t this happen to most people). No call back, of course, but me dialing again, waiting on hold, to speak to another person.

This next person told me that the ‘automated test’ I had been asked to do on the phone company website had indicated a fault (although their automated system told me their test said it was fine). He agreed to call an engineer, which meant me calling another number to arrange.

I phoned another TalkTalk number who arranged a BT engineer to come on Monday. The BT engineer confused my wife by saying he needed to dig up the garden, sent me a text message the following day saying it needed someone with underground expertise to fix, while TalkTalk were sending me text messages saying they thought it was fixed.

I dialed the landline from my mobile and the phone disconnected, so I phoned TalkTalk, who insisted that the phone line was in fact fixed (despite a text message from my local engineering saying it wasn’t, and it wasn’t working). We worked out that the landline was actually diverting to my mobile, so when I called the landline from my mobile it would disconnect, and by cancelling the divert, the landline was now working.

This might have been obvious for a phone company which deals with these problems all the time, but of course the phone company staff were just reading what they had been told to say. “Is there anything else I can help you with?”

When I told the phone company person that their service had been dreadful, he thought I was complaining about the individuals I had spoken to. I wasn’t, of course, I was complaining about the stupid system set up for them to work to.

A further idiocy – after the first phone call I was asked to record a phrase on their automated system, which I could repeat and automatically login next time. The phrase was something like ‘how wonderful is TalkTalk’s automated security system’ or something. I was pretty grumpy and this may have come through in my voice.

But no, the system was actually not working. In the next phone call, I had to login in the usual way (first pet’s name), at the end of the phone call, asked to set my security phrase AGAIN. The third phone call I refused to do it.

What is the moral of this long story. TalkTalk has made a complicated attempt to automate a process which is not simple but could be handled much more simply and cheaply for all concerned by just letting me speak to someone who knows what they are doing as early as possible in the process. This is what happens when companies try to automate too much or obsess about automation. The message needs to be heard that automation is not always a good thing.


Are narcissists and experts diametrically opposite?

Expert = someone who likes to develop understanding about how something works, the cause and effect, how to reach a goal

Narcissist = someone who is obsessed about controlling a situation, who cares how other people think about him (or her), does not have any intrinsic ‘self’, so can only validate based on how other people are behaving, is likely (but not definitely) of low empathy levels

They are not obviously opposite. A narcissist can understand cause and effect, and is often highly motivated to achieve the goal of being publicly validated. Perhaps we can say, a narcissist can understand his or her own expertise.

But can a narcissist understand or value anyone else’s expertise? Expertise which can help someone feel more valued? A narcissist in business or politics may value the communications people who can make him or her look good.

But the narcissist does not have any incentive to validate anyone else, or understand anyone else’s value, unless it is a pathway to increased self validation. (If you’re building a website which makes me look good, you’re a great programmer).

Expertise is about making something run well, reliably, achieving goals, and as a general thing, that is good, so long as the goal is good, and it usually is. The narcissist can’t appreciate an expert in general.

The narcissist may even feel threatened by the expert, if it messes up the narcissist’s games and manipulation. (I can tell a great story, but you know how to fix the computer, which someone may value more).

This is an interesting point in politics because we have two people which are commonly regarded as narcissists, Donald Trump and Boris Johnson – and one of the most important roles of someone in a powerful position of politics is assigning the people to roles of managing important government functions. Perhaps this is another good reason to keep narcissists away from power.



Theresa May seems like an expert

Theresa May, who is at the time of writing about to be appointed Prime Minister of the UK, does seem like an expert, someone who thinks deeply and tries to understand how something works.

We don’t know her that well. But it was impressive that although it was clear yesterday that she would be prime minister around lunchtime, she delayed making her ‘statement’ until 6pm.

People say she seems ‘one step removed’ from what is going on – which perhaps means thinking deeply about what is happening and only sharing what she thinks when she feels sure it makes sense.

She has been Home Secretary for 6 years and in doing so would have seen the hardest parts of government at close quarters.

It is amazing that she still wanted to do perhaps the most difficult prime ministerial job since the war. What can be motivating that? Perhaps a genuine public service instinct?

An expert is motivated by understanding and reaching a goal – a narcissist is motivated by power, control and gaining admiration. Both of them end up in high levels of politics. Sometimes it seems amazing that society is not better at telling the difference.

(Or perhaps other experts are pretty good at spotting other experts, narcissists feel comforted by having other narcissists around, and there isn’t much crossing of the two).



Stakeholders and Brexit

One of our theories is that the people who develop expertise fastest in a certain situation are the people  with a “stake” in it.

As an extreme example – if you are in a physical fight with someone, you can potentially be in a lot of pain, so you learn very fast.

As a more day to day example, someone actually running a business, or bringing up a child, will generally have a better idea about how it works than (say)  a consultant or their mother in law. That isn’t to say a consultant or a mother in law will have nothing to offer, but they can’t (except in rare circumstances) have such a detailed understanding of the task in hand.

By ‘understanding how something works’ we mean understanding its cause and effect. Do I usually get the result I want by doing this? Or does it make it worse?

Now with the UK’s recent Brexit referendum, it is interesting to note that three of the main cheerleaders for Brexit are former newspaper writers – Dan Hannan, Michael Gove and Boris Johnson. They may had stakeholder roles after doing that (as a a senior UK politician for Michael Gove, and as mayor of London for Boris Johnson), but their formative thinking and professional development was as writers.

If someone is just being paid to write, then they are not directly a stakeholder in anything, except as a public citizen, and in keeping their job – which requires understanding how to keep their editors and proprietors happy, which is presumably about maintaining readers’ attention or keeping the same political line their bosses approve of.

So this leads to the question: when promoting Brexit, were these former writers thinking, perhaps subconsiously, that it would be a good way to get an audience, and align themselves with newspaper bosses, such as the anti-EU Rupert Murdoch?

Or were they thinking more about the cause and effect on the UK – if they would achieve their desired effect (presumably improving the quality of life of UK citizens) through this cause (leaving the EU)? Did they even understand how this cause and effect works?

Perhaps the lesson in future would be, for such issues, to follow leaders who do actually have an idea about what kind of forces are more likely to improve quality of life for UK citizens, because they have thought deeply about this and made decisions which affected quality of life for UK citizens and saw the outcome? There aren’t many such people, nearly all former senior politicians. And we saw what view nearly all the UK’s former senior politicians, with the exception of Nigel Lawson, took.

Note also Michael Gove’s statement that “people in this country have had enough of experts.” Is this – perhaps subconsiously – an acknowledgement that if the public listened to its experts they would reach a different conclusion?