>>Or, perhaps, at some point, software becomes too complex for humans to deal with.
I'd say rather that things need to be simplified and features removed in order to improve quality. Every new Mac or iOS release touts XXX number of new features. If you want to offer the best products, having more features isn't necessarily a prerequisite.
Its interesting to think about - is feature creep uniquely in the domain of software? I don't think so. There is plenty of software that has been immune to it (think everyday developer tools, command line stuff, etc). Often the apps with the least amount of feature creep are the ones where they are bounded by the APIs they talk to, i.e. if the API (which they don't control) is static, they can't really add any more features.
Outside of software, we see a similar thing, a wrench (or spanner) hasn't gotten many new features, because the bolt that it turns isn't changing. the goal is roughly the same. The only appreciable changes have been in ergonomics, and even these are effectively static.
On the other hand, we have cars, which are suffering from so much feature creep it is unbelievable. every year, car engines get a little bit more efficient, but they also get heavier, bloated with more systems, infotainment, seat adjustments, window adjustments, etc.As a result, the efficiency of the improved powertrain seldom makes appreciable performance difference. (yes, there are outliers).
Cars then, might be the equivalent of "the ultimate app" which does everything for you, but loses sight of its purpose. Meanwhile, we have a long history of leaving single tools alone, and they tend to work great.
The trouble is that in the world of physical tools, the workflow changes/context switching between using one tool and then another is easy. Meanwhile, in software, feature creep ends up being the solution for poor context switching between apps. In an ideal world, working on an image in photoshop and then pixelmator, and then illustrator, and then publishing to wordpress would be as seamless as using a wrench, then a screwdriver, and then cleaning things up with a rag. Unfortunately, software interface constraints almost necessitate feature creep as the "simplest" way to add functionality, even when convoluted menus, hotkeys, and naming conventions obscure utility.
Awesome analogy about context switching. It's definitely true. The "unix philosophy" never really worked well for GUIs and that's been a big problem for composability.
Interestingly, the Unix philosophy works great in machine to machine communications. It is pretty excellent at handling the needs of the IoT and distributed systems, networks, sensors, etc. You hit the nail on the head about GUIs.
Ironically, it is the "handoff" features that Apple was traditionally best at. BUT, I have this feeling that most of what we hate can be described as "too little, too soon". After all, it could be argued that Apple is aiming for an environment which is "document focused" with their focus on standardized APIs (Adobe is working on this, too), but none of this works yet, because software is still written from an "Apps" POV. In the real world, we change the tool relative to the job, and the best tools are specific single tasks. given the experience so far, I'm far from convinced that a 2D GUI should ever try duplicate that.
I think it boils down to asking what the product is actually for, or rather, what fundamental human need does it solve? That's a rather tough answer for computers, but for cars it's easy - getting from point A to point B. Every modification to a car is in pursuit of either making the job more efficient or making the job easier/more comfortable for the customer.
I think the fact that the answer is so tough for computers is why feature creep is so common with software. When your tool can literally do anything you want it to, why say no? The constraints are actually in the mind of the customer.
This is very good point. The constraints are in the mind of the customer, but also in the UI. i.e. a panorama viewing app is not great in vertical orientation on an iPhone. There are physical as well as mental constraints in the UI of a computer.
On the topic of cars, it is true that modifications strive toward comfort, but they also strive for marketability. While a leather-wrapped dashboard may be comfortable to look at, it is primarily focused at adding something to market. This same phenomenon exhibits in software, where features are added to increase marketability, "Look! this ERP software has a social network built in!". The utility of a given feature is often perspective-based, especially when the user is not well aware of their actual needs, or the user and purchaser are not the same person.
Plenty of product are ruined because they don't allow you to do that one thing you really need to do.
Feature creep is necessary for closed applications.
The ideal is a set of simple tools around a simple and open file format. As soon as you lock in folks to your application (as Apple loves to do), you're on the hook for being all things to all people, or getting panned that your software is only for the lightest casual usel
They (Designers and Product people) will one day learn that the single greatest feature and design, the most objective one is raw speed.
Always go faster for a long time. Meaning tackle long aged hardware, long uptime, and just generally maintain same performance. Across everything, from device hardware and speed locally on the device to the wifi/4G signals, ISP, to the backend and their software and hardware. Performance in speed is the greatest subjective design and feature.
Unfortunately the time to invest in it requires convincing the designer and product that integrating A/B tests for hearts vs star for favoriting isn't worth it for the long run.
> I'd say rather that things need to be simplified and features removed in order to improve quality.
I'd say they need to fix the features they've implemented, and only release new features when they're fully cooked.
Removing features is terrible: it is not an improvement to me when my stuff breaks or when I'm forced into a dumbed-down, lowest-common-denominator use-case.
It's funny -- on the one hand, people SAY they want this (only fully cooked new features). Yet everyone is really quick to jump up and down and complain and bash $company for lacking innovation when their new OS or the next version of their software comes out and the focus has been on stability/bug fixes.
Not just Wall-Street types either; I see this primarily from tech people. Examples: Android M, OS X Snow Leopard (I think, I may have that release wrong but there was one there that was definitely 'not many new features'), basically anything where the next version isn't predominantly new shiny.
I'd say rather that things need to be simplified and features removed in order to improve quality. Every new Mac or iOS release touts XXX number of new features. If you want to offer the best products, having more features isn't necessarily a prerequisite.