Ship it, already!

I could let this software languish on my laptop, and be cool—or, I could show people and obsess over all the things that don’t work, I would change, or redo from scratch. 

Niccolò Brogi
3 min readDec 23, 2013

I’ve been at work on my goal of making a web editor for mere mortals since I can remember, but I’ve started working on it more seriously around January 2013.

Following a—somewhat unsuccessful—IndieGoGo campaign, I committed to shipping a demo by December 2013—so that’s in 7 days.

I’ve read about a thousand articles about how you should ship your product, or if you’re not ashamed of version 1.0 you waited too long, etc. Now that it’s time, though, I do feel there are still 1000 things I would want to change, and I would love to have an extra year or two to work on it.

How come it’s so hard to let go?

You’ll never be done

Whether you’re a perfectionist, or just care about something, you’ll always find ways to improve your baby and you’ll never really be done.

With software, it’s very easy to waste weeks perfecting something that was totally fine (or at least worked) in the first place.

When you’re in the middle of building component 4/10, it’s not uncommon to figure that there’s a better way to do it, and many programmers will throw everything out and start from scratch—specially if it’s a personal project—to do it the right way. Of course, this puts you back a few days or even weeks, which will add up. When you’re almost done at component 7/10, then, you realize 5/10 could work better this other way, you get the drift.

I’m just going to let go. There are a 1000 things that don’t work as I want them to. Some don’t work at all. If I wait until I’m 100% satisfied, though, I’ll never ship the damn thing.

Improvements will be added in version 2.0, but at least 1.0 (or actually a beta) is out for people to see.

Problems with not shipping

If you don’t ship, I see a few negatives:

  • you’re missing out on real feedback from real users: you might be thinking that your product or feature is awesome and work on it for months, but what if no one cares, and people actually liked some other obscure feature you didn’t even remember was there? If you ship, you’ll get the feedback and know.
  • someone might come up with the same thing, and you’re screwed: I don’t think it would be the first time where a product identical to yours comes out right when you were obsessing over the font of the menus and didn’t ship yours.
  • you don’t get closure: I’ve waited to get this software out for a year. Can’t wait to call it 1.0, close a chapter, and start improving it.
  • you don’t fail early: last but not least, your product might be total crap no one cares about, and you won’t know before you’ve wasted 2 years on it. I’d rather know a few months in.

If it’s useful, people will give you a chance

I’m not really sure about this, but I think that if your product is worth something to people, and it’s something useful, they will forgive the glitches, let you know what they like and what they don’t, and still wait for you to fix whatever isn’t working and even use the product in the meantime (if it’s usable).

Windows 1.0 was a joke, but they kept working on it and eventually it got better. Twitter crashed all the time. No one was on Reddit at the beginning. Etc., etc.

Of course, people could just destroy you and your chance of getting some attention again might be close to zero, but I think the negatives of not shipping outweigh the risk, if you think your product would be useful to people.

Conclusion

I’m still scared, but I will ship it, already!

Now, back to work. Only 7 days left.

My name is Niccolò Brogi, I’m a web developer/consultant from Florence, Italy. You can learn more about me on my website.

--

--