← All writingWriting

Why I Like Trying Things Before I Understand Them

I learn a lot by building, but I also need to get better at staying with something after the first version.

Getting a version working

I usually want to try building something before I understand all of it. Partly because I enjoy it, and partly because I find out what I don't know much faster that way.

With the local voice system, for example, I could read about model latency and still not know how the conversation would feel. Once the pieces were connected I could hear the delays, interruptions, and speech resets. That gave me specific problems to investigate.

Khaaloop did something similar on the business side. Building the app exposed questions about payments, merchant onboarding, and operating in another country that weren't clear to me when I was considering the idea.

I don't think either example means building should always come first. There were things I could have learned before writing code, especially about whether a merchant would use the product at all.

It's also easy to keep starting things

The first version has a lot of interesting choices. You get to decide how the system should work and see something appear fairly quickly. Later you're fixing edge cases or dealing with an operating problem that doesn't have an obvious technical answer.

I can move to another project and say I'm exploring. Sometimes that's a reasonable decision, but sometimes the old project has just become less fun. It takes some effort to be honest about which one it is.

Starting another experiment can feel like progress while avoiding the part where I would actually have to get good at something. I don't want to make that a habit.

When should I stay with it?

I haven't worked out a general rule. I want to try enough things to learn what interests me, and I also want to spend enough time on one thing to understand more than the basic implementation.

One question that helps is whether I found out what the experiment was meant to find out. If I did, there may be a good reason to move on. If I didn't, I should be able to explain why I'm stopping without just saying there's a more exciting idea now.

Another is whether the problem still interests me when I can't make much progress on it. That's different from whether I like the tools I'm using or enjoy showing the first version.

Keeping notes

I want these project pages to record what I tried and what happened. Otherwise I can remember a project as useful without being able to say what it changed in my thinking.

I'm still going to build before I feel fully ready. I just need to get better at deciding when to keep going, and at doing enough preparation that the experiment answers a useful question.

Next draft: Why the Physical World Doesn't Scale Like Software