Musings / Archive← All musings

Fifteen minutes, then ask

My friend Nikhil taught me a useful rule for programming: give yourself fifteen minutes, then ask someone.

I like solving problems. Most programmers do. We build a picture of a system in our heads, leaving out enough detail to make it manageable. Then a bug comes along that doesn’t fit the picture, and we start looking. One question leads to another. Somewhere along the way, the small fix becomes the afternoon.

a series of rabbit holes

There is pleasure in this kind of wandering. Sometimes I learn something worth knowing. But the original problem is still there, and someone else may already understand the part I’m struggling with.

Nikhil’s rule gives me a place to stop. I estimate the work first. If I think the investigation will take more than fifteen minutes, I ask right away. Otherwise, I set a timer and check in when it goes off. Even when I’m working alone, or my teammates are in another time zone, the timer tells me something useful about how long I’ve been on Stack Overflow.

A short conversation can save an hour or two. At a hypothetical $100 an hour, asking for help is easy to justify. Better still, I can spend time with someone who knows the system before I start changing it. A proper handoff gives me enough context to work independently and makes it easier to ask the next question.

There is a tension here. I want people to ask for help, and I want long stretches in which nobody interrupts me. I don’t think keeping a chat window open all day resolves it. A slow conversation can take a surprising amount of attention, one glance at a time.

Paul Graham’s essay on the Maker’s vs. Manager’s Schedule helped me think about this. I don’t agree with everything he writes, but I recognize the difficulty of trying to build something around a calendar full of meetings. I like two large blocks, separated by lunch. Roughly three hours on either side gives me time to get into a problem and stay with it.

Other people prefer meetings early, late, or close to lunch. It’s worth asking the developers and designers you work with. I know how hard it is to concentrate with a meeting approaching. I also know how much time I can lose on my own. I’m trying to make room for both the uninterrupted work and the conversation that helps it along.

Eric Nakagawa