Why are startups always talking about “launching” or “shipping” software?
The idea of shipping software comes from the old days when all of the software’s features had to be added by a certain date so that physical CDs or floppy disks could be manufactured, boxed, and literally shipped out to stores. Everything had to be just right because any updates would also have to be physically shipped.
Thankfully, this model of shipping software has been dead for a long time. Now we can make changes to applications quickly, typically without users even noticing. One of the pioneers of web apps, Paul Graham, has talked about how he deployed bug fixes to his site while still on the phone with the customers who were reporting the bugs. Customers were, of course, thrilled that their bug had magically disappeared.
Even as web and mobile applications have taken over the world, we still use this outdated metaphor of “shipping” software. Unfortunately, this gives startup founders the wrong impression of software development. It makes development seem like a task that just needs to get done so that they can cross it off their to-do list. Too often early-stage startups get into the trap of thinking that their product will be done after a big launch and after that they’ll just need some routine maintenance to keep the servers running.
Great products are built incrementally, not shipped with a single big launch. The best applications – the ones you use everyday – are not defined by the first version, but rather by the next hundred or thousand releases. Every great startup has been built incrementally over a number of years.
Facebook didn’t start with timelines, statuses, groups, or messaging. It actually started as “The Facebook” and was only a way to find people in your classes at school. Heck, they even had an image of Al Pacino in the header.
But Facebook released just enough features for the app to be useful to early users. And the company continuously released improvement after improvement, while growing its user base. It’s motto was, “move fast and break things.” Now it has teams of designers and developers releasing new features every day – incrementally. Had Facebook started with too many features before releasing to the public, it would have been delayed and quickly passed by a competitor. Similarly, had it launched and stopped releasing new features, we would have never heard of Mark Zuckerberg.
Similar to Facebook, the first version of Twitter, or “twttr” as it was originally named, didn’t have retweets, trending topics, or lists. They didn’t even use the name “tweets” to describe the messages. The first version was focused on text messages.
Twitter’s users were the ones that invented most of the core features, including retweets, @ mentions, and hashtags. But none of these features would have been organically discovered had the company not released that first bare-bones version and continued to enhance and improve the service.
Uber, or “ubercab” as it was originally called, has gone through a similar process of continuous releases and improvement. Rather than wait until it supported multiple types of cars, or even have a decent logo, the service got started with a basic site and app and only offered black town cars. From there the company continuously improved its website, apps, and services. Now Uber has slick branding and apps, offering everything from shared carpool rides to food to helicopters.
Facebook, Twitter, and Uber knew that their first version wouldn’t be their last. Instead of trying to include every possible feature, they planned for change and continued iterating on their initial vision. If these successful startups couldn’t even get the names of their apps right in their initial releases, how can any startup founder expect to nail their entire feature set for their big launch?
To get an idea of how often successful startups improve their applications, just take a look at how many apps are updated on your phone every week. Uber, Twitter, Facebook, Slack, Google, and many others release new features and improvements all the time. Continuous improvements are even more common on the web, as new features can be released and tested everyday.
Plan for Continuous Releases
In tech startups, the key is understanding that your software is your product. Treat it as a living thing that will grow, rather than something that you need to “ship.” Plan to release a first version that provides something that people want.
Then listen to your early customers. Understand how they’re using the app and how it can be improved. Founders are always surprised when users end up not caring much about some features that were thought to be so critical during planning. At the same time, there will be simple changes that would mean the world to them. Make sure you have a plan to continue improving your software with this customer feedback.
Your app and startup will win by releasing early, finding something that users love, and incrementally releasing updates that expand the functionality and improve the user experience. Remember that as you continue to solve your customers’ problems with each release, users will focus on what’s new instead of what your first version looked like.