Wednesday, May 2, 2018

Heuristics for Working: Doing

For a while now I've been collecting fieldstones on the topic of heuristics for working. Some of these are things that I've said to others, some of them are things that I've thought about when considering some aspect of myself or how I work, and others have come from books I've read, talks I've attended, and workshops I've participated in.

I've made a handful of rough categorisations and I'll put each set in a post under the tag Heuristics for Working.

But what do even I mean by heuristics for working? Good question. I mean rules of thumb for situations that arise in the workplace. They are bits of advice that can be useful to consider but don't offer any guarantees and will not always apply.

The collection is surely idiosyncratic, context-sensitive and perhaps too specific and too general in turn. Welcome to my head. I haven't sat down and tried to elaborate or enumerate more, or to try to fill the gaps. Everything here has arisen and been noted in the moment, although a good chunk of it is stuff that I've thought about in the past too.

Of course, having heuristics doesn't mean that I remember to use them, or pick a reasonable one when I do remember, or make a good choice when I have remembered and picked a reasonable one. That's part of the rich tapestry, isn't it? At least externalising them and listing them gives me an opportunity to try to understand and maybe change the way I work, the way I am biased, or the way I want to be.

Along the way, I got to wondering if there's one overriding heuristic, one heuristic to rule them all, a meta heuristic. If there was, I think it might run along these lines:
Question your heuristics.
I hope there's something interesting and perhaps even helpful here for you.


Remember that sometimes good work leads to bad outcomes.

Remember that sometimes bad work leads to good outcomes.

Wonder how you are doing this piece of work right now.

Don't expect perfection.

Ask what factors are relevant.

Ask how you can best make them obvious to those who need to know them.

When writing: start small, aggregate, edit.

Ask "what is the thing"? (The absolute key point, the heart of the matter, the nub of the problem.)

Can you draw a picture or a table rather than keep talking or writing?

What's the simplest explanation? (What is the thing of this thing?)

What's the simplest model that fits well enough for now?

Where does this thing fit into a universe of things? What dimensions are appropriate to map the universe? Can I draw it?

Give yourself a chance to review something before it goes out.

Deliberately take two bites at the cherry: get first thoughts down right now. Wait. Review and think again.

Organise your work as early as makes sense:

Use meaningful names for your data, files, folders.

"new", "latest", "new_2", "other_way" and so on are not meaningful names.

"windows10_java_18u34_english_firefox_UTF8_JS-disabled", "windows10_java_18u34_english_firefox_UTF8_JS-enabled" are meaningful names in a scheme likely on a path to a nightmare.

When scenarios get complicated use identifiers for your data, files, folders and map a table of variables to them.

You will not remember tomorrow that "new36" is the input that generated "out_latest".

Store related work in related places. Ideally the same place.

Don't store unrelated work in that place.

Be consistent about how you name things.

Be consistent about how you record things.

If you're not inventing process each time you are freer to be doing the work.

Break work down into small chunks and check each chunk.

Ask how you could get evidence that you've done what you wanted to.

Ask what would be true if you had  done the right thing.

If you don't know how to check whether what you're about to attempt worked, ask yourself whether doing it now is the right move.

Apply your testing skills to yourself and your work.

When you have an idea, don't rely on yourself to remember it. Externalise it.

Collect notes in the places they'll be useful.

Think big, act small.

Seek the the smallest piece of work that provides a benefit and doesn't actively contradict the overall mission.

Know the mission.

Note when the mission changed.

Change the mission consciously.

Seek the same result in a cheaper way (for some relevant measure of cost).

Seek better results at the same cost (for some relevant measure of goodness).

Find a way to iterate quickly.

Plan. Do. Check. Act.

Ask whether you can script it if it's regular and repeated.

Ask whether semi-automation is enough of a win at sufficiently small cost.

Find an an analogy to your problem and look for a solution in that space.

Search for a tool or someone else's solution.

Ask where you're trying to get to.

Ask whether there a direct route from here to there? Also, any other routes.

Can you work backwards from there and forwards from here?

Challenge yourself.

Gain credibility by doing credible things.

Gain credibility by doing things credibly.

Gain credibility by talking from experience.

From time to time put yourself outside your comfort zone. Watch how you react.

Wonder how you could react differently next time.

Work to make sure there is a next time.

Image: 45cat

No comments:

Post a Comment