Skip to content

Blog · 5 min read

What shipping alone actually costs

Everyone talks about the freedom. Fewer people mention that you are also the QA department, the support inbox and the person who has to decide when something is finished.

There is a particular kind of tired that comes from being the only person who knows how something works. Not the good tired, the one you get after a long day where things went right. The other one. The one where a stranger emails you at 11pm to say the export button does nothing, and you know before you've finished reading the sentence exactly which line of code did it, and you also know there is nobody else on earth who could fix it, so you get up.

I work alone by choice. I want to be clear about that up front, because the rest of this post is going to sound like a complaint and it isn't one. It's an invoice. Everyone who talks about going solo talks about the freedom, and the freedom is real. Fewer people itemize what it costs, so here's the bill.

You are the QA department

When I finish a feature, nobody tests it but me. I am, at that point, the worst possible person to test it, because I know how it's supposed to be used and my hands go straight to the happy path without asking my permission. I can't un-know the design. I can't be surprised by it.

So I've learned to be deliberately stupid with my own software. Tap the button twice. Rotate the phone mid-save. Paste a novel into the field that expected a name. Turn the Wi-Fi off halfway through the upload and see what it does. Every one of those has found a real bug at some point, and every one of them is a thing a second person would have done by accident on day one, for free.

The friends and family who test my apps help enormously, and I love them for it, but they are not a QA team. They are people with jobs who are doing me a favor. They will tell me when something is confusing. They will not, and should not, spend a Saturday trying to make my app crash.

You are the support inbox

Every app I have ever shipped has a support address. Every one of those addresses goes to me. When you email support, you are emailing the person who wrote the bug, and I think that's actually a good deal for you, since nothing gets lost in a queue and I already know where to look. But it means the inbox is never somebody else's problem. It's never closed. A busy week for the app is a busy week for me, whether or not I had other plans.

The strange part is that I like it. The emails are how I find out what the thing is actually for. I built Eat Safely In Florida so I could check one taco place, and then the emails told me that people mostly use it to confirm their regular spot is fine. I would never have guessed that. Nobody would have. That's information you can only get from the inbox, and you only get it if the inbox is yours.

You are the person who decides when it's done

This is the expensive one.

On a team, "done" is a negotiation. Somebody wants to ship, somebody wants one more week, a manager splits the difference, and the thing goes out. It's not a great system but it does have a useful property: the decision gets made by an argument, and the argument ends.

When you're alone, the argument is with yourself, and it never ends, because you're both sides. You know every rough edge. You know the settings screen isn't quite right. You know there's a state you didn't handle where someone deletes an item while it's still uploading. Nobody else knows any of this, and you could ship right now and nobody would notice for weeks. Or you could fix it. Or you could fix it and then notice the next one.

I have nine apps on the workbench right now and two of them are out. That ratio is not because seven of them don't work. Most of them work fine. It's because "done" is a decision, not a state, and it's a decision I have to make alone every time, and I don't always make it well. I'm getting better. Slowly. Writing this down is part of getting better.

You never have anyone to tell you the idea is bad

The good bit of working alone is you never have to explain the idea to anyone before you're allowed to build it. No pitch deck, no planning meeting, no getting buy-in. You think of it Tuesday, you're building it Tuesday afternoon.

The less good bit is that the same door swings both ways. There's nobody to say "that's a lot of work for a feature nobody asked for," or "you've built this exact thing twice already and abandoned it both times." I have built the exact thing twice already and abandoned it both times. More than once. I have a folder.

What I do instead is wait. If I still want the thing after a week, it's probably real. If I've forgotten about it, it was Tuesday talking.

The good bit, since I promised this wasn't a complaint

Everything above is true and I'd still pick this every time.

Nobody is going to make me add tracking to an app to hit a growth number. Nobody is going to make me ship something I think is wrong because a quarter is ending. Every decision about what my software does to the people who use it is mine, and if I get it wrong, it's my name on it, which turns out to be a very good way to make sure I think about it.

The tired is real. The 11pm email is real. But the person who gets up to fix it is also the person who gets to decide what the thing is, and I've never found anyone I'd rather hand that to.