I previously discussed some of the benefits of a modern software deployment process–where continual updates and additions provide customers with the latest and greatest product without having upgrade costs getting in the way. As a software producer, I like the freedom that this incremental process gives me.
But the reality is that this process only goes so far.
Without constant, vigilant refactoring, code bases turn into disarray–which cause “minor” bug fixes and features to turn into major efforts. Similarly, without a watchful, forward-looking design presence, the user interface can turn cluttered and unwieldy as new features are shoehorned into an interface where they don’t fit.
When this happens, a lot of small, incremental changes aren’t going to help stop the hemorrhaging. It’s time to start over.
Along with any major version announcement for an app, you often read things like “redesigned from the ground up” or “completely rewritten.” This isn’t completely true. New versions of the same core product don’t start completely from scratch. They often start with what worked well in the previous version while the things that didn’t work well are re-implemented–and hopefully improved this time around. The features that truly didn’t work and never should have existed in the first place are thrown out or given new life as something new and unrecognizable.
If the product is a web application or a single version mobile application1 then some portion of existing customers will be turned off by a completely new interface, since they were auto-upgraded without notice, and the workflows that they’re familiar with are now gone. There’s a risk that spurned customers will take their business elsewhere, but so-called user revolts never seem to actually happen. If the new version truly is better, then users adapt and quickly appreciate the new workflow.
But what if the new version isn’t better? Microsoft Word, a program that reached a perfect set of features and ease of use in the 1990s, continues to pump out a major new version every few years. According to its heaviest users it continues to get worse, and, aside from flashier graphics, no major new features have been added that add value beyond what was available nearly twenty years ago. Yet Microsoft isn’t going to stop shipping a new version of Microsoft Word anytime soon. Word 2007 was a “complete rewrite” in that its ribbon UI shuffled around the editing controls. But the core editing experience–typing letters into a white page–didn’t change much.
The finish–and knowing when to actually stop–is more important than starting. Because the ending is what leaves the lasting impression.
Deciding to end a successful product in order to give it new life as something else–or to build something completely different–is a hard call to make. And it’s a decision that’s often made too late–or not at all. Yet in that stopping, is the ability to begin anew–to start that incremental process of invention and improvement all over again.
Twitter, Facebook, Evernote, Foursquare among many others, are popular free apps that undergo a “complete rewrite” about every year or so–usually accompanied by a wave of user acclaim or disdain.↩