As the entry barrier to developing software gets steadily lower, as agile development practices (release early, release often) gain popularity and as the success stories coming from continuous and/or early feedback become industry legends, we find ourselves in a world where perfection is no longer a differentiator, it is an unspoken expectation and an implicit requirement. This applies even to products and services that are virtually free for the consumer. When was the last time your social network was down? Or your maps app crashed? Or you discovered a bug in your favorite (modern) web browser? For that matter, do you even know (or care) which “version” of software you are using?
Welcome to the new reality of iterative perfection.
But iterative perfection brings with it the cost of iteration: the cognitive load on the user having to continuously re-learn, re-orient and re-familarize. I’m not referring to the the step change introduced by MS Office Ribbon UX, or desktop apps migrating to Web UI interfaces… But smaller, mostly less disruptive tweaks and updates (usually referred to as “minor improvements”). While many of these affect the inner workings or performance, a seemingly high proportion directly affect user experience. In the spirit of the development process they hatch from, these changes are small & frequent, and are sometimes even rolled back if found to be unpopular. A fashionable “iteration” these days seems to be changing the colors or shapes of icons or other UI elements.
Making a product faster, more stable or more secure is one thing, but is tweaking the user interface of a product that is already in production a good thing? Does familiarity breed contempt, or confidence? There was a time when building a great product was given due recognition – success had been achieved, the job was well done, lessons were learned and everyone moved on. These days we change things – partly because we are expected to, but mostly just because we can.
Think about it. Once an idea has been commoditized by a company, what is the motivation for further innovation? The trend these days in web products is to keep revamping the User Interface every few months (sometimes weeks). To me, that is a reflection of a bigger issue than vying for the often limited attention span of modern consumers (through brighter and shinier objects).
What I think really happens is this: A bunch of smart people are hired, they build something great together, but now neither does the company want to let go of them (they’re smart, committed employees) nor do they have a plan for what ought to be built next. So, they resort to iterations and improvements (often poorly made choices to emulate a successful but unrelated product) to keep the “resources” or “talent” busy. Maybe sometimes the boredom gets so much that the only way of injecting vitality into what was once an awesome startup is to acquire one (which seems to be happening a lot these days, at atrocious values).
Secondly, having a continuous release schedule [perhaps subconsciously] puts pressure on the development team to deliver some tangible change with each release. After there is nothing left to add or take away, well, there is still the user interface.
I think as engineers, UX practitioners, software developers, product managers and builders of things, we all ought to learn how to recognize perfection when we have achieved it. We need to iterate less and progress more.
Update 2015-02-18: What Happened to Apple Design? by Jose Berengueres mirrors some of these thoughts.