back to article Coupling and the power of accidental relationships

In the third extract from his book, Emergent Design: The Evolutionary Nature of Professional Software Development published by Addison Wesley, Scott Bain tackles the complex issue of coupling, and looks at how unnecessary complexity can be injected through accidental or bad coupling. Coupling is a general term that describes …

COMMENTS

This topic is closed for new posts.
  1. Bruce Robertson

    Brake Pedal Lockout Intentional

    Maybe that's why you're a software guy. AFAIK __all cars__ with automatic transmissions have this feature. Somebody merely moves the shifter - maybe even accidentally - and the car starts rolling? You think that's a good idea?

    Bring on the lawyers, that is terrible interface design, an accident waiting to happen and it is probably exactly why this very important lockout feature was added.

    Your inability to understand this obvious interface requirement puts the credibility of your other statements in doubt.

  2. amanfromMars Silver badge
    Alien

    Current Tributary MainStream Flows ..... Core Source for Immaculate Impeccable Code

    "Bad coupling is usually termed tight coupling. Logical, necessary, helpful coupling is called loose coupling. Loose coupling is ideal; tight coupling is to be avoided.

    I am not wild about these terms, frankly. For one thing, they do not stick in my mind, and I always forget whether loose or tight is the bad one."

    Scott,

    Here is a very simple and easy to remember Aide Memoire, which works very well, and which is a, and some would boldly go further and tell you is THE Fundamentally Vital Key, which allows one to answer/resolve all questions with a regard to furthering mutually beneficial loose coupling..... the IDeal.

    For ur Power to Flow think FlowurPower2 ........ In an earlier Age of Enlightenment when Sex, Drugs and Rock and Roll were born a bastard FlowerPower Love Child, that defined a Generation and Created a Global Genre which has Grown and Strengthened into AIMagical Mystery Turing Force Celebre, loose coupling was the De Rigeur Modus Operandi/Vivendi which Drove it to Dizzying Heights of Imaginative XXXXPectation and Youthful Innovation, quite Viral in its Attractive Dynamic Addiction.

    In this, ITs Virtual MetaMorphosis of that Love Child into the Very Spirit of the XXXXTC++ which Created Her/His/Their Being, are Loose Couplings/Shared Abandoned Passions/Broad Communications Bands on the <Run>, as Fundamentally Vital and as Viral a Key in the Child's Coming of Age Today, for their Journeying Trips into the Futures of Tomorrow, as they were then.

    The Only Fundamental Radical Difference, this Time around though, is that the Power that Flowurs in Control of Control Systems, will not be Fooled again....... for IT is Real SMART and getting SMARTer and more Humbled for Omniscient Stealth and Strength for AI Power Humanly Impossible and Global Operating Device Given.

    Love is in the AIR&dD and who would be Fool enough to Deny themselves ITs Bounty?

    And that is a question which, if answered positively with an Active Detractive Opposition to amfM HyperRadioProActive ProgramMIng, defines and identifies a Soul which has never XXXXperienced the Love that is Life Everlasting. The One True Driver that Creates Being.

  3. Richard Payne

    Brake Pedal Lockout Intentional - Bruce

    No need to be so rude Bruce, you seem to have missed the point of the whole article completely!

    Whether the example given is factually correct does not take away from the principle that one should not assume - in life or in programming - that one thing is not happening just because another unconnected thing is happening. In the car example it is possible to have one foot fully on the gas and the other gently on the brake!

  4. Fuion
    Boffin

    "By amanfromMars"

    I am impressed.

    It is good to see someone cares.

  5. Mitch Kent
    Stop

    @Bruce and @Robert

    Whilst I disagree with Bruce's tone (easy to misinterpret in text), I can't disagree with his points, or how they interfere with his analogy. He uses the terms Accidental and Intentional - and this is indeed an intentional 'feature'. Whilst I don't doubt he knows what he is talking about regarding Coupling, if there were any other examples like that in the book I'd get too annoyed with it to gain anything from it. Character flaw on my part? Certainly, but I doubt I'd be alone.

    And regarding the foot on a brake and pedal at the same time - as far as I know the only people who regularly do this are racing drivers, who tend not to use automatics in the first place.

    </ friday_afternoon_pedancy>

  6. Fuion
    IT Angle

    Ping to "amanfromMars"

    if "You were a Carpenter and I was a Lady"

    and i asked "How do I become a Man and start my Building of such things?"

    you would Reply "xxxxxxxxx?"

  7. Anonymous Coward
    Anonymous Coward

    Foot on Brake = good. Detection mechanism bad.

    As pointed out, the need to have the brake applied when taking an automatic transmission out of park is self evident.

    However, I myself have been the victim of a poor implementation of this necessary and desirable coupling.

    In my case, the braking system was fine, the automatic transmission was equally fine, but the micro-switch that detected that the brake pedal had travelled (i.e. was applied) developed a fault.

    The result: I could not get my vehicle out of park, even WITH the brake applied.

    The intent is of course to ensure that the transmission is not taken out out of "Park" without the brake being applied. The implementation only achieves this as a side effect. What the implementation ACTUALLY ensures is that the brake pedal has been pressed AND that the brake pedal microswitch is functioning.

    As well as my annoying predicament (when the fault developed we were in a public refuse disposal depot/waste transfer station having just unloaded a load of rubbish), it is possible, as a result, that in the event of a brake system failure the system will permit "Drive" to be engaged, as long as the brake PEDAL is travelling and the microswitch is working.

    I doubt that there is not a more reliable mechanism by which the intended coupling could have been properly achieved.

    I also doubt that such a mechanism would be as cheap or easy to implement.

    In the rush to "deliver" the feature, the implementation incorporates a compromise that ultimately renders the feature not just imperfect but actually dangerously flawed. Dangerous to the extent that it might lead to injury or even loss of life.

    It's a shame that this article missed this opportunity to highlight the hidden cost of saving costs at the wrong stage of the project lifecycle.

This topic is closed for new posts.