Beefy Boxes and Bandwidth Generously Provided by pair Networks
Your skill will accomplish
what the force of many cannot
 
PerlMonks  

Re: The dangers of perfection, and why you should stick with good enough

by Bloodrage (Monk)
on Mar 11, 2008 at 22:04 UTC ( [id://673633]=note: print w/replies, xml ) Need Help??


in reply to The dangers of perfection, and why you should stick with good enough

The OP seems to be on the edge of a particular issue that really rips my nighty, that is non-compliance. Some work environments have standards, and some of these are loose ad-hoc in-house standards that they've worked out themselves over the years and pretty much held by oral tradition, others are terribly strict standards imposed by outside agencies and take up several dozen shelf-inches of documentation, and of course there are a vast array of in-betweens.

There is a tendency by some (usually those new to the environment and have 'more experience' in the field of work, just not with the standard) who pull the "It works. Bugger the standard. I'm done" routine, and often because it works, and saves time, this is usually ignored. This seems to be fine in the short term. Then change happens; staff turn over, something breaks, a system begins to behave strangely, you're audited by your standards compliance agency, or worst of all you're audited by the government agency who makes you work to that standard.

This is where non-compliance blows out whatever perceived savings that the short-term thinking that "It's good enough dammit" argument leads to. Several hundred hours of unchargable work1 to patch up whatever hole is in your project. Often workplace standards are there for a reason, sometimes it's for a 1 in a million risk, but sometimes this is unacceptable. The thing to consider here is that the properly compliant work barely gets a second glance, and auditors are canny bastards who instinctively home in on the project with the most spectacular compliance issues.

I suppose what I'm describing is the other side of this argument: When is 'good enough' not good enough. I mean, is 'it works' good enough for Air Traffic Control, Medical Systems, Utility Networks, Food and Drug Testing, Your Bank's Web site, or Space Flight Control Systems?


1In a rather special incident our Director had to counter sign several hundred data record documents (and initial and date the corrections) and have them countersigned by our QA, the clients QA, and the government representative, because a particular employee refused to sign them as a waste of time. It had to be the Director because all the other members of that project were no longer employed by the company. Not a programming example, but it has analogies. In this case failure to patch the problem would have lead to our company and all it's employees open to charges of fraud. Nice.

  • Comment on Re: The dangers of perfection, and why you should stick with good enough

Replies are listed 'Best First'.
Re^2: The dangers of perfection, and why you should stick with good enough
by BrowserUk (Patriarch) on Mar 12, 2008 at 01:29 UTC

    Seems to me that there is a big difference between statutory requirement where risk to life and limb is involved, and a set of coding standards (preferences). Non-compliance with a statutory requirement could never be deemed "good enough".

    I mean, is 'it works' good enough for ...

    ...a list of mission critical software that represents maybe 2% of the software written. Even then, if your definition of "it works" is: meets all the projects requirements, which by definition includes any statutory requirements applicable, then yes. It works is good enough.

    A piece of (say) game software is unlikely to result in death or injury, if it occasionally accumulates enough floating point errors to cause a game piece spacecraft to attempt a high speed rendezvous with the moon. Space flight control software could. Failure to destinguish between the quality requirements of the two could be disasterous for the company developing the software either way.


    Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
    "Science is about questioning the status quo. Questioning authority".
    In the absence of evidence, opinion is indistinguishable from prejudice.

      A piece of (say) game software is unlikely to result in death or injury

      Actually I have discussed this specific scenario, my flat mate (A flat is a house in New Zealand sublet by a bunch of students) wrote flight sim software for a company that ran high-end arcade games. Coding standards were... loose (in that they were what the lead programmer said they were). The simulators were a cross between you standard in-cockpit arcade cabinet and a tumble dryer that used gravity and rotation to emulate the sensation of zooming around in space. The part of this project that caused a lot of contention between the Boss ("Get it done now cheap"), the Engineer ("ye canne break the laws of physics"), and the programmer ("you want what to do what now?") was; if the computer, which controlled everything, crashed, how could you program it (i.e. the crashed computer) to enter a safe mode that would stop the simulator and open the doors? The Boss insisted that the computer could do it, just write the code dammit. The programmer said it couldn't as that's an aspect of the Halting Problem and you needed a second computer. The engineer said they needed an independent redundant system with a big red button.

      Eventually a micro-controller was installed, but the whole argument was referred to as the discussion about "Doors that shouldn't eat people". In this case the required standard is obvious, often when working to standards (or statutory requirements) the reasons can be obscured.


      ahh no! my non sequitur powers!

      I think the reason the OP's comments got me riled up is that it's the 'what does it matter when it saves time and money' kind of attitude1 that can make working in these 2% situations very difficult. I think what I really wanted to communicate is that you can not always assume 'it works' is good enough. If your working environment has standards set higher than that, you're quite likely to be contracted to work to them, not under them, and you are obliged to do so.

      I suspect it's residual bitterness from having to spend late nights at work double-checking data sheets against data inputs (that have already been checked twice yet still have 5% error rates). Eventually I did most of the key-punch work myself because I had the fastest data entry speed with the lowest error rate. People look at you like you're doing voodoo when you can do data entry on the keypad without using the mouse to navigate cells or look at the screen.


      1 I'm not belittling his opinion. In situations where you've got to ship the product on a deadline, you've got to do what you've got to do and it is the right way to be thinking. I'm just putting up the counter PoV.

        People look at you like you're doing voodoo when you can do data entry on the keypad without using the mouse to navigate cells or look at the screen.

        That's why I decided a long time ago that for any project I'm involved in that has a team of more than 5 programmers, if I have any influence, I'm going to strive to employ an administrative secretary. Key skills: touch typing, WP, shreadsheets, filing and no ability to take no for an answer.

        There job is to off load as much of the non-programming work from the programmers as possible. Including typing up docs, maintaining timesheets, chasing deliverables, maintaining the project plan. etc. They cost about 1/3rd a decent programmer, but are about 5 times as productive in their areas of resposibility.

        I once saw a programmer spend 3 days working up a program to collect and print his timesheets. And what happened to his painstakingly formatted printouts? They went up one floor where they were entered into a MIS system in about 30 seconds flat and then binned.

        And have you ever watched a programmer use a WP program? They'll never finish that 3 page progress report until it has a title page, a TOC, and fully inverted index, a figures list and 2 other appendices. And until they've explored every obscure feature available. A good secretary will take a handwritten or flat text file and have it typed, spell checked, grammer corrected, formatted and printed before your average programmer has decided what naming convention to use for the file and where in his directory structure it should live.

        Admin. secs., tech. writers and DBAs. Worth their weight to the project bottom line.


        Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
        "Science is about questioning the status quo. Questioning authority".
        In the absence of evidence, opinion is indistinguishable from prejudice.
        I think what I really wanted to communicate is that you can not always assume 'it works' is good enough.

        If it doesn't work, then it is broken, which is the opposite of perfect. Thus, it is not good enough, since it must not be broken. Making the call that something is broken is tough though, and still subjective. But sometimes it has to be made.

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://673633]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others sharing their wisdom with the Monastery: (6)
As of 2024-04-26 09:38 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found