What is a smart contract?

smart-contracts.png

We hear a lot about smart contracts these days.

But what exactly is one, how do we create it and when can we use it?

The term was invented by Nick Szabo, who applied his interests in computer science, law and cryptography to create a cyberspace equivalent of gold – and came up with the idea of decentralized digital currency.

The point of a currency, however, is that it acts as a store of value and a medium of exchange – but when do we actually need it?

Nick, in his original article, says a contract is really a set of promises.

The things that go into a contract have evolved over time – from a contract of marriage to a contract of employment, from a contract of sale to a contract of lease.

All these structures say that the people involved promise to do certain things as set out in the contract.

While the concept of a contract can encompass a blood oath sworn at midnight under a lightning blasted oak tree, normal contracts have four characteristics:

  1. The participants can observe how each party is performing on the contract.
  2. An arbitrator can verify that the contract is performing as set out or is being breached.
  3. The only people involved are the people that need to be involved – their rights are secure and private.
  4. The contract can be enforced – for which we need acceptance of the contract by the powers that be.

A smart contract takes these concepts and recreates them in the digital world.

The difference is that parties enter into a digital agreement instead of signing a paper contract.

This has been done several times before – every payment with a Visa debit card, Ebay purchase with Paypal and software contract we sign without reading are all digital contracts.

The idea of smart contracts when linked with Blockchain technology adds a few ideas to standard paper contract.

The first is that contracts can be expressed in code using an algorithm.

Common algorithms may be if-then or when-do.

For example, if you pay me X, then I will give you an hour of work.

Or when a shipment of copper is delivered in two months time I will pay you the price then that we agree now.

So this means that we need to identify the real life elements that the contract talks about like money and stuff.

For example, payments might be done using a decentralized digital currency like Bitcoin or Ethereum while each hour of work or shipment of copper is tagged with a digital identifier.

So, a second part of a smart contract is the ability to give things a digital ID.

Then there is the question of where to store the smart contract – and that’s where the idea of a ledger comes in – especially a blockchain based distributed ledger.

This keeps the information related to the contract secure by design.

Smart contracts are the way things are going to go – paper agreements have little place in the future.

Many other part of a contract – the promises we make, the reliance on the state to enforce agreements, and the lawyers that create and interpret them – are all still likely be around.

The key, however, is going to be to get the contract algorithm right.

How to think about waste in knowledge work

7-wastes.png

A principle of lean thinking is to remove waste – anything that stops us from producing our product or service for a paying customer.

This is called muda in Japan and seven ways to create waste are especially important to manufacturing organisations.

They can also be used to think about knowledge work and if we are doing it effectively or not.

Take transport for example. Are we moving work between locations unnecessarily?

This can be as simple as splitting a process up between teams, so that one team focuses on just one part and the other team on another.

This is a good way of creating silos – where people focus on their bit and forget the overall system and waiting customer.

Having a small group of multi-skilled individuals close together that can handle the entire process from starting the project to delivering to the customer reduces this type of transport and waste.

What might inventory look like in knowledge work?

Could it be the collection of reports, analyses, studies, comments, meeting notes and so on that accompany the simplest of projects or decisions?

Is all that really necessary?

A lean organisation can design and test a product with a customer and iterate to a finished version in the time it takes for another to come up with specifications.

Motion simply adds heat to a process. The best knowledge work gets done when people sit down and work on a single task for a stretch of time.

Flapping between projects, having to check in all the time with managers and getting interrupted break the flow of work, raise stress levels and increase the total time needed to do the job.

Then there is the time we spend waiting. Meetings are places where we wait – where interminable discussions happen to decide what to do.

We spend so much time in meetings that there is little time left over to do any of the work or actions that come out of them.

Or, we often do too much – over-processing the work we need to do.

Modern computer systems are so powerful that we can do almost anything on them – which means we spend ages selecting fonts and sizes and colours and logos and header placement instead of creating content or analysis.

User interfaces that try and make things simple don’t help.

A quote from an old newsgroup says that graphical user interfaces (GUIs) make simple things simple and complex things impossible.

Closely related to over-processing is overproduction.

There is little point creating work-in-progress that has to go through a bottleneck.

It makes more sense to work to the capacity of the bottleneck and spend the rest of the time working on a different project or improving the performance of the bottleneck.

And finally, there are defects.

Defects in knowledge work often result from not understanding the end result well enough and rushing to create something too quickly.

Information degrades quickly it is passed along links in the chain of communication.

For example a customer speaks to a sales person who speaks to an operational manager who asks an analyst to do some work who then creates something.

It is almost a certainty that the something that is created is not what the customer had in mind.

The problem is that knowledge work is not as visible as manufacturing – we don’t see piles of inventory piling up.

We may only see a cluttered desk and be aware of late projects.

We’ll also see the effect of waste in rising stress levels among colleagues.

And all that’s just a waste.

What are people really looking for from us?

servitization-model.png

Theodore Levitt, a Harvard economist and professor, said People don’t want to buy a quarter-inch drill, they want a quarter-inch hole.

With larger purchases come greater expectations of performance, reliability and longevity.

An approach companies use to deliver these is servitization.

Servitization is a change in mindset from selling a product to selling a Product-Service System.

Professor Andy Neely from the University of Cambridge is a leading researcher in this area and says that the term has been around since the 1980s.

The classic example here is Rolls Royce.

It no longer sells jet engines. Instead, it sells flying hours.

Rolls Royce now delivers reliability – done through planned and predictive maintenance by analysing data from monitoring systems in the field.

Making a move from scheduled repairs to targeted repairs based on performance data enables fleet operators, from the military to councils, to improve things from combat readiness to bus times.

The way we get media has changed with this approach.

Netflix offers media as a service and Amazon offers ebooks.

Servitization has quietly transformed the software business.

It’s hard to buy a software product any more. It’s all software as a service (SAAS) now.

This is not always a good thing.

Netflix has lots of rubbish on it. The good stuff still needs to be paid for.

We get a million books with an Amazon Unlimited subscription – but the good authors still set their own prices and get committed readers.

Servitization in these cases gives the companies a revenue stream and a customer convenience – but the pressures of controlling costs means that the performance is not superior to just buying a really good collection of books and movies.

And software as a service really all-too-often means self-service software.

So, it’s still a product sell rather than a service when we think about it.

According to Professor Neely, servitization is something of a paradox.

Many firms offer product-service systems, but it makes less money and carries higher risks than we first think.

The key thing is a change in mindset – in how we connect a product, service and performance.

This shift starts with the customer going from wanting to own a product to being happy with a service.

How to think about mining data for value

data-mining-phases.png

Why should we try and use data better?

The short answer is because we can make money or save money using the insights we get from analysing data.

But a more useful answer might be because it helps us see more clearly.

That’s very Zen.

Zen teaches that we normally see the world through a haze – a fog made up of the assumptions, preconceptions and fixed ideas – that is created by our desires.

For example, many people are so involved in the way they do something that they fail to see that the something they do is no longer relevant. Innovation simply passes them by.

Or, if we really want something to happen or believe that an approach is right, we become blind to anything that contradicts that point of view.

The way to see clearly is to look at the world as it is.

This is pragmatic advice, but how do we go about doing it?

The Cross Industry Standard Process for Data Mining (CRISP-DM) is now over 20 years old – but still useful.

There is data everywhere these days, leaking out of sensors, meters, surveys, analysis and social media.

We could analyse everything, but we should probably start with an understanding of the business.

What is special about this particular industry, what is the competition doing, how do customers act and what would the business like to do?

We can then stick our heads in the fog and try to understand the data that’s available – going back to the business to ask questions or get some more.

Is it clean or patchy? Do we have lots of numbers or is it full of words? Is it in an open format or do we need to get it out of databases or proprietary formats?

For example, the way we treat energy metering data is different from twitter comment mining or newsfeed monitoring

A huge amount of work then often goes into data preparation.

The data needs to be bashed and cut and manipulated into a form that we can work with.

All too often, the data preparation takes so long and ends up in another messy form that there is little time left to do any modelling.

But – getting to the right kind of data structures can make the task of modelling much easier.

Models help us create and test theories.

Do we think there is a relationship between variables or a robust way to identify problems?

Then its time for evaluation.

We could do an infinite number of analyses, but we need to focus on the ones that are aligned with what the business needs to know.

Are we providing useful insights that can be used to make the business more effective?

If so, then we can head towards deployment.

There is no point doing analysis once and then forgetting about it.

The law of entropy – things decay over time – means that without management things will simply drift and become worse again.

Ideally, we’d automate the analysis and reports and let people know when things are going wrong so that they can get involved and fix things quickly.

The CRISP-DM is a process we can follow to create a data mining project.

The real value comes from the understanding we get when we see what is actually going on.

How can we solve messy real-world problems?

learning-cycle.png

What do we do when we have a situation – perhaps something has gone wrong?

We probably rely on experience – either fix things ourselves or get an expert in to solve the problem.

Most solvable problems like this tend to be hard problems, in the sense that they have clean edges.

For example, the tap is broken, a flood has disrupted shipments and we need an alternative or the printer is jammed and we have to get this proposal to the couriers in the next fifty minutes.

Many other problems are less well defined – how do we reduce our environmental impact while still growing the business, how can we develop people’s skills, what information systems do we need to invest in or what changes do we need to make now to stay relevant?

As a species, we have been phenomenally successful at solving hard problems.

For example, many of us live safer, longer and healthier lives as a result of the medical and technological breakthroughs of the last couple of centuries.

This success has been accompanied by an unexpected problem.

Many people are concerned about the growth in population as we head towards 8 billion people.

They point out that it’s unsustainable and we’ll run out of food to feed everyone and really it would be much better if everyone in all these developing countries stopped making so many babies.

But is the cause of population growth really more babies?

It’s not, reallyit’s not that we breed like rabbits – it’s just that we’ve stopped dying like flies.

The real solution to population growth might be somewhere else.

It turns out that richer people have fewer children.

So, if we want to manage population, a better way might be to help everyone get richer – so instead of aid should we focus on trade?

We normally think that charities or the UN handle big problems like that but maybe it’s business that will solve it in the end.

The thing is that we don’t know. And with many real-world problems we don’t know what solution is going to work – or for that matter what the real problem is.

That’s where a learning cycle comes in.

Hard problem solvers like to say give me your requirements, I’ll build a system and you’ll be happy.

That works sometimes – but all too often it doesn’t.

That’s because most real-world problems are context specific – they depend on the ideas and assumptions of the people involved as well as the situation and environment.

So, instead of solving a problem we may need to work our way to a solution.

In a learning cycle, we have a theory about what might work and that leads to ideas we can put into practice.

We can learn from the results and that leads to modifying our theory and ideas.

It’s not rocket science – but it’s easy to fall into the trap of thinking a new system or platform will solve our problems.

Real-world problems, however, are usually solved after going round the learning cycle loop several times.

Reference: Information, Systems and Information Systems – Peter Checkland and Sue Holwell

Where should we begin – again?

kicking-a-whale.png

Creating something new is usually interesting and fun.

There are no restrictions – we’re focused on the problem at hand – and we can choose from a variety of tools to carry out the work.

Over time we develop processes and workflows that streamline things and make us more effective, especially as we add people to the project.

Things ramp up – we improve quickly – until we start to plateau.

And then we start to move more slowly – as the steps and processes and interactions start to hinder, obstruct and finally block progress.

At this point things aren’t fun any more.

At this point the friction involved in doing anything – the effort that it takes appears overwhelming.

It’s like being asked to kick a whale down the beach.

This happens in all kinds of systems – whether it’s programming, process engineering, or business strategy.

What we already have stops us from moving ahead and getting better.

So… what can we do about it?

Perhaps it starts with a mindset.

Steve Jobs, for example, was famously minimalist.

His house had hardly any furniture in it – perhaps the barest essentials – a mattress, a chest of drawers and a few folding chairs.

His philosophy led to the creation of devices like the iPad, so intuitive in design that a child can instantly use it and without the buttons and controls that others slapped on.

The problem many of us have is we have added too many buttons and features to our lives and working environments – we have too many meetings, follow too many processes and try too hard to please everyone.

What would happen if we spent that time working on interesting and useful things instead?

Perhaps we should begin by looking at everything we do and cutting back on everything that simply doesn’t help us innovate or keep customers happy.

Perfection is achieved not when there is no more to add.

It’s reached when there is no more to take away.

Why we should first do as little as possible

prototype-then-polish.png

There are two traps we often fall into when developing something new:

  1. We try too hard to plan ahead and come up with everything we will possibly need before starting any work.
  2. We spend a lot of time making one part better and faster when it doesn’t help to make the overall performance better.

In software development the classic problem is one of requirements and specifications.

We usually don’t know what we need to do the first time we approach a problem.

It’s the process of engaging with and solving the problem usually helps clarify thinking – and when we have finished with our first solution we now know what we really need to do to solve the problem.

The idea of right first time simply doesn’t work when we don’t know what the right way is yet.

A better approach is to prototype our way to the right solution.

We ought to start small and simple – designing something we and others can understand.

Whether it’s a business process or a software program, once we can show others a working prototype we will be able to see reactions, get feedback and other useful information which can help us refine our ideas.

It’s also important we don’t get too fancy or try to locally optimise things.

Something very clever right now may be hard to understand in three year’s time by someone else, who might decide to throw out all our work and start again instead.

Local optimisation is the idea that we work very hard on speeding up one part of the process but miss the real bottlenecks in the system.

The overall time any system takes to work will be controlled by its slowest component. Making any other part work faster will not reduce the overall time.

For example, it doesn’t matter how fast we get ready in the mornings if the real bottleneck is how long it takes the bus to get to our stop.

We could be 20 minutes early – but it’s the bus time that will decide whether we are late or on time to work.

Our natural tendency, very often, is to try and do more – plan more, think more and have more.

In reality that leads to bloat – creating large unwieldy systems no one loves.

We would be better off following a few simple rules:

  1. Prototype then polish. Get it working first, then try and make it better.
  2. Doing nothing can be very constructive. Words that aren’t there can’t be read wrong. Code that isn’t written can’t fail.

If we must do something – then we should concentrate our time on the things that deliver exponential results, not incremental improvements.

Why we focus on our concerns instead of on users’ needs

conways-principle.png

Why is it that many systems – software applications, company policies, operational processes – are hard to use?

Take websites for example. How many company websites are structured in an easy to use, logical manner?

If we ask any company’s marketing team, they will probably say that their website is structured, laid out and easy to follow.

For them, that is.

This is an example of a principle called Conways’s law, which says that Any organization that designs a system (defined broadly) will produce a design whose structure is a copy of the organization’s communication structure.

In other words, the way in which we structure ourselves influences the systems we create.

For example, if we have two factories, one making bread and the other making jam, we are likely to advertise ourselves as having two product lines, the bread line and the jam line.

We’re unlikely to combine them and pitch ourselves to customers as the jam sandwich line – even though they might actually be looking for a sandwich rather than a collection of components.

This is a natural way for an organisation to behave – after all the way they look at themselves seems natural and normal – so why not show themselves to the world in that way?

Except to a user with little experience, it’s hard to work out what companies do, so they will pick the one that makes it easiest for them to understand.

The problem gets worse as we try and create bigger and bigger systems.

For example, a large software application that tries to do everything will find itself bogged down as it grows, constrained by previous decisions and choices about architecture and design.

One solution to this problem is to limit the size of teams – use multi-skilled individuals in small teams that have end-to-end responsibility for a product.

This is the principle behind work cells in lean manufacturing.

These teams tend to produce work that has clean edges and plays nicely with other teams.

Small teams are also fast – they can get together, come up with a plan, develop a product, test it and get feedback, and iterate and improve in the time it takes for a large organisation to do the paperwork needed to get permission to start.

Although, the size of teams is not a solution by itself – it simply produces systems that may be smaller, simpler and work more independently, and so be easier to scale.

The point is that our default approach when trying to design anything is to focus on what we think a user needs.

But, that thinking focuses on us – not on the user – who might actually approach the situation from a completely different point of view.

Perhaps that’s why some of the most useful tools have been developed by people who made them for their own use – they knew exactly what they wanted from the start.

How to create small changes that make a big difference

EAST-model.png

If we want to change our behaviour or influence the behaviour of a group of people around us for the better, what should we do?

In Inside The Nudge Unit, David Halpern describes how the Behavioural Insights Team in the UK government showed that designing policy using behavioural insights dramatically improves results and outcomes.

If we’re trying to do something – for example encourage more people to use public transport or corporations to invest in energy efficiency – we can use a simple framework developed by the Nudge unit to design a programme.

The framework can be remembered with a mnemonic – EAST – which stands for easy, attract, social and timely.

We need to start by making things Easy.

Just as water flows downhill, people are more likely to do something if it’s simple or the default option.

Anything that adds friction reduces performance – so we can remove friction to make things easier, or add it to make things harder.

For example, supermarkets now keep healthy snacks closer to checkout and sweets further away so that buyers find it easier to choose a healthy option rather than an unhealthy one.

Asking people to turn off the lights or the tap when they leave requires an action from them.

Making it the default through a sensor and switch or taps that open for a preset amount of time makes this easier.

Then we need to get their attention – attract them.

We can do this if we personalise information, make key points obvious, use trusted, authoritative or well-known people to publicise information and create incentives for them to act.

The key thing is getting people to have an emotional connection with the idea.

We are also more likely to do things if we see other people doing them – we are social creatures.

We look around us for guidance and confirmation that what we are doing is the right thing to do.

In many organisations, recycling is now the norm with segregated bins for different kinds of waste.

We need to make use of networks to reach out and use social recognition – awards, committments, promises – as ways to engage and enthuse people.

For example, people are much more likely to recycle when they see other people also doing it. Conversely, if they see others littering, they are more likely to do that too.

Finally, interventions work best when they are timely.

For example, the best time to work with organisations to improve energy efficiency is to engage with them at the point they are making new purchases.

That is when they can compare the purchase costs of different pieces of kit to the lifetime costs of owning and operating the kit.

If they can see that they save money over the long term at that point, then the are more likely to go for the better, more expensive option, rather than going for a cheap thing now that is more expensive and wasteful over the long term.

When we’re planning a change, whether at an individual or organisational level, we need to look at our plans and see how things might work out.

We are much more likely to be successful if we can tick off the four elements of the EAST framework.

What is our first reaction when we see someone or something?

susan-fiske-categorization.png

We have a rapid and largely unconscious way of judging things and people we see for the first time.

Susan Fiske, a Professor of Psychology at Princeton, came up with the Stereotype Content Model (SCM).

This model says that we look at people and things and assess them along two axes.

Along one axis is how warm or cold we feel towards them.

Along the other axis, do they seem competent or less competent.

As the name of the model suggests, it predicts our stereotypical reaction to people, groups and things.

These reactions have developed over time as we evolved – and help us decide whether there is a threat to us or not.

For example, we perceive many social groups as warm and competent – these are friends, friends of friends, people we meet in offices wearing suits giving us presentations and so on.

They are not seen as a threat, and so we have a fairly positive reaction to them.

On the other hand, what if it’s a social community that we don’t know very well but which controls a section of business or trade.

Or perhaps it’s an aloof and wealthy owner of an organisation employing many people.

In those cases, we may respect the community or person as competent, but feel a coolness towards them, driven apart by differences in culture or status.

On the other side, we may feel warmth towards an elderly person but be less convinced about their competence.

The way we feel, however, may mean we help them cross the road, with their luggage or go to their aid when something is wrong.

A cold reaction may kick in and we hurry past if we see a homeless person holding a bottle – that could be seen as a threat and we don’t stop to get involved.

We get the same kinds of feelings when we look at things – like cars, for example.

A Mercedes going past us on the street may seem cold and aloof but a Camper van seems open and welcoming.

So, what does this mean for us?

The first reactions we have are quite likely to affect the way we act.

For example, feeling less positive about a vulnerable group will lessen our willingness to give.

Seeing exercise as something we are less competent at will drain our motivation quickly.

What we want to do is create more associations with things that are warm and competent – if we see them as positive and fulfilling we are likely to engage more and persist longer.

This attitude alone might make the difference between success and failure.