samwho keyboard logo

Simple Complex Easy Hard

You might have noticed the last time you were doing chores or tackling a tricky problem at work, that when something is hard it's not always hard in the same way. The hard you experience when doing chores, that mindnumbing , I-can't-be-bothered hard, is different to the hard you might experience when debugging an elusive bug in a distributed system.


The 2 axes of difficulty

There are many things that determine whether a task is difficult or not, but you can make a start on getting more granular by splitting difficulty into two axes: simple-complex and easy-hard.

What's the difference?

A sudoku puzzle is complex. It depends on your skill at sudoku puzzles, and you're able to do more complex sudoku puzzles the more you practice and hone this skill. A task is complex when the number of people that could do it tends toward zero. If a lot of people could do it, that would make it simple.

The other scale measures how much effort must be expended to complete the task. If you're put off by how much effort will be involved, it's likely hard. Something is hard when the number of people that are willing to put the effort in tends toward zero.

Why does this matter?

This distinction can help you with time estimations. Complexity is one of the key things that introduces uncertainty in to estimating how long a task will take. It's not unusual to get half way through a sudoku puzzle and realise you've made a mistake somewhere, and need to backtrack. On the other hand, you know quite accurately how long it's going to take you to mow the lawn.

Adding this vocabulary to your work tasks can help people to understand what to expect. A simple-easy task is likely to be predictably quick. A simple-hard task predictably long. A complex-hard task is anyone's guess, and may even be worth breaking in to several smaller tasks.

Other examples

Image showing 2 axes crossing in the middle, X axis is simple-complex, Y-axis is easy-hard, with a variety of examples of tasks. Looking after a newborn is simple hard, mowing the lawn is simple-middle, putting a mug in the dishwasher is easy-simple, wiring a plug is easy-middle, tracking down a bug that doesn't happen when you attach a debugger is complex-hard

I'm sure you might disagree with some of these, I didn't spend an enormous amount of time thinking about them. If you have other examples, I'd love to hear about them.