02 February 2016
I feel like most things that I build fall into a state of perpetually being almost awesome.
If you give me a problem statement for a piece of software - even a vague one - I’ll usually quickly establish what I want to build and get excited about it. Designing systems is fun. There’s nothing quite like that feeling when something that I shipped makes a difference for someone, even just a small one, like removing a bit of friction from someone else’s day. I also do my best to ship features as soon as they’re remotely useful, to keep momentum going and to establish a good feedback flow.
The problem is that it’s much faster to envision a complex system than it is to actually write one; the brain always lags the fingers. The system in my head is inevitably more complete, less painful, and much cooler than the one that my users can interact with today. I never look at what I’ve shipped and think, “this is awesome, this works.” Instead, all I can ever see is the delta between what exists and what I want to exist.
It’s an unfortunate trait of my brain. It means I spend a lot of time feeling impatient with myself and frustrated with what I haven’t built. It’s a great way to have a lot of drive, but it’s also why I have to be very careful to do a healthy amount of non-software things in my life, to stave off stress and burnout.