Oblique Strategies are a series of pithy prompts to help with lateral thinking (e.g., “Try faking it!”). The list in this blog is similar to those strategies (with some overlaps), but it’s tuned for getting unstuck while developing software. You probably have your own list of things you do when you don’t know what to do — maybe you already do some of the things in this list, or perhaps you have some strategies that are missing from this list.

You may find it helpful to bookmark this page and return to it the next time you’re inclined to guess at what to do next.

Before we begin with the altenatives to guessing, let’s answer the question “Why not just guess?”

Background: why not guess?

What do I mean by guessing?

Suppose I have a bug that could be somewhere in any one of five files. I pick a file at random and attempt a fix. It doesn’t work. That could be because my fix was bad, or because it was the wrong file. I choose a different file, and attempt a fix. That doesn’t work, either. Again, it could be my fix or the file that’s wrong. This continues in an ever-expanding tree of uncertainty.

In this post, “guessing” refers to a troubleshooting technique based on luck.

I guess because I don’t know what I’m doing

When I have to guess, it’s because I am missing some knowledge or skill. Sometimes, it’s general knowledge (e.g., “How does npm publish choose which files to upload?”), and other times it’s specific (e.g., “What’s wrong with my project configuration?”). I guess because I want to get this working (quickly) more than I want to learn why it didn’t work.

Guessing is easy

If I don’t know where to make the change to solve the problem, the option that takes the least effort is to roll a die (often figuratively). Pick one arbitrarily: the first file I see in my file explorer, the file that is already open, the file we edited most recently, etc.

Guessing is slow

Unless I get lucky, I’ll have to make many attempts before I hit on the right one. What’s worse, every time my prospective fix doesn’t work, I don’t know if it’s because I put it in the wrong spot or because the fix is wrong. Am I one stray punctuation mark away from everything working, or am I in the completely wrong file? The uncertainty cascades, making the solution harder to find.

Guessing hurts my career

I guess because there is something relevant to my work that I don’t know. When I guess, I avoid learning. That means the next time I hit this problem, I still don’t know. Guessing can be a shortcut to completing this week’s work, but it does not equip me to be more effective next week, month, year, etc.

By contrast, learning compounds: the more I learn, the less I guess, and the faster I work. When I learn today, I make myself more productive in the future.

Guessing is stressful

When I’m in a long chain of guesses, I am out of control. My success or failure depends on luck. Will I solve this before lunch? Will I solve this today? I can’t say. Instead of a sense of steady progress, I’m filled with uncertainty and unease. That’s not a recipe for a fun, satisfying, and effective work day.

One guess is good, many guesses are slow

If my first guess is right, that was a very inexpensive solution. In a single attempt, I solved the mystery without having to do any extra learning. Awesome!

The more guesses I make, though, the higher the cost and higher the confusion.

So – in general – I’m likely to make one or two guesses, but after that I reach for a different strategy, something that does not rely on luck.

Alternatives to guessing

When I have no idea how to solve a problem, I reach for a technique like one of the following. As I progress in my career, I collect more strategies to use instead of guessing. I sometimes learn them from someone else (a teammate or an author whose work I’m reading), through experimentation, or variations on a theme. You probably have your own list. This list may give you some ideas of strategies to add to your list. At the very least, I hope this list inspires you to intentionally reach for an alternative to guessing — so you can enjoy the expedience now and be better prepared for the next mystery you face. If this is a totally new idea to you, consider bookmarking this page and referring back to this list when you’re tempted to guess more than once. As time goes on, you’ll internalize the techniques that work well for you, and you won’t need to come back here.

Instead of guessing, you can choose one of the following (whatever makes sense for the problem at hand).

Fix my mental model

Clear the noise

Generate novel ideas

Gain general knowledge

Gain specific knowledge

TL;DR

When you’re tempted to guess, learn something instead. If you must guess, make sure you’re learning something from the results of the guess so you won’t have to guess next time. Your success does not have to rely on luck, and the strategies above can help turn a guessing situation into a learning situation.