Today I upgraded an application, and the application showed the progress in an always-on-top dialog that I couldn't minimize and which stayed on-screen for over a minute, interfering with my work. Showing always-on-top dialogs or windows that will be on-screen for a long period of time seems like terrible UX. On the other hand, I can imagine that always-on-top dialogs may be good for certain (important) alerts, and an always-on-top window may be good for a small tool such as a calculator that one might actually want to keep on top of one's work. So, in what cases are such dialogs and windows a good idea?
It's not appropriate to keep the upgrade notice on the very top, regardless of which other applications you might want to use, while the application in question upgrades itself.
Window management and the Z order of windows
Your question is about the stacking order, or Z order, of windows. I assume you're dealing with a PC or tablet, since small devices like smartphones and watches don't typically have stacking windows.
For PCs, Microsoft has published, and kept updated, a useful set of guidelines for this. There are many details, including a series of rules for window location in various contexts. (As you can imagine, context makes a difference!) Here are two guidelines specifically about Z order:
- Always place owned windows on top of their owner window. Never place owned windows under their owner windows, because most likely users won't see them.
- Respect users' Z order selection. When users select a window, bring only the windows associated with that instance of the program (the window plus any owner or owned windows) to top of the Z order. Don't change the order of any other windows, such as independent instances of same program.
These guidelines suggest you should have been able to work in other applications without the "upgrade notice" remaining on top.
I hope that helps you move forward. These guidelines are actually quite interesting—to nerds like us—so do give them a look:
In my experience working for my company and developing user interfaces for automated machines, i've seen that the only case where such windows and dialogs are required is when critical functions are activated and the application must be blocked until such operations terminate. In all other cases always on top windows/dialogs result annoying and frustrating to users.