inessential by Brent Simmons

Evergreen Diary #3: On Punting

I have a vision for 1.0, and then, as time goes on, I have to cut it back beyond where it hurts. I have to keep punting. I hate this part of shipping software.

But I also love it because it reminds me that I have the stomach for it. Shipping software is an emotional skill.

After shipping — no matter what — there will be people who absolutely cannot believe that feature X wasn’t included. In fact, it’s the one thing they totally need.

And they’re right. Not wrong. And I would have loved to have included feature X, loved I not quality (the app maker’s honor) more.

* * *

I wondered if Evergreen as open source instead of as a for-pay app would affect what and how much I punt. I hope the answer is: not at all; the decisions would have been the same.

I think that’s right because I’m trying to make as good an app as I can, which would be true regardless.

But it is nice not to have to consider money as I make decisions. I do think about how I want it to have as many users as possible, and I want people to love the app. And I have to think about the economy of my time. But I don’t have to consider money.

Another difference between open source and commercial is that I can be utterly transparent about what’s been punted. Check out Evergreen’s 2.0 milestone. It will keep growing. Every single one of those things was originally supposed to go in 1.0.

* * *

Some things I keep reminding myself as I make progress toward 1.0…

This isn’t the last release, it’s the first. There will be many more. (I hope to work on this app for 20 years. It’s been only three years so far.)

Any feature I ship, I probably have to support forever. So it’s wise to be cautious.

Quality — design, stability, performance, lack of bugs — is way more important than any collection of features.

And, perhaps most importantly: shipping 1.0 means learning about your users, how they use your app, and what they need — and those lessons will change future plans, as they should. It’s best to learn those lessons early, before doing too much.