Forgot your password?
typodupeerror
Businesses Microsoft Programming Software IT

Why Microsoft Developers Need a Style Guide 262

Posted by timothy
from the offense-is-the-worst-thing-in-the-world dept.
snydeq writes "What your interface communicates to users can be just as important as what your software does, writes Fatal Exception's Neil McAllister in discussing the latest edition of the 'Microsoft Manual of Style', a style guide aimed at designers and developers who create Microsoft software, as well as those who write about it. 'The gist of much of Microsoft's advice is that a user's relationship with computer software is a unique one, and it's important to craft the language of software UIs accordingly,' McAllister writes. 'Occasionally, Microsoft's recommendations verge on the absurd. For example, you might not think it necessary to admonish developers to "not use slang that may be considered profane or derogatory, such as 'pimp' or 'bitch,'" but apparently it is.'"
This discussion has been archived. No new comments can be posted.

Why Microsoft Developers Need a Style Guide

Comments Filter:
  • by Anonymous Coward on Sunday February 12, 2012 @06:34PM (#39014043)

    You silly open source GIMP developers...

    • Art of programming (Score:5, Insightful)

      by jellomizer (103300) on Monday February 13, 2012 @07:53AM (#39017669)
      Software development is a form of art where Math/Logic/Science/Engineering are our mediums to work with. Being an art form the software developer feels the need to express themselves in their program, in one way or an other.
      However much like real artists in order to make a living they need to do a buch of commissioned work where you need to make what the boss wants and your personal style is limited. And as you get more artists on a project you need a style guide to make sure the project is consistent.
      GNU projects often lose a good UI compared to their closed source counterpart because each artist is making their own statement in the program. I find that the GIMP does this. Now this isn't a flaw in the GNU but a good GNU project needs the same oversite and rules a good closed source solution needs, and often much earlier in the process because open source you get a lot of people doing a little bit of code, while closed source you get a few people doing the bulk.
  • by Anonymous Coward on Sunday February 12, 2012 @06:34PM (#39014047)

    Cancel, or "pimp this bitch"

  • by Anonymous Coward on Sunday February 12, 2012 @06:36PM (#39014057)

    How about, when naming variables, you have to put the first letter of the typename in the start of the variable name!

    And then later let's change the types in the API but keep the unmatching old names for compatibility!

    • by skids (119237) on Sunday February 12, 2012 @06:54PM (#39014197) Homepage

      I don't know, I found the chapter on EnterpriseInterfaceThunkClassEnterpriseGeneratorCOMParameterInterfaceThunk32 COM_Enterprise_Enterprize_ENTERPRISE very illuminating.

    • by exomondo (1725132)

      How about, when naming variables, you have to put the first letter of the typename in the start of the variable name!

      Hungarian notation isn't about using the typename at all.

      • by maxwell demon (590494) on Sunday February 12, 2012 @07:23PM (#39014403) Journal

        How about, when naming variables, you have to put the first letter of the typename in the start of the variable name!

        Hungarian notation isn't about using the typename at all.

        Please tell that to Microsoft.

        • Re: (Score:3, Informative)

          As an old classic Visual Basic programmer, there was a good reason to use hungarian notation. You had a sorted dropdown list of the classes/types, from which after choosing one, could then choose the method/property to implement in an adjacent dropdown list. Point being, your textboxes were grouped together and your enums were grouped together, and so on. It made managing the code easier.
          • Re: (Score:3, Informative)

            That may be a good reason. The real reason for the rise of Hungarian Notation is that the Microsoft C compiler didn't do type checking for some time after other C compilers had it. If you wanted to have a clue what type you were using you adopted Charles Simonyi's notation (which was used by FORTRAN devs at the time). The problem is, that awful practice of using 'warts' as a prefix stuck around. It even lingers in C# where interfaces are traditionally prefixed with "I". Fortunately this is something that J
            • by swillden (191260) <shawn-ds@willden.org> on Monday February 13, 2012 @02:02AM (#39016507) Homepage Journal

              The real reason for the rise of Hungarian Notation is that the Microsoft C compiler didn't do type checking for some time after other C compilers had it. If you wanted to have a clue what type you were using you adopted Charles Simonyi's notation (which was used by FORTRAN devs at the time).

              Cite? The early Microsoft C compiler was Lattice C, which was an ANSI C compiler. It had to have typechecking.

              Also, everything I read says Simonyi invented his notation, or at least the rudiments of it, in the 70s while working for Xerox PARC. So it couldn't have been a reaction to a deficient MS compiler that didn't yet exist.

            • by DrXym (126579) on Monday February 13, 2012 @05:41AM (#39017297)
              Microsoft used hungarian notation most likely because it seemed like a good idea at the time. Various BASIC dialects were untyped or only loosely typed ($, % etc.) and C/C++ development environments weren't (and still aren't) very good at reflection / refactoring. So it was a useful hint to the programmer to save them hunting around to find the declaration. Microsoft's book series, e.g. Code Complete also pushed the idea onto external developers.

              Nowadays I think the reasons for hungarian have largely disappeared. Modern IDEs for Java or .NET provide enough assistance that you can find out the type of something by hovering over it. You'll get the type and any documentation. And ctrl clicking the type takes you to the definition. There is no need to decorate the type because it just adds noise. Personally I don't even like scoping which some Java devs seem to do with _ on the front of member variables because it usually confuses the IDE.

              It may still have some use in JavaScript or Perl or other polymorphic environments where the editor / IDE and the runtime is pretty useless at assisting developers though it should probably be done in a limited way, e.g. s for string, n for number, a for array etc.

            • by TheRaven64 (641858) on Monday February 13, 2012 @07:53AM (#39017671) Journal

              The third explanation in this thread, and not the correct one either.

              Originally, Hungarian notation was used by the Apps group in Microsoft. It was used to indicate things that were not expressed in the C type system. For example, an integer referring to a column number in a spreadsheet would be colsFoo, while another referring to a row would be rowsFoo. If you wrote something like if (rowCurrent When the Systems group adopted the convention, they started using it for the variable type, not its meaning. This completely defeated the point, but the Systems group version was the one that caught on due to their greater influence within the company.

              C is one of the few Algol-family languages where this is actually necessary. In most others, you can create a columns type and a rows type that are both integers but can not be implicitly cast to the other.

        • by Rinikusu (28164) on Sunday February 12, 2012 @09:11PM (#39015037)

          There were a lot of who went through college in the early-mid 90s where Hungarian notation was considered proper software development and scores were marked down in various programming classes if you didn't adhere to it. It was the late-90s/early-2000s when people apparently discovered that it was a very, very bad idea especially as we refactored 5-10 year old code. Now it seems we're happy if you just use camel-case.

          • by Nemyst (1383049)

            Yeah, now you just need to put a lowercase letter in front of every variable and it doesn't matter if it doesn't mean anything!

          • by NevarMore (248971) on Sunday February 12, 2012 @10:50PM (#39015477) Homepage Journal

            I was (am?) the generation who learned to code in the mid-90s. I hate to sound lazy, but once we got over that hungarian nonsense, every team I've worked on just agreed (or had dictated) an autoformatter for our IDE and just made sure to run it before we committed. Hell one team had it setup as a pre-commit hook in SVN. It mooted many of the style arguments and let us focus on solving real problems.

            Hell the more modern IDEs like Eclipse, IntelliJ, and VisualStudio even suggest variable names and hint for proper case. As programmers and software engineers should we not use software tools to do tedious and mundane work for us?

          • by hey! (33014)

            Well, I think the problems with how people used HN are much more complicated than Hungarian Notation == Bad. They have to do with an inappropriate style of HN being adopted by C programmers for historical reasons.

            Pointers are something the vast majority of non-C programmers never deal with these days. In the days of 16 bit Intel compatible software the most efficient pointer was a 16 bit integer(ish) value. Such a pointer could only address a 64K space, and so the programmer had to keep straight which poin

        • by jd2112 (1535857)

          How about, when naming variables, you have to put the first letter of the typename in the start of the variable name!

          Hungarian notation isn't about using the typename at all.

          Please tell that to Microsoft.

          Even Microsoft has given up on Hungarian Notation.

      • by LambdaWolf (1561517) on Sunday February 12, 2012 @11:05PM (#39015567)

        How about, when naming variables, you have to put the first letter of the typename in the start of the variable name!

        Hungarian notation isn't about using the typename at all.

        Indeed. Here is some good reading on the actual purpose of Hungarian notation, [joelonsoftware.com] although of course it's used wrong far more often than not. I've never used it myself, correctly or otherwise, but I acknowledge that the original intent was at least sensible.

  • Rude words (Score:5, Informative)

    by madprof (4723) on Sunday February 12, 2012 @06:37PM (#39014065)

    Obviously they do have to put in the bit about not using words that some might find offensive in case someone, having a bad day, put it in and they had no come back.
    It's quite incredible what some developers, at any size of company, will do sometimes.

  • by Anonymous Coward on Sunday February 12, 2012 @06:41PM (#39014093)

    Take the 'Malicious Software Removal Tool' for one example. Sounds to me like a malicious program that goes and removes software from your computer. They should have called it the 'Tool for Removing Malicious Software'. I look at such ambiguity with a laugh. I recently had a dialogue box on my computer saying something along the lines of "Problem Reporting _____". (I forget the exact text.) Does that mean that the system is reporting a problem, or having a problem reporting? Considering that most users of the software are not experts, they should try harder to make things less confusing.

    • Re: (Score:2, Funny)

      by Anonymous Coward

      >Take the 'Malicious Software Removal Tool' for one example. Sounds to me like a malicious program that goes and removes software from your computer

      Thank you for your bad ass-insight [xkcd.com].

      • by adjuster (61096) on Sunday February 12, 2012 @07:18PM (#39014343) Homepage Journal
        Reminds me of the short-lived Critical Update Notification Tool Microsoft released back in the early 2000's. (Yeah-- they really named it that, though they _quickly_ backpedaled on the name...)
        • by bsims (895751)
          And who can forget Microsoft Services for Unix... with the offical abbriviation of SFU
        • by nbauman (624611)

          I wonder what reason they gave in the memo announcing the change.

          I remember how an electrical wholesaling industry association set up their first computerized order system which they called the Direct Order Entry Processing System.

          In the memo they said they changed it because it was "too hard to pronounce."

    • by clarkn0va (807617)
      Considering that a fair number of MS coders are apparently not experts, I always assumed the ambiguity was intentional, or at least the best they could muster.
    • by 140Mandak262Jamuna (970587) on Sunday February 12, 2012 @08:33PM (#39014833) Journal

      Take the 'Malicious Software Removal Tool' for one example. Sounds to me like a malicious program that goes and removes software from your computer.

      The name accurately describes what the software does and how. Your explanation that it is a malicious tool that removes software is correct. Your mistake is to assume it is a tool to remove malicious software.

      • by jackbird (721605)

        Got a link for more info? Not only have I never encountered a false positive from that tool, I've never seen it have any effect at all, even on obviously infected machines.

    • by Rashkae (59673)

      I just had to deal with Microsoft Security essentials, i it's default settings, deleting an entire Thunderbird Inbox when it detected a virus attachment. (not quarantined, mind you, deleted, with no warning or message other than a little note in history log.) As far as I'm concerned, your first impression is not too far off the mark.

    • They should have called it the 'Tool for Removing Malicious Software'

      I'm sorry, you'll have to take up your grievance with Richard Stallman; Apparently GPLv3 is the only license allowed for derivatives acronyms such as TRMS.

    • Oh I know: "Tool to remove software that is malicious in ways other than those which we have come up with for you today." or in short, TTRSTIMIWOTTWWHCUWFYT.

  • Bad title (Score:5, Informative)

    by PCM2 (4486) on Sunday February 12, 2012 @06:46PM (#39014123) Homepage

    I just want to go on record as saying I hate this headline. I didn't pick it. Furthermore, I don't think there's anything in particular about Microsoft developers that makes them "need a style guide" more than anybody else, and that notion had absolutely nothing to do with my column. I just thought it was interesting that a Microsoft style guide exists, that it's available for sale, and that it has some interesting stuff in it about writing for software UIs that a lot of developers probably don't think about. That's about it.

    • Re:Bad title (Score:4, Insightful)

      by davester666 (731373) on Sunday February 12, 2012 @07:01PM (#39014229) Journal

      Why is this for sale? You'd think they would want more well-designed software for their platform, especially with Metro just around the corner.

      • Wouldn't that be why it's for sale, instead of remaining, say, a Microsoft internal document?

        • by Cinder6 (894572)

          I believe the parent was wondering why they are offering it for a price, rather than for free.

        • by Altus (1034)

          I think the implication here is that you should give away your style guide for free to give every developer access to it, hopefully leading to a more cohesive platform experience.

      • by Froboz23 (690392) on Monday February 13, 2012 @03:41AM (#39016935)
        I agree that this document should be free rather than for sale. For more details on why I think this document should be free, please refer to my Kindle eBook "Why I think the Microsoft Style Guide Should Be Free", available for download from Amazon for only 99 cents.
  • Master/slave (Score:5, Informative)

    by Samantha Wright (1324923) on Sunday February 12, 2012 @06:46PM (#39014127) Homepage Journal

    Similarly, the relationship between USB peripherals could be described as "master/slave," but these terms could also be considered offensive. (The "Microsoft Manual of Style" says such language is prohibited in "at least one U.S. municipality.")

    Dear Neil McAllister,

    That terminology originally comes from disk drive buses, and the municipality is Los Angeles [snopes.com]. Are you really a tech writer?

    Sincerely,

    Suspicious

    • Re:Master/slave (Score:5, Informative)

      by Samantha Wright (1324923) on Sunday February 12, 2012 @06:49PM (#39014161) Homepage Journal

      Addendum:

      Huh?

      Dear Neil McAllister,

      Netscape named their implementation of ECMAScript as 'JavaScript' as the result of a cross-promotional stunt with Sun. Netscape was bought by AOL. AOL merged with Time-Warner. This merger was the largest acquisition in business history. I can't believe you don't know this.

      Sincerely,

      Thinking You Were Born Yesterday, Or Perhaps Last Week At The Earliest

      • Missing context that Slashdot ate:

        This howler stuck out, in particular: "JScript is the Microsoft implementation of the ECMAScript scripting language specification, an open standard. Do not refer to it as 'JavaScript,' which is the corresponding implementation by Time Warner." Huh?

        • I would also say, "Huh?"

          Yes, I'm *quite* aware of the history, thanks very much, and I still say "Huh?", a fish-and-bicycles sort of "Huh?" to be more precise.

          "Ownership of a few leftovers of corporate leftovers long after the fact" != "originate" or "develop" or "maintain".

      • Re:Master/slave (Score:5, Informative)

        by 93 Escort Wagon (326346) on Sunday February 12, 2012 @07:04PM (#39014237)

        Netscape named their implementation of ECMAScript as 'JavaScript' as the result of a cross-promotional stunt with Sun.

        Except I seem to recall JavaScript pre-dated ECMAScript - and the ECMAScript Wikpedia page [wikipedia.org] seems to support my recollection of the timing.

        The naming was certainly a promotional stunt, though.

      • by exomondo (1725132)

        Netscape named their implementation of ECMAScript as 'JavaScript' as the result of a cross-promotional stunt with Sun. Netscape was bought by AOL. AOL merged with Time-Warner. This merger was the largest acquisition in business history. I can't believe you don't know this.

        Maybe he was pointing out that the AOL/Time Warner acquisition happened after Netscape's JavaScript was released?

    • by XiaoMing (1574363)

      Considering it is still utilized in USB specification ( http://en.wikipedia.org/wiki/USB_On-The-Go [wikipedia.org] ), and that Master/Slave annoyances that all of us have lived with from disk (disc? ;) drives have thankfully been obsoleted with SATA, I'd say Author of TFA is doing a fine job of drawing on currently relevant subject matter, rather than trying to relate content in Microsoft's latest style manual to someone who's stuck in the days of IDE.

      • That's a fair criticism, but the prohibition was originally about IDE, and it was pretty widely known when it happened. One should always hesitate and do research before publishing a suggestion that something is absurd or outlandish.
    • Please explain how the wording and research of a the content of a quote is the writers fault?
      • Please explain how the wording and research of a the content of a quote is the writers fault?

        It isn't, but it makes one hell of a fallacious attack :)

    • Master/slave terminology is still in vogue to describe field bus topology in the industrial automation industry. Apparently those old modbus guys didn't get the memo. And Crenshaw Blvd. has yet to be offended by those old engineers.
    • by exomondo (1725132)

      That terminology originally comes from disk drive buses

      He's obviously not disputing that, you're quite clearly missing the point.

    • Re:Master/slave (Score:4, Informative)

      by NoMaster (142776) on Sunday February 12, 2012 @08:42PM (#39014877) Homepage Journal

      That terminology originally comes from disk drive buses

      It's much older than that [historyoftechnology.org].

    • by PPH (736903) on Sunday February 12, 2012 @10:40PM (#39015425)

      Similarly, the relationship between USB peripherals could be described as "master/slave," but these terms could also be considered offensive. (The "Microsoft Manual of Style" says such language is prohibited in "at least one U.S. municipality.")

      Damn! I just finished changing all master/slave references to pimp/bitch. And now they tell me that this won't do either?

      How about top/bottom?

      Domme/sub?

    • Similarly, the relationship between USB peripherals could be described as "master/slave," but these terms could also be considered offensive. (The "Microsoft Manual of Style" says such language is prohibited in "at least one U.S. municipality.")

      Dear Neil McAllister,

      That terminology originally comes from disk drive buses, and the municipality is Los Angeles. Are you really a tech writer?

      Sincerely,

      Suspicious

      Dear Suspicious,

      The first thing I'm going to do is dispense with this pseudo-formal fake letter writin

  • by phonewebcam (446772) on Sunday February 12, 2012 @06:46PM (#39014133) Homepage

    Choose the single leg double-hand overarm for distance.
    Or, if you want maximum impact, and hence noise when the chair lands, go for height: a full seat grab upper thrust is your best option.
    Then there's the full intimidator, often accompanied with shrieks alluding to colorfully burying someone whilst holding it by two legs high above your head - this move requires two full laps of the office before deployment.

  • by DontScotty (978874) on Sunday February 12, 2012 @06:59PM (#39014217) Homepage Journal

    And - people can not avoid or fix mistakes which they do not know about.

    Silence on an issue = consent. So, if MSFT had not mentioned avoiding "'pimp' or 'bitch"; someone raised in an environment where that was ok - (looking at you, teens and young twenty-somethings who grew up saying "That's Gay" when you meant wrong, bad, or odd) may not fully realize the problem with borderline and unacceptable language.

    Example: Error Message = "What a bitch! Just dumped a debug file in my program folder" or in the HELP>ABOUT saying "Hey, if you want additional functionality, allow me to pimp the ENHANCED version @ paymemorecash.local"

    • by bloodhawk (813939) on Sunday February 12, 2012 @07:50PM (#39014569)
      while the derogatory terms etc may seem obvious, there are plenty of less obvious mistakes that people fall into. For instance we used naming conventions on errors in on of our production applications that referred to greek mythology and specifically the underworld. It came as quite a shock when we received official complaints from religious nutcases that said they were offended by our blasphemy. Since then we have had to rewrite a lot of that to use far more boring errors.
      • "came as quite a shock"

        Probably better said than what I wrote. When you are generating something for mass consumption, you have to guard the sensibilities of the most sensitive persons.

        Of course, one could go on their own rebellious way, and have a small but loyal cult following - however I believe most of the code written for programs is destined to be seen by more than the general three-close-friends.

      • by russotto (537200) on Sunday February 12, 2012 @10:40PM (#39015427) Journal

        while the derogatory terms etc may seem obvious, there are plenty of less obvious mistakes that people fall into.

        And sometimes not-mistakes. As some of the executives of a company I once worked for had to explain away (to a female user working for a major customer, naturally) an error box written by an ex-employee by claiming it was simply an unfortunate typo for "count error".

      • by NevarMore (248971)

        Since then we have had to rewrite a lot of that to use far more boring errors.

        Why didn't you rewrite the code to not produce the errors in the first place?

        • by bloodhawk (813939)
          ahhhh I see, so rather than show an error when the WAN link has become unavailable or the remote link to an external organisation that we don't control isn't working or even when a server has failed we should rewrite the code to just... do nothing?
      • Reminds me of a story from way way way back. Supposedly, part of the copy-protection scheme for Lotus 1-2-3 for DOS contained an invisible file named SATAN.666. Again, an invisible file that no one would ever see.

        When PC Week or some other magazine mentioned this in an article, various churches who used the product were quite upset. I believe Lotus sent the complainers new versions of the software with the file removed.

        I know, personally, I had one of those dialog boxes that a user should never see which

    • (looking at you, teens and young twenty-somethings who grew up saying "That's Gay" when you meant wrong, bad, or odd)

      Hey, that's me! I kicked the habit cold-turkey when a gay coworker hired on. I still occasionally have trouble with "retarded", and South Park certainly doesn't make it easier.

  • by Anonymous Coward

    'Occasionally, Microsoft's recommendations verge on the absurd. For example, you might not think it necessary to admonish developers to "not use slang that may be considered profane or derogatory, such as 'pimp' or 'bitch,'" but apparently it is.'

    Spoken like someone who's never written, read, or worked with any kind of code whatsoever. It's not uncommon for comments to contain language others outside the team will find offensive - developers get comfortable, and start writing for each other instead of the world at large. Since MS releases their code to outside parties, they feel the necessity to remind their coders to remember they're not the only ones reading the source.

    Twit.

  • by Anonymous Coward on Sunday February 12, 2012 @07:19PM (#39014351)

    You may be familiar with design patterns [wikipedia.org]. Those in the know sometimes give them nonstandard names, such as:

    • pimp - Define an object that encapsulates how a set of objects interact. Promotes loose coupling by keeping objects from referring to each other explicitly, and it lets you vary their interaction independently.
    • bitch - Attach additional responsibilities to an object dynamically keeping the same interface.
    • pms - Allow an object to alter its behavior when its internal state changes. The object will appear to change its class.
    • company bathroom - Ensure a class has only one instance, and provide a global point of access to it.
    • strapon - Convert the interface of a class into another interface clients expect. An adapter lets classes work together that could not otherwise because of incompatible interfaces.
    • player - Use sharing to support large numbers of similar objects efficiently.
    • dating - Allows concurrent read access to an object, but requires exclusive access for write operations.
    • screw - Represent an operation to be performed on the elements of an object structure.
    • orgy - Combining multiple observers to force properties in different objects to be synchronized or coordinated in some way.
    • "let's not put it on, baby" - Reduce the overhead of acquiring a lock by first testing the locking criterion (the 'lock hint') in an unsafe manner; only if that succeeds does the actual lock proceed. Can be unsafe when implemented in some language/hardware combinations.
    • "I love you" - Manages operations that require both a lock to be acquired and a precondition to be satisfied before the operation can be executed.
    • divorce - Addresses problems with the asynchronous pattern that occur in multithreaded programs
    • alimony - asynchronous interface to resources that must be handled synchronously.
  • by wbr1 (2538558) on Sunday February 12, 2012 @07:28PM (#39014439)

    ...admonish developers to "not use slang that may be considered profane or derogatory, such as 'pimp' or 'bitch,'" but apparently it is.'"

    Microsoft does not want their true relationship with their customers to become widely known.

  • by Osgeld (1900440)

    Back in the design days of the original macintosh they used Do It instead of OK, apparently a guy got frustrated and in anger asked "I'm not a dolt, why is the software calling me a dolt?"

    http://www.folklore.org/StoryView.py?project=Macintosh&story=Do_It.txt&sortOrder=Sort%20by%20Date&detail=medium&search=do%20it [folklore.org]

  • Well, if you were writing software for say... a dog tracker & Information application such as for breeding dogs..

    You probably would not want to use the wording "Pictures of Studs" and "Pictures of Bitches" as a link to the gallery of the dogs' photos... Even if it's legitimate and correct usage!

  • 'Occasionally, Microsoft's recommendations verge on the absurd. For example, you might not think it necessary to admonish developers to "not use slang that may be considered profane or derogatory, such as 'pimp' or 'bitch,'" but apparently it is.'

    IT skews dramatically male, and those men skew dramatically towards the socially inept. Making explicit rules about not using profane or derogatory slang in your UI is completely appropriate.

    • It is not likely 'pimp' would be used; however, my disagreement is not literally those words but that the ones that best convey meaning to the users who actually use the software may not be mainstream. A niche product with a specific demographic may use different metaphors than the mainstream or that of the developer.

  • Hungarian notation is this ingenious little recommendation for naming your variables to describe the expected contents of that variable when the type won't do. So, if you have a std::string field containing a hex version of a GUID, you might name it guidAsHexChars. Microsoft took Hungarian notation literally to mean naming it after the type. So, you've got a lot of redundantly named variables like guidString.

    • by Livius (318358)

      Hungarian notation made sense in the context of its original purpose, which was consistent naming in code that mixed assember and C.

      Of course, it's a horrible brain-damaging handicap everywhere else.

  • by gestalt_n_pepper (991155) on Sunday February 12, 2012 @09:57PM (#39015247)

    1) Software is a conversation. Be polite.

    2) Software is a servant, not an equal or a master. Software is the waiter. Don't put behavior in your software that you wouldn't accept in a restaurant.

    The most aggravating and common user interface fails to avoid are:

    1) Interruptions (e.g. Microsoft dialogs telling you updates have been installed, as if you give a rat's ass, refreshing a window or dialog that doesn't appear to need to be refreshed, being too helpful and hovering like Clippy).

    2) Being ignored (Clicking or typing on screen and watching nothing happen).

    There are, of course, many other transgressions, but most of them can be addressed by thinking through a restaurant example. If the waiter came and rearranged your dishes and silverware in the middle of your meal, you'd be furious. If the OS comes in and rearranges your screen while you're working, taking away your focus, you'll be furious. If the waiter keeps ignoring you or is slow, you get angry. If the OS keeps ignoring you, or gets slow, you get angry.

    There are thousands of things you can do to improve an interface, but miss this stuff and you fail.

    • by Chrisq (894406)

      2) Software is a servant, not an equal or a master.

      Can we talk about this, Dave?

  • They already have one, but it doesn't really go beyond them trying to cram that ribbon bar into everything.

  • I've seen similar things on a FOSS development mailing list. People who program computers by defining algorithms try to program people by doing the same thing. The result is:

    1. Millions of crazy rules that are obvious.
    2. Nobody can keep track of the rules and as a result they get broken a lot leading to flames.
    3. Tons of effort gets diverted towards rule-maintenance and enforcing relatively unimportant rules.
    4. When somebody does something dumb people flock to their defense if it didn't violate the ru

  • by Tastecicles (1153671) on Monday February 13, 2012 @12:47AM (#39016215)

    Clippy: "It looks like you're trying to pimp your presentation. Would you like some help with this?"

    Options: "Yes. Show me how to pimp my document!"
      "No, fuck off you annoying little shit!"
      "If I have to turn you off in the options again I'm gonna bitchslap my laptop!"

  • by Blaskowicz (634489) on Monday February 13, 2012 @09:06AM (#39017937)

    I remember being infuriated by this message, it's meaningless and too casual. It doesn't provide any information as to the cause of the error nor does say "unkown error". It makes me wonder whom is it embarassing for. Me? Mozilla? Firefox itself? Does it mean "we're sorry for you using such crappy software"?

    I wonder about how this message is perceived in company/corporate settings. It's an exemple of bad writing style to me. You've crashed, don't try to be familiar or funny about it.

"How do I love thee? My accumulator overflows."

Working...