Release Early, Release Often

That’s a phrase you’ve probably heard before. But usually people will say this, and then when they’re in a situation where they need to follow this advice they balk and don’t follow through. They’ll say things like “Yea, no one really does that” but they’d be lying both to themselves and in general.

If you want to see an example of a company that not only does this frequently but seems to have it in their company’s life blood, look no further than Google. Specifically look at Android, Maps, Gmail, and even Google+. If you go back and look at the earliest iterations of these products, you can tell they were released before they were done being cooked.

Google+ is probably the best example of this, but not in the way you might think. It took Google a few tries to get social networking right. First there was Wave, which was awesome from a technology standpoint, but failed on every other level. Then Google tried Google Buzz, which had elements of Wave in it, and was heavily tied to Gmail. Then there was the privacy issues around Buzz. This product also largely failed. But the third time was a charm and Google+ came out to rave reviews and deep integration into Google’s ecosystem of apps (Android, Docs, YouTube, Search, etc). Some people have written Google+ off as a failure because it doesn’t have Facebook’s numbers. But Google isn’t looking for G+ to be a Facebook clone. Instead they’re looking to make it a deeply integrated core product that ties in well to the rest of their ecosystem.

Android is another example of Google releasing early and often. The first version of Android available on a device wasn’t really baked to completion. In fact Andy Rubin, the Googler in charge of Android has said that their 1.0 was really more like a .75 version. But each release of Android (sometime with multiple releases per year) things slowly improved. Culminating with rave reviews and awards for Android 4.0’s Ice Cream Sandwich release, even from the Apple faithful.

When Gmail was first released, it didn’t even have a delete button. You had to “trash” items, and then the trash folder was deleted at regular intervals, users didn’t even have a way to empty the trash at the time. In fact, it took a year or two for Google to add a delete button in Gmail, allowing users to bypass the trash altogether.

I’ve even done this on my own personal projects. When I first released The Noows app, it didn’t do any javascript, when you clicked the “Noows” button it was a post back to the server, and the page had to be reloaded. I didn’t add the AJAX-y features until much later. On CodeCasts.tv, I released a very simple website with very little in the way of video play tracking. I added that after a few videos had been released. I didn’t even have pagination on the front page because I only had a single video.

The point here is this: It’s possible to release early and often. So stop making excuses and do it.

As a developer, it’s our goal to get things done so that we can get things released. If you’re not shipping software, you’re failing as a developer. If you’ve worked on a project for 6 years and it wasn’t released, you didn’t do anything. Sounds harsh, but not shipping means you’re not finishing. Even after you’ve shipped, you’re not finished.

Advertisements
This entry was posted in Commentary, programming. Bookmark the permalink.