Fog Creek Software
Discussion Board




SDI vs. MDI

Joel,
As a Delphi programmer, I've been looking all over for a site that provides information on programming UI design as opposed to the technical aspect of programming, and I believe I just found it! Having perused your chapters on designing a UI (excellent by the way), do you have any thoughts on SDI vs. MDI for Window programmers like myself who develop single-tier applications for home based and small office PC's? Any suggestions, comments you have to offer regarding this subject matter would be most appreciated. Thank you ahead of time.

Martin Potokar
Wednesday, January 16, 2002

Tog mentions something about it, though his site is very bare on the topic:
http://www.asktog.com/readerMail/2000-07ReaderMail.html#Anchor2

Greg
Wednesday, January 16, 2002

My thoughts on this are: give the user the option to choose which one.

I use Opera as my main browser, but I remember hating previous versions partly because it just didnt work as well as IE or Netscape and partly because it was a MDI interface. Fat forward to version 5 (and onwards) and they improved the functionality, and I much prefer using it precisely because it is an MDI application. I use Win2000 so I don't like a million browser windows cluttering up my task bar. I know WinXP fixes this by grouping windows, but I dont have this option.

In Opera 6 they now give you a choice on whether you want to use it as an MDI or SDI application. You can change at any time. This obviously helps people who are used to browsing with or prefer SDI apps.

Kenshi
Wednesday, January 16, 2002

MDI is pretty much considered evil now for a range a reasons, but mostly because it is confusing. Who needs a small desktop within a desktop?

Given a few exceptions, almost all popular applications that once used MDI have left it or are leaving it. To compare multi-document solutions, one can take Web Browsers as an example. Multiple Windows (IE) are better than MDI (Opera). A tabbed window (Mozilla) is even better than multiple windows, especially if the user can open a new window if they want to.

Jan Derk
Wednesday, January 16, 2002

But on the other hand, MDI allows you to organize all work related to one application (for example spread sheets) in one window. I often find it confusing to have both a Close and an Exit menu command in multiple-window SDI programs, like Dreamweaver. Sometimes you shut down the entire program while you just wanted to close a single window.

So, I prefer MDI applications, if they are designed well. Unfortunately, it's very easy to create bad MDI apps. Take the new Microsoft HTML Help Workshop, for example. It's completely useless. So I guess I'd say, use MDI if you're good at interface design. :-)

Frederik Slijkerman
Wednesday, January 16, 2002

I mostly develop database apps (vice document-based apps), and my end users have responded very positively to an Outlook-style interface.

They liked several aspects of the design:
- ease of navigation through different types of data (e.g. customers, products, orders, etc.)
- flexibility of multiple summary views for a specific type of data (e.g. all customers, delinquent customers, etc.)
- ability to drill down to a specific data entity (e.g. customer "Joe Blow") in a separate window while still seeing the summary view in the main window.

I wouldn't recommend this interface universally, but it does have some advantages.  Always nice to have options.

Brandon Knowle
Wednesday, January 16, 2002

MDI Considered Harmful.

However, that's MS's point of view.

If you ask Actual Users, they prefer MDI over SDI.  MS Word switched from MDI to SDI a version or two ago, and most users who noticed (i.e., the ones who ever have more than one document open) squealed no end and continue to do so.  Not that anyone pays attention to users any more.

I will continue to use MDI until they pry it from my cold, dead mouseball.  It isn't perfect, but it's better than SDI. 

Chris

Chris Dunford
Wednesday, January 16, 2002

If you have more than one window because you have different types of view to display, I might prefer something other than MDI: for example, splitter bars (like Outlook Express) which split the one window into panes; or, the 'tabs' such as you see on MS Word "Options..." dialog.

OTOH if you have more than one window because you have multiple instances of the same view onto different data instances, then I might like MDI: for example, I find it easier to drag-and-drop files from one directory to another using Winfile.EXE (a separate MDI window for each directory) than using Explorer.EXE (whose one SDI view for each directory => scrolling within the window, or multiple explorer instances).

In general a splitter bar (such as in Norton Commander) can also be a good alternative to MDI (especially where you have a finite maximum number of view instances).

Christopher Wells
Wednesday, January 16, 2002

Whatever you do, don't provide both. Pick the one that is best for your application and make it as good as it can be. Lean towards SDI.

pb
Wednesday, January 16, 2002

Here are the usability problems people have with MDI:

* They accidentally minimize a child window, e.g. by double clicking it's title bar, and don't know what they've done. Then they think the other windows are lost.

* They get into a state where the child windows are not even visible because the main window is too small or scrolled away, and don't know what they've done. Then they think the window is lost, and choosing it from the Window list does nothing.

* They close the app when they meant to close a child window because the X's icons are so close.

There are a whole range of other pathologies. Programmers are very logical people and understand MDI quickly. Most end users just don't get it and usability on these apps is terrible.

Joel Spolsky
Wednesday, January 16, 2002

I agree with Joel that SDI is generally preferable (I really like IE, and was happy when Word transitioned to SDI =).

An interesting counterexample is Photoshop - I wouldn't say its MDI interface is perfect, but I much prefer it above the GIMP's SDI interface... I think the key factor here is the multitude of little windows associated with a graphics program (brushes, palettes, etc) - MDI is a good way to group them. It's a pain to minimize the GIMP because each window is separate; whereas Photoshop goes away all at once with one click on the main window... IE and MS Word have essentially one big window for each document, so there is no real advantage to having them grouped together.

Dan Maas
Wednesday, January 16, 2002

Chris Dunford wrote:
"MDI Considered Harmful.
However, that's MS's point of view."

This sounds a bit like a the religious type of thinking one sees a lot these days. While I despise the business practices of Microsoft as much as anybody else, and agree that some of their products should have never seen the daylight. On the other hand you have to give them credit for several really great products they made. The fact is that they learn, and one has to admit sometimes quite quickly given the size of the organization.

What I want to say is: you bet that MS has gone through huge amounts of testing to find out what GUI design is optimal. Deciding to switch MS office from MDI to SDI, was a major decision and one that shows that they adapt.

When I'm not sure about a GUI element I often look at the latest Microsoft products to see how they solved it. It's an easy way to profit from the millions Microsoft spend on usability testing.

The fact that so many programmers like MDI proves that it is a good idea to have GUI experts around who know that most users don't spend 8 hours per day behind a keyboard.

Jan Derk
Wednesday, January 16, 2002

You're not really piggy-backing Microsoft's usability testing as much as you are nearly universal familiarity with Microsoft products.

pb
Wednesday, January 16, 2002

pb wrote;
"You're not really piggy-backing Microsoft's usability testing as much as you are nearly universal familiarity with Microsoft products."

While I would say both, you are right. I stick to the

File - Edit - View - Tools - Help

menu structure unless there are really compelling reasons to break with it. If people are looking at these kind of menus for hours a day than they probably appreciate it if they are similar in the little application they want to use for 5 minutes.

Jan Derk
Wednesday, January 16, 2002

I really love Opera because it is MDI. I cant move back to SDI.

Sergio
Wednesday, January 16, 2002

SDI is better if you have more than one monitor.  I frequently compare two documents, side by side, viewing them on separate monitors.  Its awkward to do that in an MDI interface.

Eric Hoffland
Wednesday, January 16, 2002

I've always hated MDI.  When I worked on help desk, I encountered so many frustrated caller dealing with the problems Joel describes.

In my opinion MDI is an evil second only to the overdeveloped, always getting lost, Toolbars.

For dealing with multiple documents, I think the Tab Strip used by Lotus Smartsuite is much better.  For new users, it directly relates to a nice familiar ringbinder.

I also much prefers Delphi's SDI overs VBs MDI.

Ged Byrne
Thursday, January 17, 2002

Its an interesting notion, that MDI is evil because it behaves as an environment within an environment and so the contextual behaviour of the application can be lost by the user.

Yes there will always be users that when they minimise an application will lose it, whether its MDI or SDI.  Is that the user's fault, the application's fault?  It feels much more like a presentation fault in the operating system.

Sometimes an application is best suited to creating its own environment within the environment of  the operating system.  If your job pretty much revolves around using the wordprocessor as your single application then having multiple separately resizeable windows is really not what you want.  You want to have the application manage all of those documents because that is what you expect.  To have each individual document have its own separate presence is quite disturbing.

On the other hand deconstructing the application completely so that the containing window is completely lost is also disorienting, VB for example.  I was once involved in a development where it was thought a really neat idea to embed the application view into the o/s.  So that the file browsers became shell extensions, and running the associated app opened a document of that 'type' and the application inherited all of the integration and cross fertilisation of the desktop model.

Unfortunately, it also became apparent that the application disappeared from view, the idea of what the application was and its functionality merged too well with the background.

Out of this I take one major lesson.  Users have computers to do things, to run applications, and for the most part just one application.  They do not have computers to use operating systems. 

The operating system should not obtrude onto the application.

This of course does not mean that MDI is the best way to present application objects, it just means its one way which is still valid and still has uses.

Simon Lucy
Thursday, January 17, 2002

Simon wrote: "Unfortunately, it also became apparent that the application disappeared from view, the idea of what the application was and its functionality merged too well with the background."

Is this possible?  The application working "too well" with the operating system?

Is it really so important for the user to have a firm distinction what part is "the OS"  and what part is "the application"?

User's don't really CARE about applications, they really care about their data.  To them, the fact that double-clicking a Word document  spawns a new process called winword.exe is an irrelevant detail to them; as long as their document comes up, it doesn't matter WHAT the titlebar says.

Alyosha`
http://www.alyosha.net/

Alyosha`
Thursday, January 17, 2002

I have always thought that MDI was a response to the fact that most OSes don't have multiple desktops.  In Unix windowing systems, you get to put applications in many different desktops, organizing them neatly despite them being SDI.

That would explain why the Gimp is SDI while Photoshop is MDI.

Therefore I think that having multiple desktops is a generalized case of MDI.  And I can guess since multiple desktops are missing from OSX and Windows, it's a usability problem for many consumers.

Red Davis
Thursday, January 17, 2002

Simon said:
Yes there will always be users that when they minimise an application will lose it, whether its MDI or SDI. Is that the user's fault, the application's fault? It feels much more like a presentation fault in the operating system.


My own hatred is down to being in telephone support.  The problem with MDI is that it is too complicated, and is not a metaphor for anything real.

Imagine my position on the phone when a frustrated user has lost a document and a deadline approaches.

With a tab strip it is easy:  "Its just like a ring binder."

Minimizing windows isn't too hard:  "It's been sent to the task bar.  Press the button to get it back."  The fact that there is still a physical button to see helps.  I suspect XPs cleve new task bars will be a source of frustration.

MDI interfaces.  How do you describe an MDI interface in one sentance.  Any more than one sentance and the user stops listening.  They just want to be told how to get back their important document.  Any lecture on the principles of an MDI document will annoy them.  The best I can think of is "Imagine theres a whole in your desk, and you'r looking at the documents through that.'

As I said.  In a word processor the best management of multiple documents is in Lotus Smartsuite.  Tabs along the top.  Just like a ring binder.  No problems.

Ged Byrne
Thursday, January 17, 2002

Alyosha: Is it really so important for the user to have a firm distinction what part is "the OS" and what part is "the application"?

I think so yes, if your application is a brand and needs to be differentiated.  However, the other problem is in keeping up with the changes in the desktop.

As for the telephone support problem.  Yes I understand it,  I've been there, done that :-).  And it is a problem but not usually of the application's making.  The Lotus taskbar was ok but could get really messy too and it confuses users at first having two taskbars.

Simon Lucy
Thursday, January 17, 2002

Thanks Red, your bit about multiple desktops compensating for SDI is very interesting. I will have to try setting aside one desktop for the GIMP...

Dan Maas
Thursday, January 17, 2002

My 2-Euro Cents:

http://usability.ru/toader/english/articles/mdi_alternative.htm

Sedelnikov Andrei
Friday, January 18, 2002

To MDI" or not to MDI depends a lot upon the particular app in my opinion.  I prefer an MDI interface for painting/drawing programs like PhotoShop.  However, for browsing web pages, I prefer an SDI interface.  If I want to use an MDI app as an SDI app, I'll just open another instance of the application.

TenFive
Saturday, January 19, 2002

Hello Everyone.
This topic raised an interesting point: the usability against marketability.
As far as I can see the whole discussion flows around the same spile: MDI is harmful.
Yes, I understand that very well. Two layer structure of the windows... The absence of the taskbar buttons... The child windows sizes are restricted by the main window... Most of the time I work in some MDI environment (e.g. MS VC++) I found myself struggling with my memory trying to remember what files do I have open. Taskbar is fine - it shows you all your windows at a glance.
Yes, I can imagine some complex interfaces requiring multiple windows to work. Graph applications discussed here give the good example of these. Still I am sure it'll be easier if one had two distinct taskbar buttons for two pictures one is editing, still keeping the palettes and supplementary windows "tasbarless".
There were no other arguement for the MDI. (Oh, yes, the web browser - the one more special case of the program which has to display a hundred views at a time. IE approach suites me fine. I'd like the only improvement - a separate window showing the URLs and d/l progress for all my active IE windows in some kind of table if there are more than 10)

Actually the problem is that: from the MS point of view the applications should be invisible. And this is also the users' point of view. Every time the user notices some application it means that his interaction with data was interrupted. Ideal application should use as much mimicry as Randall from Monsters Inc (http://us.imdb.com/Title?0198781). The users should be focused on their primary task cause they have some job to do else than studying the seams betweeen Windows and application.

But that's exactly opposite to what marketing dept's need. It's hard to promote something invisible (except it's a certain lingerie).
The software vendors are trying to make their applications different. iMac style - great! Let's make iMac skin for our home accounting program. Can we make our logo in brighter red? Yes, like this, a little bigger... Ok! Now please make sure it appears at the top left corner of every screen in our program. I know it consumes a quarter of screen real estate. Remove a couple of edit boxes - the users do not fill these anyway.

The bad thing is they are right. Microsoft did (and still does)a dam good job at gathering various useful gadgets under the Windows cover. Now when my friend sees some unfamiliar item in the Explorer pop-up menu on my PC, I can't tell him where it comes from. Maybe I got IE version 0.00.001 bigger than him. Maybe I downloaded some free staff from the Net. Maybe I just was fooling around with registry settings and occasionally turned something on. I cannot give him a reference.
But when my friend shows me his new 3D flick he is pretty sure that it's LightWave. Cause it displayed a splash for 30 seconds before launching and it does not pretend to be a part of Windows.

So, the resume is follows: Until we have an alternate way to promote the functionality (I intentionally refrain from the term "applications") we are stuck with the hardly usable software solutions.

Sinclair Evilguest
Sunday, January 27, 2002

I just revived a Slashdot post I made on this topic last November: http://www.platypus.ro/content/entry.php?2002/January/27a

Jeff Darcy
Sunday, January 27, 2002

To Jeff: ("It would be cool if we could tell applications what window manager instance (WMI) to use")

Giving the users too much freedom is sometimes equal to living them in the wild.

It's better to provide a single properly designed metaphor than to provide a choice of many.

For example MS Money is neither SDI nor MDI - there can be only one instance of this application. It has only one window but provides one of the best UIs I've ever seen.

The solution you suggest could be appropriate for the certain application types, but it should not be considered ultimate. Too many of us would take a chance to lay off the responsibility for the UI design :)

Sinclair Evilguest
Sunday, January 27, 2002

There's a lot more to UI design than the windowing model, Sinclair.  My point (if I had one) was that application designers shouldn't be wasting time implementing window-manager functionality - and taking choices away from the user in the process - when they could be spending that time on application functionality.  They could also be spending time on other UI issues that don't already have well-known solutions.

If you feel that a particular application works best with an SDI model, then by all means make that a default, but there's no good reason the default shouldn't be changeable.  Ditto if you feel MDI is the best fit.  You might even feel that your "internal window manager" offers useful functionality that standard window managers do not.  Great, wonderful...make the internal window manager the default.  Any decent programmer knows the importance of separating logic from presentation; in this case, it means separating the internal window manager from the actual application logic, and once you've done that it should be easy to give the user a choice (however perverse you might think that choice is) to use an external window manager instead.

Any SDI application is already "punting" on window management anyway, by letting the main-desktop window manager deal with everything.  IMO it's irresponsible for app developers to cede control over window management to the OS when, with just a *tiny* bit of extra work they could cede it to the user instead.

Jeff Darcy
Monday, January 28, 2002

*  Recent Topics

*  Fog Creek Home