Ask Slashdot: How Do You Explain 'Don't Improve My Software Syndrome' Or DIMSS?
dryriver writes: I am someone who likes to post improvement suggestions for different software tools I use on the internet. If I see a function in a software that doesn't work well for me or could work better for everyone else, I immediately post suggestions as to how that function could be improved and made to work better for everybody. A striking phenomenon I have come across in posting such suggestions is the sheer number of "why would you want that at all" or "nobody needs that" or "the software is fine as it is" type responses from software users. What is particularly puzzling is that its not the developers of the software rejecting the suggestions -- its users of the software that often react sourly to improvement suggestions that could, if implemented well, benefit a lot of people using the software in question. I have observed this happening online for years even for really good software feature/function improvement ideas that actually wound up being implemented. My question is -- what causes this behavior of software users on the internet? Why would a software user see a suggestion that would very likely benefit many other users of the software and object loudly to that suggestion, or even pretend that "the suggestion is a bad one?"
Sometimes what is an improvement to you is worsening for someone else. E.g. the australis redesign of firefox, was very highly disliked by many people. Some people are happy with the status quo and don't need a new "modern" re-do of their GUI or whatever.
Many people are very tired of their software constantly changing and shifting for no good reason. Oblig car analogy: suppose that every night when you get home, park your car and go inside there was a good chance some random mechanic would come along and start tinkering - moving the controls around, swapping out the seats, adding go-fast stripes (then removing them), maybe switching the engine or making it an automatic. It would get old really, really quickly.
That's what it feels like sometimes with software. See for example Firefox over the last few years: features coming and going for no apparent reasoning, random changes, just generally irritating. It's enough to give you a case of PSSWIS.
Users like their software to work. Most software only barely does, and every upgrade risks catastrophic regressions sold as "improvement".
As a current example, any website you use regularly might see an "upgrade"* causing it to no longer work with your browser, so you get to upgrade. Then you find your browser is no longer supported on your operating system, forcing you to apply lots of patches, or outright upgrade. Or both. Perhaps you now must use a 64bit version and since your hardware wasn't 64bit yet, you need to up grade the hardware. So simply trying to use a website that used to work peachy fine can easily cause you a week's work or more, and that's when you're tech savvy enough to do it all yourself.
Yes, you and plenty readers here will likely run cutting-edge systems. Random users, a much larger pool, probably will not. We tend to blame them for running "insecure" software, but really, the blame for the insecurity of the software squarely lies with the developers. Who choose to chase new features instead.
Honestly, it's the latter group, the people that prefer all that fancy tech to "just work", that is currently sorely underserved. Even by the big software vendors, perhaps especially by the big software vendors, that have "no training needed" and "it will just work" as the core of their marketeering.
* Perhaps not even in the website itself, but one of the many javascript libraries from elsewhere it depends upon! But likewise we saw several rounds of this with the "upgrade" to "HTML5", where even sites offering content no more fancy than text and some pictures suddenly stop working in older browsers for no other reason than that they like to chase what they imagine counts for modernity.
Because every change breaks someone's workflow. https://xkcd.com/1172/
People hate useless change. People hate change that makes their lives harder. People hate "here's a new UI, take time off from the work you need to get done in order to learn it".
Yes, sucking resources away from other users is one reason.
Others:
- Your feature or changes almost certainly comes with added complexity and/or bugs. People don't like that.
- People resist change just as a matter of being human. Any change needs to overcome this "static friction".
- Admitting that you have a better way is also an admission that they've been doing it wrong (or less efficiently) the whole time. People don't like to do admit they are wrong.
W..w..W - Willy Waterloo washes Warren Wiggins who is washing Waldo Woo.
But its true, so I'm going to lay it on you.
Most people do not use software for the sake of using software.
I Know. I can hear you cry and see your tears. Get over it.
Strange as it seems, they use software to get stuff done. Its a tool. They learn the tool to get stuff done. They setup up processes that incorporate the use of those tools to get even more stuff done. And then *poof*... iPhones! Woo!
If you're constantly changing the tool, you're constantly changing the way people have to get their stuff done and constantly upsetting the process and increasing the cost of getting stuff done.
Try this for a mantra:
What do we Want?
Gradual Change!
When do we want it?
IN DUE COURSE!
Change is good, I'm on board. But take care how you fuck things up in the name of progress. Understand that yes, in some peoples view your wonderful improvement is fucking things up, and they are not in error . That doesn't mean your idea isn't great, it just means you probably haven't thought it through well enough. That said...
Usually people tossing out these ideas have little idea what they're talking about, with respect to what it would take to achieve.
OK, this is turning into recreational bitching (turning into?).
I have two shorter answers to this question, one polite, one less so
Also scope creep in projects is always a risk. It isn't about not liking the idea but not adding into that particular product. Mostly because that one more feature can break a lot and cause more rework than a new product.
If something is so important that you feel the need to post it on the internet... It probably isn't that important.
I don't know if you've been keeping an eye on things, but generally "improvements" aren't.
Examples:
There is a reason why User Experience (UX) people are so hated - because they take a nice, big, fat dump on existing users to improve things the way that THEY want, and, again, tough shit if you liked it the other way, and tough shit if it breaks the software for many users, or even if it breaks the machine. It's not unlike an interior decorator trying to make a "statement" in many cases. Not unlike one of those shows where they have someone come in and "redecorate" the house and it turns out to be a total nightmare. This is not helped by the fact that with many situations, updates are now FORCED, so you can't throw the interior decorator out. In many cases, companies and organizations act as if you don't own the computer (and in many cases, the companies want to own the computer you paid for, and they treat the software like they do in fact own the machine). And even if you do, they usually manage to cripple you in some way (usually compatibility) until you're forced to capitulate - and things are usually even worse by then.
Note, however, that this does NOT necessarily just apply to the UI, in case I've overemphasized that - it works with any and every aspect of the software that can be changed. In short, in
"People resist change just as a matter of being human. Any change needs to overcome this "static friction"."
I'll tell you why I resist change in the software I use. Software upgrades often come with changes to the UI which often require that the user relearn how to use their software. There are few things i hate more then having to relearn how to use software features I was already using.
I ignore Anonymous Coward posts. If you want to discuss something, that's awesome. Log in.
When I was a younger programmer, I thought, "Features are great! Always add a feature, if it could help someone!" I overestimated the value of the feature, and didn't think at all about the costs of the feature. "I mean, how long does it take to implement this? 10 minutes? A couple days? What's that matter, vs. the utility that this would provide?"
What I didn't realize at the time was that every feature basically adds an exponential cost, and has an impact on everything else going on in the codebase. Features introduce new possibilities, and new possibilities create new state combinations, and new state combinations create new bugs and new need-to-test circumstances. New features usually have a user interface impact, several new features have a dramatic user interface impact. New features need to be supported by new or future-self programmers, who have to understand and navigate around the code. If the product is ported, the feature needs to be ported as well. New features also require additional documentation, and if the product is localized the new documentation requires new localizations.
I've heard that "the skilled Go player is reluctant to make a move." I think it's similar for the application developer, and for much the same reason.
Everyone (Many people) are suffering from some kind of version fatigue. It's as simple as that. Owning any software run device these days is like having someone come and and re-arrange all the furniture in your house every week. The novelty might seem nice at first, but after a while, any change that you don't specifically want becomes irritating.
Also maybe his suggestions are crap and the guy has an overinflated sense of his own opinion.
It was like a collection of subject-specific message boards.
So it was like Usenet.
Now most "improvements" to software are marketing crap. Added features are useless for most people, but sound good in advertising, or may appeal to people superficially. I've noticed that in many cases real functionality is replaced with junk (Windows 10 vs Windows 7 comes to mind). So when seasoned software users don't fawn all over new software "features" it may be more about experience than stubborn resistance from uppity users.
A brain is a terrible thing to waste... Mind? That's debatable.
> maybe his suggestions are crap
Maybe his ideas are crap. There is no way to tell since he didn't give / link even one specfic example.
Maybe the way he presents his ideas is a problem. A very common problem os suggesting WHAT might be done, without mentioning WHY. You always need the why, and should lead with it. Think commercials "do you have this problem ... Our product will fix that problem for you. You'll benefit in three ways, X Y and Z." Often people suggest "let's do this" without clearly stating the problem it'll solve or the benefits of their suggestion. There is no way to tell if tje submitter does this since he didn't give / link even one specfic example.
What we DO know is something about the submitter's writing style. We know he *assumes* that his ideas should be implemented, and further assumes that we'll agree - without even telling us what any of his ideas are. Likely, he does the same thing in his suggestions - assumes that they should be done, assumes that everyone will agree that they should be done, and fails to provide even one example of what he's talking about.
Clutter too. You take a simple notepad like editor that does very little but exactly what I need. Then your propose adding a bunch of crap to it. now I need to find my word wrap option buried amongst 50 3 level deep file menus. Sure it does more, some stuff I even might want to do 1% of the time. But I'd rather the simple thing.
On the dev side: sometimes things are just done. It solves the problem I intended to solve. I have more important and currently unsolved problems sorry I'm not going to design chrome wheels for last years model instead.
Just FYI, "Static Friction"== inertia
No, it isn't. You're almost precisely wrong.
Static friction is a threshold that has to be overcome before inertia becomes a factor, and includes Van der Waal forces, electrostatic forces and surface bonding. When you carefully walk up or drive down an icy hill, static friction is what prevents you from sliding. But once you start sliding, inertia is what prevents static friction from winning, even when you reach the bottom of the hill.
And so they have even less excuse for their mangling of the terminology, and definitely should be smiled at, nodded to, and ultimately, ignored other than when they have some kind of arbitrary coercive power over you, in which case, do it in your head anyway.
If you walk up to a nuclear engineer with your 140 IQ and ask him to "turn up the atumz", he should probably just call security and have your ass thrown out on the street.
Seriously. If you don't know even the basics of an industry's terminology -- it's time to leave off trying to involve yourself until you get that handled. If you do.
I've fallen off your lawn, and I can't get up.
Unless it is Blender since I have to relearn the interface anyway every time I use it
the spork is better in every way. it's a spoon. it's a fork. it takes up less space. it's not like you ever use a spoon and a fork at the same time.
still, no one wants a spork.
a screwdriver could have a hammer on the other end. it doesn't. you don't want it to.
it's not about better. sometimes, it's just about the abstract concept of knowing what your tool is, and what it does. I can have two different tools for different things.
the all-too-common swiss army knife is completely useless. Have you ever actually seen any human being even try to use a swiss army knife? It's hillarious.
software features are the same way. it's 2017. do you think anyone uses office suite programs for anything more than they did thirty years ago? maybe 0.1% do. Maybe a whole 1% use pivot tables. Everyone else can write business reports and book reports and essays in wordperfect with plastic keyboard overlays. But now we have drop down menus, excuse me, ribbon bars, excuse me, drop down menus inside of ribbon bars! Even clippy couldn't have predicted that one.
Better, is often much more useless. It's like more storage-space in your car or in your house. There's a point at which you need an index to find your stuff. And that point is way sooner than people think. So your SUV, and your storage locker, and your attic, and your space bedroom, become piles of junk. That's not better.
software functions are the same way. I need to convert video basically between four different formats in 2017. And almost always between only two, now that flash is dead. But it's been ten years, and I still can't figure out how to get VLC to convert a video into anything usable. So I'm using a shitty shareware program that's far less capable, but doesn't give me the option of producing a 10x10 pixel, 6GB video, from a simple cell phone video. Asking me to select the bitrate in an age where internet speeds vary as much as they do is the all-time dumbest option. Nobody cares about the bitrate. Ask me to choose the filesize, which means way more. Or the general quality. Do you think I care about the pixel dimensions when the compression is horrible? High-res compression artifacts, yummy.
More software features is like a new employee. If you can't work with what you have, a new employee ain't gonna make the old ones any better.
How about this one?
User bug report, description: Your cow is broken. The milk is difficult to extract and tastes funny.
Issue status, resolved: This behavior is by design. The "cow" is a bull.
I wish it were just that. I've been writing and deploying enterprise systems for years and it is still basically people just don't like change even if the change is vastly superior to what they had before. I've literally had people for the first month tell me how much this new system is terrible and was a waste of money and then I talk to them 3 months later after they actually have USED it and complete reversal with nothing but praise for the new system... Most people don't like learning is the bottom line. They want to show up, do the same thing they have for years, clock out and collect a pay check. Same thing for most users outside enterprise stuff too, they don't want the application to change because they hate to learn new stuff.
That is a pretty bad assumption and very out of touch with actual development. If something really isn't worth it or would take too much time, I simply tell people that or completely ignore the suggestion if its too outrageous. However, that doesn't mean I want the users to shut up and just let daddy developer do whatever I want. I want feedback because I can't possible test everything, I can't predict all the trends for usage, and any half decent developer loves to see people using their software to accomplish things they never even envisioned when it was written (not hacking it per se, but finding use cases we hadn't thought of yet).
In fact, it is more ridiculous for the users to just immediately jump on and start bashing ideas when they have no idea how to actually engineer it or how much time it would take to implement that feature. If someone actually writes real software (not some garbage scipts they threw together either) and wants to comment concerns that is more in line, but even then, just because I write software doesn't mean I know how all software is designed... If a developer starts asking for opinions on it, different story, but people jumping all over it when THEY don't write code is much more ridiculous in my opinion.
Ideas don't cost me shit. Again, if I don't like doesn't mean I have to implement it (unless there is a contract, but that is a different ballgame then what were talking about). I'll take a glut of stupid suggestions with a few good ones over nothing at all any day.
...and they usually add up to a giant, steaming pile of crap.
I worked on a project once that did its best to implement all user requests in its product. By the time I started working on it, there were at least seven different ways to do any basic function, because different users thought it would be great if they each had their own way of doing the same damn thing.
The result? The software was bloated, and damned near impossible to adequately test. The permutations possible to do the exact same task were staggering. This resulted in a lot of weird bugs that weren't found during testing. It made the software brittle, and in the end the same users that wanted all these different ways of doing the same task (multiplied by a few dozen different tasks I might add) weren't happy with the resulting complexity. All that stuff that users thought would be simple and a good idea, in combination, sucked.
Sometimes it's a developers job to say no. It can be very difficult to decide when that time is, but projects that never say no are doomed to failure. Sometimes an over-arching vision as to how the product should work needs to win out over every single good idea some random user has.
I sometimes work with physical tools. And there are times when I'm using a wrench, but need to put it down and start using a hammer. I don't think it's unreasonable of the tool manufacturer to reject it when I suggest to them it would be great if they welded a hammer to all of their wrenches so I didn't have to put one tool down to use the other.
Yaz
They invest the time and the learning to master a workflow. They expect a payoff from this investment in their ability to use these workflows to achieve other ends. When you mess with a workflow, you negate that investment. They have to spend time learning and mastering a workflow all over again before they can apply it toward their actual goals.
Nobody uses software "to be using software" or "for a good experience." They use it to get things done. If they have to spend two weeks mastering a new workflow then your improvements had better deliver a multiple of that value in return, or they're going to come back with "that's cool, but it would trip me up for all of my muscle and click memory to be invalidated."
People aren't averse to improvements. They're averse to evolutionary improvements that cost more to the user in practice (time invested and mistakes avoided) than they deliver on the other end. "Small tweaks" often fall into this category. Some dev moves a button to a more "logical" placement and for the next two weeks, the users lose five or ten seconds every single time they need to use it because their absent minded clicking—absent-minded because they're focusing on what they're really trying to accomplish, not on 'using the software'—keeps ending up in the wrong place vs. what they're accustomed to.
Dev says "BUT IT'S BETTER." User experience is actually that of being irritated and not getting things done as efficiently as usual, so their response is "IN PRACTICE, IN THE CURRENT CONTEXT OF MY LIFE, NO IT'S NOT."
STOP . AMERICA . NOW
I see this behavior surprisingly often as well. Any explanation I offered would just be conjecture, I'm afraid. I have some guesses about why people do this, but they're just guesses. I think it would make for an interesting psychology study.
Anyway, I'm mainly posting here to offset the toxic comments I see in response to your question. I, too, have been there. I've been attacked by onlookers for making suggestions, with the naysayers backing off only when the project leads decided that my suggestions were good ones. I've watched other people get attacked similarly, sometimes when I was a newcomer, and sometimes when I was the developer. It doesn't seem to matter if you're making suggestions for someone else to implement or offering to do the work yourself; some people seem just as likely to sling mud at you either way.
The internet has no shortage of obstructionist personalities, and the communities that gather around software projects are no exception. It makes me sad every time I see it, because to me, it is the antithesis of open software development. When it happens, everybody loses.
The only advice I can think of right now is to accept constructive criticism of your ideas, but also don't assume that your ideas suck just because some internet troll says so. A lot of them are wrong.
One of two very very scenarios arises in my mind:
1) The person(s) does not want the software to change at all because they are comfortable with how it works. This is seen all the time when companies are pushing upgrades to a new version of Windows or Office or *insert a different product*
2) Your suggestions are really not all that useful and are rightfully be lambasted
I much more commonly see:
3) Your suggestion sounds like an attack, and fans will automatically defend what they like.
This right here.
There have been tons of applications that I have loved that had reached a perfect balance of usability and performance. Then the dev takes the development beyond useful with shit like skins or Adding this or that and it begins a downward spiral. Instead of calling the work 'good' and doing something new they latched onto their one app as cash cow to start milking their existing customers for upgrades.
Winamp was a prime example of this. When it came out it worked, it had a minimal footprint and was lightweight. Same for the image utility Acdsee, and believe it or not photoshop.
Winamp and acdsee are apps I kept in a personal library to re-install after building a new machine because I detested the complexity and garbage the newer versions became. Photoshop used to come on 7 floppy disks and did everything I use Krita for today. Although Krita is far more capable today than Photoshop of the late 90's, it's still lightweight and doesn't insist on hooking into every bloody thing on your computer and calling home to authenticate.
Add to this model the fact that now acdsee and photoshop requires a 'subscription' to operate is why I am wary of new versions.
~ People that think they are better than anyone else for any reason are the cause of all the strife in the world.
Hamburger, kebab (or kabob if your prefer), and above all the ribbon are the worst UI changes ever. Less wasted space? Can't spare the 20 px for a menu bar? These changes caused users to do more clicks to accomplish the same task as before. With the ribbon it even shape shifts on users and removes any optical reference. Ever tried to change the font properties while editing text inside a table in MSO with ribbon? Worst UX ever...and yet everyone apes this horrible design. A well crafted and properly structured menu system with keyboard shortcuts is the fastest means to operate a UI.
You're going to change how the software interacts with the user because you got a nifty tool kit upgrade? Because you went from Programing Language Not Currently in Vogue to Programing Language De Jour? You think the software should work on a desktop bolted to a desk at a shipping department just like it works on your child's IPAD? The latest iteration of homo-sapiens isn't fawning over the fully functioning design? You should get out of programming and move into a more useful career: Ocean water garbage removal. Sure, it might seem like a good idea for the UI to be changed so that some feature can better fit in to the latest UI concept, or even be cool to the latest crop of budding consumers just entering college, but changing how something works is a huge deal - not for you programmers, but for the millions of people that actually use the software to get things done.
Software is a tool, not an art project to stick in your effing portfolio. First off, UI design must be functional and then elegant. It matters not one wit if the UI is pretty or even if it wins awards for its looks if the thing doesn't effectively and efficiently do the damn job its supposed to do. Changing the UI design, especially deleting functions or moving them around is equivalent to breaking the software. It doesn't work like it did yesterday and NOW it is neither effective nor efficient. Now it requires learning, and then re-learning, and if used often will require UNLEARNING the old way -- something humans don't really do well at all. If you can't make the changes you need to the code to both improve the underlying performance, add a feature, appeal to the "youts of 'murica", and still keep the old stuff where it was and working as it was, then get out of programming. Just quit. Save me the time and aggravation of figuring out what is going through that two cell based life form you call a brain while I have a multi-million dollar project idling because the people working on it can't figure out where those vital features are now located or worse deprecated, a fancy word for too fucking lazy to keep a feature working.
And don't get me started on the "what we changed in the latest upgrade" document. I get better change logs in World of Warcraft patches than any other piece of recently "upgraded" software. Hiring some stoner you met at the Weed Works to write "We changed stuff" and hide it in a PDF buried more effectively than landslide victims in Washington State, isn't sufficient so mitigate the change chaos. SO stop lying to yourself about how it's really okay and people will get over it. No THEY WON'T. We don't get over being blamed for the consequences of some anonymous jackass programmer's design changes. We get to SUFFER because of it. And that is NEVER going away. We remember it because you're the reason the budget was blown, the system failed, we missed a deadline because the software got upgraded. We didn't get new training because we had to spend the training budget on teaching folks how to use the upgrade instead of something that might actually get our productivity up. Yeah, change that UI, will ya? We need more stress and aggravation.
Remember when Microsoft moved the print function in office? That little bitty change was a juggernaut of wasted time and effort trying to first, figure out where this common function had be re-located, and then passing that knowledge on to people who really only want to print documents as a part of their job. That's right, printing documents was the core piece of their job and one night it got upgraded into some other part of the software. Brilliant. Now we have employees approaching retirement age who already hate computers and software trying to figure out how to print documents so that they can ship product to customers while the trucks are idling outside the office at $200/hour demurage causing the shipping department to watch their quarterly bonus vanish as they struggled to figure out how to PRINT. Yeah that was a great move. I'm sure those guys w
Creative Spelling Copyright (2002). May use without Persimmons