The Design of Software (CLOSED)

A public forum for discussing the design of software, from the user interface to the code architecture. Now closed.

The "Design of Software" discussion group has been merged with the main Joel on Software discussion group.

The archives will remain online indefinitely.

bad design: one window interfaces for everything

One big trend in design is to have a single window for everything in the program. This started with Outlook, and then iTunes followed, but even these programs would put up another window when it made sense.

Some new programs try to put everything in one window whether it is good or not.

So if there is a results box, rather than put it up where you can easily dismiss it by closing, or drag out of the way, it will split some other pane into two and place it in there, like it is some sort of chip design layout optimization problem. So now, to see the results, you have to slide open the pane since the default size was 10 pixels in height, then view the results, then slide the divider back to see your data, back and forth, back and forth.

This really sucks.

One window design is a cop out from a user interface standpoint. Anytime you start saying "this will always be this way no matter what", you are not thinking about design anymore, you have in fact given up on design.
Scott
Thursday, January 24, 2008
 
 
Basically, we're talking about using an emacs green screen VT100 windowing interface, but in a modern program.
Scott
Thursday, January 24, 2008
 
 
The more things change...

I think we're just on the backswing of the pendulum. We started with full-screen interfaces, then went to multiple windows, then MDI (which is an abomination), then back to multiple windows, then "dockable" windows, now back to full-screen interfaces (more or less).

Next year, we should start to see a resurgence of multiple-window interfaces. I don't expect to see MDI coming back in a big way for quite a while, though.
Mark Bessey Send private email
Thursday, January 24, 2008
 
 
I like how VS2005 puts the find results into a tab in an existing pane or wherever you want (a popup window, another pane, a split pane, etc.).
dev1
Thursday, January 24, 2008
 
 
> MDI (which is an abomination)

I personally don't mind the MDI interface.

When MDI is run in maximised mode it is nothing more than the tabbed window layout found in most web browsers of today.

So in a way you could say MDI was way ahead of it's time ;)
Jussi Jumppanen
Thursday, January 24, 2008
 
 
^o^ 

I think what the interface is depends on your program.
Our main target is useability.
Vincent Suo Send private email
Friday, January 25, 2008
 
 
> When MDI is run in maximised mode it is nothing more than the tabbed window layout found in most web browsers of today.

Couldn't agree more. I'm regularly in the position of having two web pages open in different tabs only to want them side by side. I miss the Window/Tile menu.

I think there is lots of hatred for MDI because it was regularly used incorrectly.
Adrian
Friday, January 25, 2008
 
 
Yeah, I'll speak up for MDI too.

I think it was great when used correctly. Sadly, it was sometimes used for inappropriate situations, hence the aforementioned abominations.

You can see the same thing happening with the Ribbon UI. I love it in Office, but it seems to be popping up elsewhere, just for the sake of it. For example, "Ribbons" with just one or two big buttons on a tab.
Odysseus Send private email
Friday, January 25, 2008
 
 
I know MDI is often dissed, but can anyone name some specific examples of bad MDI usage?

Friday, January 25, 2008
 
 
"I know MDI is often dissed, but can anyone name some specific examples of bad MDI usage? "

Answer: anywhere MDI is used is bad usage. I'd ask the opposite question: can anyone name a specific example where MDI was demonstrably good?

The concept of having multiple windows -- of which MDI is one implementation -- is a good one. That's why tabbed browsing took off. The *implementation* that is MDI sucks, and sucks hard mainly for one reason: you spend too much time fiddling with windows instead of doing what you really want to do. This is called excise. Tabs provide nearly the same functionality with considerably less excise.

The double-whammy of MDI is that now you have to work through two layers of window management -- that of the desktop and that of the MDI. So, for example, if an MDI window is minimized and the MDI application as a whole is minimized, you have to do double the amount of work to see the contents of the MDI window. And if you want to hide what you are working on, you don't hide the MDI window, you must hide the main window.

Further, if you want to resize the main window because you want to see some other app side-by-side, now it's a royal PITA. You resize the main window and now you have to fiddle with all the interior windows (or at least select View->Arrange or whatever).

Bottom line is that MDI forces you to spend more time simply fiddling with window management tasks rather than doing whatever the application is really for.

Some people don't mind all that extra window management, but it eats into their productivity nonetheless. The people who like MDI are willing to trade productivity for -- I don't know --  whatever it is they like about MDI. For most people and most problem domains, though, MDI is just not a good solution if you're interested in productivity and usability.
An anonymous voice in the crowd
Friday, January 25, 2008
 
 
I agree that MDI is not always the appropriate solution.  But, what do you do when you want to see multiple windows at a time?  If you're using tabs, it's not really feasible to see more than two at time, and that is only side-by-side.

I'm thinking of a SQL query editor (WinSQL) I use that utilizes MDI.  I often have several MDI windows open, each with a different query.  I arrange the MDI windows to give more space to the larger queries, and less space to the smaller queries; where larger and smaller are the horizontal size of the results.

What other UI could you use to achieve similar results?

Friday, January 25, 2008
 
 
Without knowing more about what your true needs are it's impossible to say what would be better. One idea is to present the queries in a vertically scrolling window. Imagine the google mail interface, but instead of mail messages you see a stack of queries and their results.

Or, imagine something like visio which gives you a sort of canvas that can have free floating objects on it. Each query would appear like a notecard of sorts. You could move them around to see them in any order you like.

Whether either of those ideas meets your needs or not, or is better than the current MDI solution, I have no idea. Maybe the solution is to simply fire up two or three instances of winsql.

Admittedly, some problem domains require a lot of thought to solve properly, and maybe for a small select few MDI makes sense. Unfortunately, IMO many UI designers who chose MDI chose it not because they decided it was the best solution, but out of ignorance, time constraints, or the desire to "be more like windows" (*) they decided it was the only way.

(*) the "be more like windows" argument isn't particularly valid  these days as Microsoft has all but abandoned MDI.
An anonymous voice in the crowd
Friday, January 25, 2008
 
 
Single UI if done correctly is a good idea.  What its doing is keeping the user in context with their workflow/actions.

You'll notice in word, everything is in the centre were the user does 99% of their work, the context items (stuff associated with that) is around the outside.

Visual studio is another example,  Your web browser another etc.
AndyW Send private email
Friday, January 25, 2008
 
 
"I'm thinking of a SQL query editor (WinSQL) I use that utilizes MDI.  I often have several MDI windows open, each with a different query.  I arrange the MDI windows to give more space to the larger queries, and less space to the smaller queries; where larger and smaller are the horizontal size of the results.

What other UI could you use to achieve similar results?"

I do not understand.  Why could you not simply size independent windows that same way?

Sincerely,

Gene Wirchenko
Gene Wirchenko Send private email
Saturday, January 26, 2008
 
 
I have develop several applications, with different interface. What I learn about that is that each application is different.

A quick text editor like notepad, or a tool like paint (Mac and Linux guys, put your alternatives, here), may be good with a single window.

Others may have many tools, menus, or documents, and require have their own separate window. I enjoy the way that spreadsheets and todays browsers use tabbed windows instead of the windowze MDI interface

Cheers.
Marco Aurelio Ramirez Carrillo Send private email
Saturday, January 26, 2008
 
 
> I do not understand.  Why could you not simply size independent windows that same way?

Because I don't want multiple copies of everything else associated with the main window. An example of this is Visual Studio. I don't want to open two top level window and on one of them close all the tool windows, toolbars, menu bars etc... I regularly use the tile-horizontally open to have two code windows or one code window and one GUI designer open at the same time.
Adrian
Monday, January 28, 2008
 
 
The basic rule I recommend is to put it all in one window when the contents of each pane are synchronized, such as in a master-detail arrangement. For example, in Outlook, it makes sense for the email folder list, folder content list, and email preview to be all in the same window. It doesn’t make sense for the calendar to be in the same window as the email. Things being in same primary window indicates to the user that they’re coordinated, while things being in separate primary windows mean they are independent (as they are when they are of difference processes).

Ultimately, it’s the task that determines if contents should be synchronized, but a good rule of thumb to follow is to only consider putting contents in the same window if they are associated in the apparent data structure (e.g., as email letters are associated to folder). “Dashboard” home windows might be an exception to this rule.
Michael Zuschlag Send private email
Monday, January 28, 2008
 
 
“The double-whammy of MDI is that now you have to work through two layers of window management.” --An anonymous voice in the crowd. Here are some additional problems with  MDI:

- It presents another way for non-power-users to “lose” their data. In addition to the parent window being hidden by windows of other apps, a child window in the parent window can be hidden by other child windows within the app. Recovery is different in the two cases. Note that this can happen in a tabbed UI too. The parent window can be iconified, or a child window within the parent window can be iconified. Again, the recovery procedure is different in the two cases. MDI adds a level of complexity that can confuse novice users.

- There can be confusion over closing the app versus closing a child window in the app (e.g., distinguishing the difference in meaning being the Close and Exit menu, or between the two “X” buttons), especially among non-power-users. Again, it adds a layer of complexity. This can also be a problem with tabbed interfaces (apparently requiring an annoying Confirm Close messagebox in Firefox).

- There’s reduced flexibility for simultaneously viewing multiple windows across more than one app. Suppose I want to look at 3 windows of one app and 1 from another app. With SDI, I can have each window take a quadrant of the screen, but I can’t do that with MDI. What if I want one child window in the MDI to be large and the other small? I have to make the parent window large to accommodate the large child (where it occludes the windows of other apps), but that wastes space when looking at the child window (which I may want to view simultaneously with the windows of other apps). Note that tabbed interfaces have a similar problem.

The solution is SDI, where a single app or process can have multiple opened primary windows (e.g., each primary window holding the SQL statements and query results in separate resizable panes). A single process may even have multiple _kinds_ of primary windows (e.g., one for SQL statements and another for the query result, if that works with the tasks better). In the latter approach, each primary window only has the menus and tools that are appropriate to it, reducing the redundancy (and total real estate usage) that would otherwise be there.

I should admit, I don’t get all the excitement over tabbed interfaces such as in Firefox and IE 7. What’s the advantage over having multiple SDI windows, and functionally using the task bar as “tabs” to select the content to look at? This is equally convenient as a tabbed interface, with none of the limitations.
Michael Zuschlag Send private email
Monday, January 28, 2008
 
 
A great example of an MDI interface that persists to this day is Photoshop. Thank god the developers at Adobe haven't listened to the dogma.

Sometimes MDI works extremely well, and I think the population of Photoshop users would collectively revolt and put heads on pikes if Adobe ever discontinued the Photoshop MDI interface.
BenjiSmith Send private email
Monday, January 28, 2008
 
 
Michael Zuschlag: "I should admit, I don’t get all the excitement over tabbed interfaces such as in Firefox and IE 7. What’s the advantage over having multiple SDI windows, and functionally using the task bar as “tabs” to select the content to look at? This is equally convenient as a tabbed interface, with none of the limitations."

One nice touch in Firefox: I frequently have many tabs open.  For example, when reading a JoS forum, I will open a tab for each thread that I am interested in.  That can be a lot of tabs.  Should I then wish to go to an off-screen tab, I position the mouse pointer on the tab bar and scroll it with the mouse wheel.

Sincerely,

Gene Wirchenko
Gene Wirchenko Send private email
Monday, January 28, 2008
 
 
Also handy in Firefox:

There's a session-handling plugin, so that you can save your current tab-layout and reload it later. Try doing that with the windows taskbar!!
BenjiSmith Send private email
Monday, January 28, 2008
 
 
Funny, but for a about 15+ years, office (word, excel) etc was mdi. Now, the default is a separate window for each word document you have open. I never bothered to “switch” back to the mdi setup (office gives you a choice that you can change to either way).

I have to admit, that as a general rule, I liked the mdi interface, but on my notebook I so often cycle through the windows (alt-tab), I not missed the mdi interface. (ctrl-tab to cycle in mdi).

I never bother to “change” the settings back to mdi. I also concur that it often will depend on the type of application, and is your UI designed for multiple documents, or a particular type of task that sequential in nature?

Does anyone change the settings in office back to mdi now?

Albert D. Kallal
Edmonton, Alberta Canada
kallal@msn.com
Albert D. Kallal Send private email
Monday, February 04, 2008
 
 
re office..

ok so word is no SDI..

so why exactly is it the case that opening a document from explorer or outlook will also bring all my other word documents to the front, then put the new one on top.

either go SDI properly (each doc operates on its own) or don't bother.

whats wrong with the way gimp does it, toolbars & palletes in normal windows. but setup so minmise the main one and all the sub windows go.. minimise a document and the tool windows stay alone.

its a case of what works for the users work flow.

i like the visual studio idea.. either go for MDI or single pain, upto the user.
Claire Rand
Saturday, February 09, 2008
 
 
I like it when programs use the same window for things like find and find results.

An example is Firefox's find bar which comes up as part of the Firefox window vs IE's find dialog which is a separate window.  Firefox text search is *much* easier to use.

I think that I like it because using a separate window almost always brings it up on top of something I'm trying to read.  There are also problems with keyboard focus.

Ideally, the program uses some kind of panel docking mechanism so that the result can be part of the main window *or* a separate window.
Jonathan Briggs
Sunday, February 17, 2008
 
 

This topic is archived. No further replies will be accepted.

Other recent topics Other recent topics
 
Powered by FogBugz