Wrong turns are as important as right turns. More important, sometimes. – Richard Bach
You should never ask someone what they want.
It’s a question you shouldn’t even ask yourself.
Why, you ask?
There are three reasons, wrote Watts S. Humphrey in one of his essays:
First, people find it hard to visualise a solution to their problems, especially if they aren’t professionals in building those kinds of solutions.
Second, they often know how to do their job but not why. So, all they can show you are their existing, often manual, ways of working.
And third, if you do have a solution it could change everything about how they work and mean thinking again about what problem they have.
That’s why most approaches that focus on problem solving end up solving the wrong problem.
It takes multiple attempts to get to something that actually works for you.
As a professional, you come at things from a different point of view.
You’ve seen people experience problems that you’ve solved before, so you know what they need – a very different thing from trying to make what they want.
But that only works when you’ve been there and done it before.
When its something new you’re at the same place as everyone else.
And that’s a place filled with insecurity and angst.
Angst because, if you’re like most people, you worry that this time you won’t succeed – you won’t get it right.
And that’s ok – it’s just something that you have to get past.
But you can only do that if you have a way – a strategy ready for when that happens.
One approach that has had almost no traction is called Literate Programming.
It’s not the easiest thing to explain – but in essence its inventor, the legendary Donald Knuth, said you should first think about what you’re trying to do in plain language and then express it in code.
From that point the whole concept starts going downhill rapidly.
In an attempt to avoid that particular section of slippery slope we should talk about bread.
How would you make a mechanical breadmaker?
You might start by learning how to make bread.
The first time I tried doing that, we were in Italy and I was bored, and making bread seemed like a good idea.
So, I had a go.
It was a fairly angst inducing experience, given that I was guessing that flour and water was involved and had no books or Internet.
I’d forgotten about yeast and a few other ingredients, and the resulting block in the oven felt and tasted like a house brick.
So, I did some research, got a little focused and ended up with an edible loaf.
And it seems to me that any creative endeavour and, let’s face it, everything we do can be creative, needs an approach that lets us explore problems rather than trying to solve them.
If you’re writing a book or a program it makes sense to start by thinking and writing about your hopes and fears and expectations of what the thing will do.
Then you can come back and refine your thoughts, focus your attention and come up with a plan.
The book or program should then almost write itself – the result emerging from the cocoon of thought you’ve built up around it.
It feels sometimes that people are too eager to get to the end – without checking if the end they get to is the one they need to reach.
A little thinking might help – but it’s hard work.
Mainly because we need to admit that we’re unsure and need to look around, ask questions and experience things before coming up with a solution.
But if we do that maybe the result we get will be the one we need.
Cheers,
Karthik Suresh