The Windows operating system is one of the more well known infamous software for poor updating techniques, at least it used to be. For instance, one could be working busily on their computer, when suddenly a pop-up tells them that their computer will restart in a few minutes, and with little to no way of stopping. However, I managed to get around this back when it was a problem with some settings configuration (see this article). And these days, it seems that Windows has gotten a foot on how its updates work, or at least make it easier for you to control better. That said, what else was bad about old Windows updates, and other software updates? And what was well-done to release updates?
Let's talk a little more about Windows updates. In addition to timed restarts, there used to be little way to stop this action. Plus, if you would look in the power menu in the start menu, you may notice that "shutdown" and "restart" have been replaced with "update and shutdown/restart." This can be especially irritating when you just need to fix a small issue with Windows, like installing drivers or refreshing RAM if it starts slowing down. But instead of a quick and easy fix that takes a few minutes, you may end up spending 5 minutes to hours waiting for updates to complete.
With that, I think updates should not be forced, with exception. In other words, let the user choose how, when, and where to update. In Windows 10, you now have good control of how you want to update, such as download only or install and download, and when, thru active hours. With just a few minutes of fixing up the settings in Windows, anyone can remove the obstructive forced updates, so they update when they find most convenient (and you should update eventually). And going further, there are more settings to configure in the group policy editor. And these techniques can expand outside of windows- for instance, Steam lets you update your games and the software itself when you choose to do so, and you can also set time and bandwidth limits as needed.
However, sometimes updates are absolutely necessary. For instance, in multiplayer games, once an update is released, every player needs to update, or their games would be incompatible. This is where the option for automatic updates comes in handy- with some pluses and minuses. With automatic updates, I could set when and how my computer updates software or the OS or something, and then walk away, and when it's most convenient for me, the software would update, without me having to start the update. This would come in handy for programs like FileZilla or Lucky Patcher, where instead of auto updating, they ask to update only after you opened the software- and after you start using the software as well (for instance, FileZilla only asks to update once you connect on a server. Not a good technique at all). However, with auto updating comes the cost of computer and network resources- even though you can't actively see the update, it's still taking up CPU resources, RAM, bandwidth, and more, especially if the software auto updates right as your OS starts. In this case, you can probably use Event Scheduler to schedule when you want which software to update. But usually this isn't too much of a problem if you have some patience when your computer starts up.
Updates should also be easy to do, without the user having to spend their entire day figuring out how to update the software. With the press of a button, the software should update, simply taking what's already installed and adding the update where needed. However, sometimes for more tech knowledgeable people like myself, manually updating is a better option, and I think software should allow this as best as possible. Such would work best for modifiable, open-source software, but it can't always be an option due to how the software was made or for security reasons or etc., and likewise manually updating shouldn't be forced upon users, either.
Even though automatic updates would be convenient, they shouldn't be forced as mentioned above, unless absolutely necessary. And sometimes, after an update, features or styles that you liked previously are removed. Sometimes, this may be because the old features cause issues with the new update, but often they were removed just to make way for new features and styles, or for some other reason that may "dumbify" the app (make the software easier to use, except for people used to using the removed features, in which they may ask "why?"). Developers should strive to maintain old features, settings, options, and compatibility wherever possible, even if it may disagree with what the company wants. In short, user control and setting is one of the most important aspects when it comes to software, including updates. With that, I hope that if you are implementing updates in your software, you make sure users both have control and have the ability to auto update whatever is needed. And whether or not you're in update business, I hope you enjoyed reading this article.