Not Invented Here

It must be written, in the Great Book of Software Design Principles:

  • Thou shalt never leverage the usability/design principles discovered by thy rivals.

I’ve never actually seen the book, mind you. But I know it’s there. Why else would so many software designers follow the same rules so slavishly?

This rule is sometimes called NIH, “not invented here.” Developers — recall that I’m an emeritus member of that community — believe in two variants of this commandment:

  • If thou in thy mind shall see a unique design that seemeth “better,” thou must then go forth and implement it, no matter what thy users and customers desireth.
  • If thou shalt pass by a design of thy rival and not notice thy rival’s principles, then thou mayest not only ignore those principle but thou mayest claim that those principles, like grapes, are truly sour and an abomination.

Sometimes it works out for you. Most of the time it doesn’t.

Let me offer some examples:

  1. The Book of Jobs sayeth, Apple did bring forth a mouse with a single button. Microsoft saw that it was good, but then saw that yea, a mouse that hath two buttons was better. I start with this one because it’s a great introduction to the debate, with good value on both sides. Apple chose to make the core action — clicking — simpler while making the secondary action — right clicking, which requires both hands on the Mac — more difficult. Microsoft chose to make more power available to users in exchange for a slight increase in complexity of learning. My personal vote is for the Microsoft method, but both are valid and have sane points in their favor. (Caveat: I was one of the first Mac developers in 1983 — the beta of the Mac — and 1984 and developed a general dislike for Apple for its treatment of developers during that period, so I am likely not objective here.)
  2. The Scroll of Beraysheet sayeth, Microsoft didst discover that, traversing word to word, paragraph endings and punctuation were as equal to the starts of thy words; Mozilla claimeth thus that a word is but a word and that the cursor shalt pause upon solely the start of new true words. When you advance the cursor by word in MS-Word or the Internet Explorer/Windows edit tool (Ctrl+left or right arrow) and come to the end of a paragraph, the cursor treats it as a stopping point. Likewise, when you come to punctuation, the cursor stops. This is seriously elegant, because it recognizes that these are common editing points. When I move word-right from the last word in this paragraph as I edit this post in Mozilla Firefox, the cursor will not stop on the period, or the break between paragraphs. There is a technical word for this behavior. That word is “stupid.” (“Beraysheet” is the sound of the first word of the Bible in the original Hebrew, rendered in English as “In the beginning.”)
  3. The Tale of Goog and MicGoog revealeth that Goog didst find value in a clean and simple search page, while MSFT didst clutter it unto infinity. And yea, Goog smote MSFT in the search wars. Picture the MSN start page, if you dare. ‘Nuff said.
  4. The Book of Numbers and Letters sayeth that in spreadsheets shalt thou count the rows with numbers and the columns with letters; I am Kapor. Microsoft failed to obey this commandment in MultiPlan, the predecessor to Excel, using numbers for both, yielding the abomination R2C2 (row 2, column 2) for what any real spreadsheet would call cell B2. R2C2 wasn’t nearly as cute as R2D2, and eventually Microsoft got with the program and relabeled things Lotus-123-style. (Mitch Kapor used to run Lotus, makers of 123. Sorry, getting a bit obscure here halfway through my second glass of wine as I write this at night — though I assure you it’s sacramental wine. And the threat of a lawsuit might have had something to do with Microsoft’s choice; I was at Microsoft seemingly unto forever, but this battle truly was before my time.)
  5. The Dread IE Scrolls claimeth that the righteous mayest move from browser tab to tab by commanding Ctrl+Tab, and that yea and verily thou shalt be able to alternate between two tabs by pressing Ctrl+Tab again. Mozilla and Chrome sayeth, Not so much. Actually, Mozilla Firefox sayeth, Heck No! Chrome sayeth, Ctrl+Tab shalt rotate through the tabs — a noble analog to the Windows Alt+Tab paradigm, except that they got the paradigm wrong! In Windows, if you hold Alt and press Tab a few times, you indeed cycle through your windows. However, if you press Alt+Tab, release it, and then Alt+Tab again, you alternate between your two most recent windows, an outstandingly useful model. IE implements the same thing with Ctrl+Tab. Chrome is out to lunch… and Firefox didn’t even realize the lunch bell had rung. Helllloooo! I’m sure someone thinks there is a rationale for this behavior, but like the Mozilla word-to-word issue, it’s dumb, to be blunt. Microsoft got this one right; copy it!

I could go on, but I hope you get the idea by now… and I’m running out of Biblical puns. (I almost cited #4 as stemming from the book of Corinthians, but figured that was way too obscure. A “Corinthian” is also a type of column. You know, like spreadsheets have columns. I think I’ll stop now. Jokes shouldn’t have to be explained.)

The first rule of software design is that if someone has a good user-interface idea, borrow it. A couple of 1980s court cases said it’s basically okay to do that (IANAL, of course), so get used to the idea that different isn’t better. Get over it. And get it right. Your users are counting on you… or cursing you.

7 comments to Not Invented Here: Five Examples of NIH Syndrome

  • It’s Ctrl-Shift-Tab to go backwards through tabs in Chrome (and Firefox too I think).

    I did it automatically, and it worked, so I thought hey got it right :)

  • noccrit

    Ian, Ctrl+Tab indeed cycles through the tabs; however, consider the Windows Alt+tab behavior. If you’re running Windows, open three or more Windows. Press Alt+Tab once (and release it), and the second window is now at the top. Press it again, and the former first window is once again at the top. In other words, you can easily go back and forth between two windows — e.g., a Word article and an online browser reference you’re using.

    IE implemented Ctrl+Tab along the same model. Press it once, and you go to another tab. Press it again, and you’re back at the first tab.

    You can hold down Ctrl or Alt and pres Tab multiple times to cycle through tabs or windows, respectively. This hold-it-down-to-cycle behavior is what Firefox and Chrome break.

    It’s not a big deal if I’m reading, say, the NY Times on line, but when I’m working on a column here and trying to go back and forth with another site for research, the paradigm break is annoying.

  • Hi Steve,
    I actually find the standard alt-tab quite painful, I’d rather they used the cycle method (and Shift-modified to go back).

    But… it’s horses for courses I guess.

    Perhaps the Chrome/FF developers preferred the cycling method (switching could be quite confusing at times if you didn’t know what you were looking at).

    There is definitely a case to be made for keeping it consistent though.

  • I’m confused about what version of IE you are referring to for example 5. For me (in both IE7 under XP and IE8 under 7) ctrl-tab cycles through the tabs.

    Now if IE does have the ctrl-tab for recent behaviour you describe then it is Microsoft that is guilty of NIH.

    1. The tab paradigm has been around for a lot longer than IE has had tabs.

    2. tabs are not windows. Tabs have a fixed (and obvious) order, so any cycling should be in that order. Windows on the other hand have no order, yet they do have depth. The alt-tab model cycles through in depth order, you can toggle between two windows becuase viewing a window will move it to the top of the stack. However when you view a tab, the ordering does not change.

    For example 2, if you are going to highlight Firefox in regard to moving by word, you should include Notepad and Excel because they also doesn’t stop on punctuation.

  • noccrit

    I hadn’t thought to check Notepad, but it too (partially) breaks the paradigm. It stops at line endings but not at punctuation.

    Somehow I’m not being clear about Ctrl+Tab. It cycles through tabs if you hold the Ctrl key down. If you release Ctrl and Ctrl+Tab again, it goes to the previously viewed tab — at least in IE 8, which is the only version I have. (And sometimes you have to wait out IE8’s slowness to get the full page loaded for this to work, it seems.)

    Technically, tabs do have a fixed order, but from a human interface standpoint, they (also) have a presentation order akin to the Windows z-order (depth), in effect an MRU algorithm (most recently used). IE’s implementation allows both — continuous cycling and alternation — the same way Windows does. You’re right in saying that Firefox had tabs first, but I personally would have revised the implementation of Ctrl+Tab the moment I saw what IE had done and recognized its user-friendly parallel to Windows. (Actually, I am confident I’d have done it the Windows way in the first place, since flipping back and forth between two tabs is something I do a lot.)

    Now if only the Excel team would get on board with Ctrl+Tab. (You need Ctrl+PgUp/PgDn to switch among worksheet tabs. It works, but why not get in synch with IE rather than forcing users to learn one more way of doing the same thing?)

  • I still can’t replicate the MRU ctrl-tab in IE behaviour. This time with IE8 on XP. And yes, I have always been going ctrl-tab, release both keys, ctrl-tab, release…

    I wasn’t saying that Firefox had tabs first. I was meaning that tabs predate IE7 in many other applications (which does include Firefox).

    So how does the Windows XP (at work so no access to 7 right now) tab model behave? Ctrl-tab (with release, no holding of ctrl) cycles through tabs. To observe this you can go to the explorer folder options, taskbar properties or most panels in the control panel (which means that the tab behaviour can probably be found all the way back to Windows 95) where most of the panels use tabs.

    This is why “the same way Windows does” doesn’t sit right with me in regard to tabs. It is Firefox that is doing it the Windows way.

    If you want to be able to toggle, then use separate windows and alt-tab, as that is the Windows way.

  • noccrit

    My bad here. There is an IE setting that creates this behavior; I thought it was the default, but it’s not. (I think it should be, obviously, but I gather it’s not unanimous!) Tools –> Options –> Advanced, and then under Browsing check “Use most recent order when switching tabs with Ctrl+Tab.” I don’t know if that’s a Vista-only thing, since all of our machines at home are running Vista (except for an ancient Win2000 home server that also has IE6 on it so my-wife-the-web-designer can check sites against some weird IE6 behaviors).

Get Adobe Flash playerPlugin by wpburn.com wordpress themes