I've been wondering why there so few apps that will adjust itself to the user needs? e.g. a user uses one button very often, so it will be bigger that the others. or a listbox item that is more used goes to the top of the list. I am aware that too radical changes won't provide good UX or someone else may want to use that app and struggle with it. Though, I do believe that properly balanced "dynamic" UI may be good.

Are there any other reasons?

EDIT:
Say, my web browser after a month of using notice that I use a lot of tabs so it places the tabs above the address bar. On the other hand, if I'm using only 4 on average it could place the tabs next to the address bar (e.g. IE 9).

The argument to not to confuse a user is very good, but nowadays almost every app require some kind of authentication especially web apps, yet I don't see many dynamic websites except for language and ads.

Another reason against it it's a difficulty to write books/tutorials and help the users through helpdesk.

Personally I wish to have tabs on the top even if I'm using only 4 on average. It's just superior. Tabs on the top (or on the edge of the screen) make it easier to switch tabs regardless of how many there are. The browser could make it easy to switch between tabs being put on the top or not and I have no problem about it, I just still wouldn't like it to make that decision for me. It could be annoying like Clipper was. The idea is nice in theory, but execution would be troublesome. Why not just a few reasonable presets (ready-made UI layouts) instead? Much cheaper to implement
–
Konrad MorawskiApr 19 '12 at 6:15

3 Answers
3

The problem with dynamic interface elements is that it prevents the user from learning where things are. As they alter and adjust over time, the user is prevented from gaining mastery of the gui, as their learned behaviors become obsolete. Consistency is far more important than incremental improvements based on Fitts' Law.

Some elements are consistently inconsistent however; 'Recent Documents' as pointed out by Kaz. The entire name of the control explains that the list is dynamic. Users also will always scan this list, rather than relying on learned patterns to select an item.

An example of a mostly-bad dynamic interface is Windows' application switching. Unless you are only hopping between two applications, the fact that the order of applications is functionally random makes it very difficult to jump reliably between applications without looking at the screen and deciding every single time how many times to press 'Tab' before letting go.

The main problem is people's ability to master a constantly shifting interface. A secondary issue is that some tools are designed so that anyone can sit down at someone else's computer and use them. If the UI has been completely altered, that can confuse the new person.

A common example of this is autocorrect. Some smartphones gradually learn the words that people use over time and add them to their dictionary.

Another method is by allowing advanced users to save a variety of profiles that they can toggle between. This gives people a way to completely customize the interface but also allows a random new person to shift it back to the default interface easily.

Say, an mp3 player (such as foobar2000, which is very customizable). I don't really have one consistent pattern of using it.

When I'm listening to some new albums, I'm skipping tracks a lot - which would make the "previous" and "next" buttons grow larger.

When I'm making a compilation for work or travel, I focus on browsing the album list pane; I stretch it wider.

Is the application capable of guessing what I'm about to do? Could it keep up with me? Wouldn't its attempts to accomodate for my needs frustratingly get in the way every now and then?

or a listbox item that is more used goes to the top of the list - but where I'll look for it first is where I saw it last time. I'll only check the top of the list after that. Just as I'm not scanning the menu bar from left to right every time. I just remember where Debug is (was).
Obligingly moving it to the left because I've been using it a lot the day before is not going to save me any time; quite the contrary.