Hypothesize Your Way Out of the Ebb

Being stuck on an engineering project is frustrating. It’s also you’re biggest opportunity to grow. Photo by Edu Lauton.

Software Engineers focus a lot on optimizing their state of Flow. But I’m most curious about its opposite: The Ebb.

The Ebb is when you have a project to work on but you find yourself checking your email again. It’s when you’ll find any excuse to get pulled away from your desk, when coding is a chore. It’s when you don’t know how to move forward.

The Ebb has eaten up more of my time than any slow compiler or inefficient tool. How do you escape?

Learning is changing your hypothesis.

When you’ve reached a state of Ebb, it’s likely because you need to learn something before proceeding. But, learning is hard work. How can you make sure you’re learning and not procrastinating?

I believe that people learn by building hypotheses, testing them, and repeating.

Let’s say you’re eight years old. You have a hypothesis that getting people to notice you is a reliable way to make friends. You might then test this hypothesis by throwing rocks at the other kids on the playground. You change your hypothesis based on how the other kids react. The cycle of learning is complete.

State a hypothesis and experiment on it.

You can work your way through The Ebb by making sure that you stay in this cycle of learning. The process is slow, but sure.

Write down each of these:

  • Your hypothesis for how things work now.
  • A step-by-step experiment for disproving your hypothesis.
  • The expected outcome of the experiment were the hypothesis true.
  • The actual result of the experiment (after performing the steps).
  • A modified hypothesis. Now repeat.

It’s important to write or type each of these things. Thinking them is not enough.

An Example: Debugging Google Docs.

I’m going to use a fictional example from a product I’ve never worked on to illustrate. You can write these sorts of notes in any text editor, of course. I like using Quiver for this sort of thing.

Problem: Users are seeing a crash when they load the page, and the stacktraces aren't helpful.
Hypothesis: this is a browser compatibility issue.
Experiment: look up the browsers for 10 recent crashes.
Expect: only one browser appears across all of them.
Result: 2 different browsers appeared.
Hypothesis: these users are visiting docs that have been deleted.
Experiment: Create a document, copy its link, delete it, and open the link.
Expect: The crash occurs.
Result: No crash. Displays "This document has been deleted."

This process works for me because:

  • The growing paper trail of experiments gives me a stronger sense of progress.
  • The notes from previous experiments end up being useful later on.
  • The imperative-statements of the experiments are clear and energizing. They cut through any ambiguity of “what should I be doing right now”.

How do you Ebb?

Develop a strong set of tools and techniques for working through Ebb. You’ll tackle harder problems with enthusiasm. You’ll also get to spend more time in a state of Flow. What works for you?

For more cool posts like this one, follow me on Medium.