Release early, release often is a philosophy where you release the product as soon as possible and rapidly iterate it to perfection by listening to your customers. A polished release, on the other hand is where your product, in its initial version is solid, lacks obvious bugs and has just enough features to satisfy a majority of your consumers. Most software companies adopt either one of this and that choice is not superficial. In fact, it roots down to the heart of the company’s ideologies.
Before you launch your next big product, website, app, read this and decide which side you are on.
Philosophy followed by them
Release early, release often, has always been the mantra of Linux kernel, software from Microsoft and plenty other open source software. Microsoft (and Microsoft developers) followed this philosophy since its inception. The Windows Operating System, in the initial version (1.0) did not support overlapping windows which was a breakthrough feature on the then contemporary Macintosh. Despite that, a few years later, Microsoft was able to catch up with the competition by following the release early, release often philosophy. In 1995, the same race happened between Microsoft and Netscape with browsers. IE 1.0 was no where near Netscape, but a couple of years later, the fourth iteration of the browser, IE 4 nailed it.
In late 90s, when the web became popular, updating your software (web application) became even easier and web application developers, continued to follow the same mantra.
The workflow of a web developer used to be like this.
Make a shitty website
Improve your website
check your visitor count
Improve your website
check your visitor count
Once your reach a satisfactory level, mark your release as final (remove that beta/gamma tag).
Later in 2004, when Google introduced their Gmail, it was known for the perpetual beta in the logo.
Flickr moved from alpha to beta to gamma(!) in 2006!
Philosophy followed by Apple
Apple on the other hand polish their products to perfection. May be it’s their “Think different” culture or may be it’s the ingrained attitude of the late founder, Steve Jobs, to make “insanely great” products relegating profits or business strategies.
The first version of iOS (then called as iPhone OS), did not even have MMS, included in even the dumbest phones out there. Yet, every feature that was available, worked really really well. The first iPod, despite being available only for Mac users, was a runaway success.
Consumer mindset outside of Software
Let’s for a moment think outside of Software. Let’s take movies for example. Every single release of a movie, whether it is The Jurassic Park and its sequels or The Matrix and its sequels or Steve Jobs’s own Toy Story and its sequels never had “versions”.
The movies were great right from the first release and the producers and directors never “planned” to make their movie incrementally better. Of course there were sequels, but they were not “bug fixes” or incremental updates to the original movie. The same holds good for physical commodities like cars or cameras. Remember, the world had cars, cameras and movies, much before Software. So, how and why did people got accustomed to this way of life, when it comes to Software? Will you accept if your new car, in its “version 1.0” doesn’t speed up beyond 60? Will you accept if the car manufacturer promises a free “engine update” in the “near future”?
The reason was partly because, at least in the past, software was considered “Magical”. The first spreadsheet program (Lotus 1-2-3) can “sort” the marks of student in ascending order and made the process of calculating the rank among students in a class, super easy, fast and reliable. What usually took days, was accomplished within seconds using Software. Other commodities did not provide this level of satisfaction.
When something performs well on one area, human beings tend to be lenient in evaluating its performance else where. That “something” can be anything. A beautiful blonde girl who is “not so smart” or a restaurant that serves tasty food, but looks shoddy (or the other way round). This is precisely what happened to user’s perception of Software decades ago and unfortunately, has been continuing till now. A software that does one thing (sorting in this case) properly, but crashes often was still acceptable.
How Apple changed your consumers
Apple, on the other hand, tend to think differently. They never use the “beta” tag. (And when they do, it is still better than the competition). Look at the iterative changes that happens to any of their product. It, mostly remains same. The first iPod, still looks closely similar to the latest generation iPod classic and the first iPhone looks closely similar to the latest iPhone, the iPhone 4S and Mac OS X 10.0, looks closely similar to Mac OS X Lion. Leave software, even the light bulb invented by Edison a century ago, looks very similar in shape and size compared to the tungsten filament light bulb today. Contrarily, compare that to the control panel on Windows 95 to Windows 7 and the upcoming Windows 8 beta. It’s clear that, Microsoft didn’t nail it and they still haven’t nailed it.
With iPod, iPhone, iPad and several other products, Apple has proved that, Software can be done right, right from the initial version and has re-wired users’ brain to expect quality products even when it is Software. This can be seen on the ratings of same apps from the same companies on Apple App Store and Android Market Place. Ratings on Market Place is usually higher than on App Store even if the Android version is buggier. Apple users expect quality. They don’t tolerate sh*t.
These two philosophical differences might have stemmed from the thought process of Steve Jobs and Bill Gates who shaped the early software industry. Steve was a perfectionist. Anything less than the ultimate is a shitty product. Bill on the other hand was different. He was more focussed on the monetary aspects of things (that doesn’t automatically mean it’s bad) at the expense of quality.
What should you do?
The release early, release often mantra has created a notion that Software is unreliable and often buggy. Since most software are like that, consumers, more than not, aren’t willing to pay for Software just as easy as they would for anything else. When we learn this, we complain that, their attitude is wrong. We even go as far as comparing the cost of a Starbucks coffee to an app and say people don’t pay for software that costs a fraction of the price of a coffee. It’s not that people don’t want to pay. It’s more like, people are not interested in paying for something that they are afraid, might not work as advertised. To consumers, buying a software is more like taking a risk than buying a coffee. With Windows, the risk was viruses. With online, cloud only, web applications, it was privacy. With App Store, Apple has shown them, what trustworthy computing is mitigating a huge risk considerably. With App Store, the risk a customer takes is paying for a software that doesn’t work as advertised (or doesn’t meet the quality expectations).
While Apple was not doing well in late 90s, the industry thrived well on release early, release often mantra. It often worked since, funding the software product was easy when it was iteratively developed. But, it’s 2011 now. If you are making a iOS app, remember that your target audience are iPhone/iPad users. They don’t tolerate sh*t. The App Store is filled with high quality apps and if your app doesn’t meet that quality expectations, don’t expect a run away success. Make a polished product from day 1. If you are running low on budget/funding, don’t write software in the first place. If you were a movie producer, you can’t make a movie with half the money, release it and build upon that. Neither movies, nor cars or any other commodities are made like that. Don’t make a 0.8b release and expect users to tolerate it. Don’t promise *big* features on upcoming release. Some companies that I admire are Tapbots, Panic Software (they make the awesome FTP client, Transmit), AgileBits (the guys behind 1password). All of their products are “insanely great” right from day 1. Just because, something can be changed easily, doesn’t mean you should be changed frequently (iterated) even after release. Movies too had iterations, and cars had prototypes, but they existed only within the studio or the factory and never made it to the customers. You and me, the common man, doesn’t even know of their existence. Why can’t we build software like that? Why should you ship a product that’s not complete?
Let’s kill the notion that software can be made great only by rapid iteration. Make your next product an example of that.
Follow me on Twitter