I can't stand it when a software program like Word decides it knows what I want to do better than I do. In their efforts to be user-friendly they seem to actually gone past helping me do what I want to do, and have started making some incorrect guesses that make it harder for me to do what I wanted in the first place. While I applaud the effort to remove some of the tedious work of formatting out of the hands of the user so that they can focus on the content I find some of the formatting changes disrupting. While on the other hand automatically correcting obvious typos like changing 'teh' to 'the' for example actually was an absolutely marvelous idea.
Sometimes we as developers think we know best, but it is a question worth considering: Where do you draw that line between what you do for the user in the name of usability and what you leave for the user to do themselves?
At NCH Software we strive to make our software as user-friendly, and easy to setup as possible, so we need to think a lot about what the default settings for programs should be and make as many educated guesses as possible about what will work for the most users. Whenever there are options you will never be able to pick settings that will actually work for everyone but you want the defaults to work for as large a majority as possible, and make it easy for the few that need to change them to do so.
If there are too many question marks as to what will work best for the majority of people that is often when we introduce a setup wizard for programs like Axon PBX Software which allows us to ask questions to help us set default values for the user instead of straight out guessing how many phone lines the user will have on their phone system. By carefully choosing the questions we ask we can get all the answers we need to help the user get their customized system ready as quickly as possible without them needing to hunt down every option on their first run, even though all of those settings can easily be changed later.
It is a fine line to walk trying to help the user along the way but not get in their way of being able to configure options for themselves, but it is one we are doing are best to get better at in our ongoing effort to make our applications user-friendly.