Keeping Your Users in Control

One of the more interesting aspects of programming is the relation software developers have with the products they create. Software engineers have to spend so many hours literally crafting a software product, that they consider the software as theirs. It is a relationship that becomes very complicated, however, because there is another element in the equation: users.

By definition, if you have a business that provides software for a segment of users, then the software becomes their to use. It is more than fair to someone that spent money on a piece of digital creation to expect that he or she can use the software in the way they want. However, the computer industry has traditionally made harder and harder for users to have what they need from software.

The example that motivated me to write this is, surprise, Windows. Right now, I am using windows and it decided that it needs to update the system. That is fine and good, all operating systems need to update critical parts from time to time. What makes the process annoying on Windows is that it removes any authority I could have on the process. Windows decides by itself that it needs to update, then the time the update will be downloaded, then finally, it makes the decision to install everything and tells me that I need to restart now.


Of course, I know that each of these decisions can be changed by going somewhere in the control panel, and changing the required options. This is not the point. Good software must empower users, not putting them in a situation where they need to do something or their work will be lost by a system reboot.

Instead of making harsh decisions, a better model would be to provide a simple, easy to find way to install the latest changes to the system, along with a discrete notification system. Windows has a kind-of notification system in the tray area. It is not perfect, but it is something. Then, provide a dead easy way to act on the information. For example, the start menu could have a big option “update and restart”. With these two elements, which would change practically nothing in their update system, Microsoft could go from making users angry to empowering them, and making the system more predictable (and fun) to use. 

Microsoft may get away with this, due to its dominant position in the OS market. But I don’t think small businesses should copy the decisions made in this case. Users like to have control. They don’t want to worry about mindless details of software, but when something impact them (such as restarting the system), you should better provide options that make them feel in power, not at the mercy of software developers.

Similar Posts:

About the Author

Carlos Oliveira holds a PhD in Systems Engineering and Optimization from University of Florida. He works as a software engineer, with more than 10 years of experience in developing high performance, commercial and scientific applications in C++, Java, and Objective-C. His most Recent Book is Practical C++ Financial Programming.

Post a Comment