Microspeak: The forcing function

Date:May 23, 2007 / year-entry #183
Tags:microspeak;other
Orig Link:https://blogs.msdn.microsoft.com/oldnewthing/20070523-00/?p=26733
Comments:    12
Summary:At Microsoft, you'll hear the phrase "forcing function" and it won't be in reference to differential equations or to user interface design. Rather, it means a set of circumstances that forces a decision to be made or which forces an action to be taken that previously had no hard deadline. Example: "The impending Y2K threat...

At Microsoft, you'll hear the phrase "forcing function" and it won't be in reference to differential equations or to user interface design. Rather, it means a set of circumstances that forces a decision to be made or which forces an action to be taken that previously had no hard deadline.

Example: "The impending Y2K threat served as a forcing function for many companies to upgrade their hardware."


Comments (12)
  1. Mark Wilden says:

    As opposed to "The impending Y2K threat forced many companies to upgrade their hardware."

    Yeah, "forcing function" is much better.

    ///ark

  2. Ray Trent says:

    You have to remember you’re dealing with geeks here. Saying that y2k “forced” companies to upgrade their hardware would be inaccurate. And it would be inefficient to constantly say “a situation that tends to apply a strong force in a particular direction”.

    Oddly, though, the very reference that Raymond gives as a counter-example defines “forcing function” in a way completely consistent with the MS usage:

    …Forcing functions need not involve device design. For instance, one of the first forcing functions identified in health care is the removal of concentrated potassium from general hospital wards. This action is intended to prevent the inadvertent preparation of intravenous solutions with concentrated potassium, an error that has produced small but consistent numbers of deaths for many years.

    [That quotation is another example of “forcing function” as “intentional obstacle to prevent accidental use”. The MS usage is “situation that forces a decision to be made”. I don’t see how they are the same. -Raymond]
  3. njkayaker says:

    To Ray:

    If "force" is inaccurate, then "impetus" is what you want (instead of the 13 word phrase).

    I think the use of "forcing function" in the potassium case is weak.

    http://en.wikipedia.org/wiki/Forcing_function

  4. Mikkin says:

    I suppose such malapropos technobabble is a forcing function intended to prevent accidental comprehension. Of course, the conventional phrase "forced the issue" needs some form of nounification to be compatible with an object oriented framework.

  5. AndyAsh says:

    On hearing this, I’ve decided that I’m going to start using a new phrase. The sliding function.

    You guessed it, it that set of circumstances where you just have to let things slide……

  6. Ray Trent says:

    I didn’t say it was the same thing, just that it was consistent.

    I would say that the extension of the metaphor from "intentional obstacle that indirectly forces a correct choice" to "unintentional obstacle that has the same indirect forcing effect as though it were intentional" is a typical generalization that people, especially geeks, often make. This is a common event that causes language to change.

    The y2k bug didn’t directly force (or even tend to cause) people to upgrade their hardware, it was the unknown cost of fixing the potential bug vs. upgrading in order to be able to use new software that was known not to have the bug that caused people to upgrade their hardware.

    The user-interface usage of this term is itself almost certainly derived via geek-metaphor-extension from the meaning in diffy-q’s, and that derivation is *far* more of a stretch than this one.

  7. Geek says:

    A situation that persuades Ray Trent to comment is a driving function.

  8. Ry Jones says:

    It’s poor form to call someone by a name other than they call themselves. You may call me Lawrence or Larry, but I go by Ry.

    Likewise, Raymond addresses himself as Raymond. Calling him Ray is impolite.

  9. Ray Trent says:

    I’ll agree that it’s malapropos techobabble, but is there *anyone* reading this blog that didn’t understand *exactly* what the example sentence was trying to communicate? Please turn in your geek badge on your way out.

    Getting on a geek’s case for using technobabble, especially when it’s obviously intended as at least slightly humorous, is about as useful as complaining that doctors say “idiopathic” when they mean “I have no idea what causes that”. It’s just in the nature of the beast.

    [Well, yeah, but that’s the point of a sample sentence: To make the meaning obvious from context. In real life, you have to deal with stuff like this bullet item from an actual document: “Forcing function for communication between disciplines.” -Raymond]
  10. Stuart says:

    This usage makes me think of the concept of "forcing thunks" in languages that support delayed evaluation. A delayed computation sits around until its value is needed, at which point the thunk is "forced" and the computation is actually performed.

    It’s an interesting phrase, anyhow.

  11. j-dot says:

    For your amusement:

    The "forcing function" in german is "Treiber". "Treiber" is also used as translation for "driver"(software).

  12. Fizzz says:

    While "forcing function" is certainly microspeak, I find that I like it as it’s clear to everyone in the organization what the meaning is.

    Sure, sometimes I too would love my peers to have reasonable writing skills however I’ll settle for clear message with lingo than incomprehensible message well written.

    That said, this trait might be unique to this expression.

Comments are closed.


*DISCLAIMER: I DO NOT OWN THIS CONTENT. If you are the owner and would like it removed, please contact me. The content herein is an archived reproduction of entries from Raymond Chen's "Old New Thing" Blog (most recent link is here). It may have slight formatting modifications for consistency and to improve readability.

WHY DID I DUPLICATE THIS CONTENT HERE? Let me first say this site has never had anything to sell and has never shown ads of any kind. I have nothing monetarily to gain by duplicating content here. Because I had made my own local copy of this content throughout the years, for ease of using tools like grep, I decided to put it online after I discovered some of the original content previously and publicly available, had disappeared approximately early to mid 2019. At the same time, I present the content in an easily accessible theme-agnostic way.

The information provided by Raymond's blog is, for all practical purposes, more authoritative on Windows Development than Microsoft's own MSDN documentation and should be considered supplemental reading to that documentation. The wealth of missing details provided by this blog that Microsoft could not or did not document about Windows over the years is vital enough, many would agree an online "backup" of these details is a necessary endeavor. Specifics include:

<-- Back to Old New Thing Archive Index