Perpetual Rewiring

Testing Assumptions

I hate being stuck.

With technical problems, my instinct is to get it over with as quickly as possible, make big changes until the problem's not even relevant. But the longer you're stuck, the smaller the steps you should be making. If you've gone wrong, it's because you didn't check your work and missed an incorrect assumption. That's normal, if you triple check everything you never get anything done.

But that's not now.

If it's not working now, give up and do it the slow way. When you've truly exhausted every option and logic refuses to appear, the only option left is to brute force narrow the scope of the problem until the problem has nowhere to hide.

You can do better than brute force, but it's that confidence to skip steps which probably got you here. If you've walked through everything you're doing and can't see the problem, restart from scratch. Add a tiny step and verify rigorously. Repeat twice in case of flukes, then verify the inverse is wrong. Then add one more.

When you find the step which is actually giving you trouble, vary it to the point of insanity. If you're doing something which requires a full process to test and can't be isolated to tiny steps, write down every permutation you try until the pattern appears.

When there is the slightest doubt, list all the options again, test all the options again, check your work backwards and inverted, throw in some nonsensical tests which can't possibly fail or make any sense, then recheck this is still the step which is the problem. Write down all your assumptions, then test them on the simplest example possible, then step your way back up to the current complexity.

All problems reveal their shape with enough examples, even if you cannot fathom the underlying logic. If you don't know the shape of it, you haven't done enough work.

Slow down, do it again, and write it down.

It'll feel awful.

Get some water and get out of your head. Talk to someone else about it. Talk to a duck, or the wall.

The pattern will reveal itself, but only if you slow down.

- Rew

Nightly Notes

Yeah, I had a rough day debugging.

Don't take this one too seriously. I'm yelling at my past self for rushing. I've make this sort of mistake across everything I've ever worked on.

I'll do it again.

Hopefully less often.

- Rew