Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Easy, mandate that any UI changes be revertable for the life of the product, or until the company goes bankrupt.




> Easy, mandate that any UI changes be revertable for the life of the product, or until the company goes bankrupt

I'm aware people are annoyed with big UI overhauls that seemingly do nothing, but I don't think you understand what it would take to support what you wrote. You're describing something that gets exponentially harder to maintain as a product ages. It's completely prohibitive to small businesses. How many UI changes do you think are made in a year for a young product? One that is constantly getting calls from clients to add this or that? Should a company support 100 different versions of their app?

I understand a small handful of companies occasionally allow you to use old UI, but those are cases where the functionality hasn't changed much. If you were to actually mandate this, it would make a lot of UIs worse, not better.

As much as people want to act like there's a clear separation, a lot of UI controls are present or absent based on what business logic your server can do. If you are forced to support an old UI that does something the company cannot do anymore, you are forcing broken or insecure functionality. And this would be in the name of something nobody outside of Hackernews would even use. Most people are not aware there is an old.reddit.com.


There are a couple of ways you can do this:

1) Have this law only apply B2C.

2) Stop having rolling feature updates except on an opt-in basis. It used to be that when I bought an operating system or a program it stayed bought, and only updated if I actively went out and bought an update. Rolling security updates are still a good idea, and if they break UI functionality then let the end customer know so that they can make the decision on whether or not to update.

For hosted software, such as Google office, is it really that much more difficult to host multiple versions of the office suite? I can see issues if people are collaborating, but if newer file formats can be used in older software with a warning that some features may not be saved or viewable, then the same can be done with a collaborative document vis-a-vis whatever version of the software is opening the document.

My wife recently went 0patch and some other programs to cover her Win10 when Microsoft stopped updating it. She still got force updated two updates having to do with patching errors in Windows' ESU feature that blocked people from signing up for the 1-year of ESUs. She let those updates happen without trying to figure out a way to block them as they have no other impact on her operating system, but it would have been nice if Microsoft have been serious about ending the updates when it said it was.

I am not a programmer, but come on. This was done in the past with far less computational ability.


This entire subthread is full of people missing the point: no removing features.

You can add them, you can even move them, but you don't get to take back something you already sold me, unless I also get to take back the money I gave you.

Really not super interested in excuses and whining. Either support the features you sold me, or refund my money. It really is that simple... and it really should be the law.


You can wish the thread was about that, but that's a completely different conversation, and you're the first to bring it up. I haven't seen any excuses for it. I don't like when I have something simple like an export tool in my app and it's suddenly gone.

But the question is how do you define what a feature is in networked apps? If you play an online game with a sniper rifle that one-shots people, and the developers nerf it, have they taken a feature from you? But everyone else loved the nerf? How do we support you and the players? Let you continue one-shotting them?

If the app you're paying for could message other users, but now they can block you, is the company supposed to give you a refund because now you can't message some users?


Good questions. I could argue that the game rules can reasonably include clauses such as, "We can adjust weapon/defense parameters at any time." But the addition of a blocklist feature is a bit harder to hand-wave away because it could be said to be economically damaging to spammers. I would say yes, if the ability to message everybody is advertised as a feature, the company would need to refund the spammers (and kick them off.) Hopefully the company will learn to provide clearer terms of service next time.

In general I think the best answer to your objections is to require companies to specify up front exactly what features are being sold, and for how long they are guaranteed to be available. The onus would then be on the consumer to evaluate the list of guaranteed features against their wants and needs. Consumers would hopefully learn, over time, not to buy products that don't provide these guarantees up front.

Right now what they (we) are learning is not to trust anything with an Internet connection, because of abuses from a small number of prominent bad actors. Which is unfortunate.


I'm not trying to be overly negative, it's just hard not to write a lot and respond point by point.

> Have this law only apply B2C.

I don't think limiting it to B2C changes much. Now instead of business customers calling and asking for features, you have swaths of people asking for a feature on the internet.

> I am not a programmer, but come on. This was done in the past with far less computational ability

If by computational ability you mean the actual power of our hardware, this isn't really a computational problem, it's a manpower problem. We have faster computers, but our velocity as developers has been relatively stagnant the past 20 years, if not worse.

Believe me, I'm totally sympathetic to the idea that web apps could support older versions. I have thought of doing it myself if I were to get out of contract work. But I'm aware of how much extra work that is, and it would be something I do for fun, not something that most people would appreciate.

> Stop having rolling feature updates except on an opt-in basis. It used to be that when I bought an operating system or a program it stayed bought, and only updated if I actively went out and bought an update

Having an opt-in doesn't really change what I'm talking about. This is lumping different kinds of software together, and it would be helpful to separate them. There are apps that do local work on your computer, apps that communicate with a network, and the OS itself.

Apps that work locally and don't need to talk to a server can have multiple versions, and they often do. That's a solved problem. I have not been forced to upgrade any third party app on my computer. But I have had AI crammed into Microsoft apps and I hate it.

Apps that communicate with a server, and other users, are the source of a lot of issues I'm talking about. Maintaining versions for these creates cascading problems for everyone.

For OS: I'm all for not being forced to upgrade my OS. But if I don't upgrade, the reality is I will miss security updates and won't be able to use newer apps. That was the case in the 90's, and it's the case now.

> Rolling security updates are still a good idea

That's doing some heavy lifting. It's a good idea, sure, but you can't just sprinkle security updates onto older versions. You're just multiplying how long each security fix takes for all users.

> For hosted software, such as Google office, is it really that much more difficult to host multiple versions of the office suite

In Google's case, it's difficult to maintain one version of an app. They kill apps left and right. You're referencing software from the biggest companies in the world. Reddit manages just one other version, and that's because the core of their app has stayed the same since 1.0. If we required all B2C to always support older versions, we'd essentially make it illegal for small companies to make networked services.

Here's how it plays out for a small company:

- Every security fix has to be backported to every version of the app. This is not free, this is extra work for each version. What if it's discovered Google Docs has a vulnerability that could leak your password and has for 20 years? That's a lot of versions to update.

- If the app interacts with other users in anyway, new features may need to support old versions anyway. How do you add a permissions system to Google Docs if the old version has no permissions? What should happen on the old app when they access a doc they couldn't access before? You have to program something in.

- Support staff has to know 10 different versions of the app. "Have you tried clicking the settings icon?" "What settings icon?"

- Internet Guides? YouTube tutorials? When you Google how to do something, you'd need to specify your version.

- Because we are doomed to support older versions in some capacity, companies will just not work on features that many people want because it's too hard to support the few people on older versions.

This is why apps with "versions" usually have support periods, because it would be impossible for them to support everything.


> This is why apps with "versions" usually have support periods, because it would be impossible for them to support everything.

And that's fine. Just leave it that way and stop with the rolling feature updates that a person can't block because the only way you sell your software is as SaaS.


How would that work in real life though? Now every change made to any program must be tested against an ever growing combination of enabled and disabled UI changes.

I don't know, but I do know that on my web browser I can add and remove various of the buttons and right-click menu options. And on linux I can skin my desktop environment in a variety of ways (Unity stopped working, I went to Gnome which was glitching, and now have something very much like Unity used to be in XFCE and unlike a commercial product I paid nothing for this.).

Adding and removing buttons from the UI is vastly different compared to maintaining a system where which features are enabled/disabled affect the underlying data and potentially interoperability.

Do you want to work on Oracle Database [1]?

By the way, I also don't want the software I use to suffer from quality drop due to new forced "features". I just don't think the way suggested here works well.

[1] https://news.ycombinator.com/item?id=18442941


Tough. Somehow IKEA is doing fine without being able to break into my house and change the way my furniture works. Devices and software should not be any different.



Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: