in reply to Re^5: Some thoughts around the "is Perl code maintainable" discussion
in thread Some thoughts around the "is Perl code maintainable" discussion

Woe! Now there's an interesting sidetrack. If we had an OT section, I'd be happy to follow you down it for as far as we could go before hitting the inevitable deadend. And happier still to see it, thereafter, dissolve into the bit bucket.

For the sake of this discussion, let's restrict the definition of work as those activities we pursue in order to keep a roof over our heads and food in our bellies. Whether you have fun whilst doing it or not.

There is, and has to be in the majority of cases, a distinction between what we do at our own instigation, to our own criteria, and for our own pleasure. And that which we do for others, for payment, whether we enjoy it or not. The difference is consequences.

If a weekend truck racer forgets himself and start charging around our motorways and city streets at the same speeds and with the same attitudes and goals, as he employs for fun on the weekends, the consequences are likely to be as horrific as they are inevitable.

Code posted on PM, whether in a obfu or code section, or as a demonstration of syntax or algorithm in response to a SoPW, has none of the responsibilities or consequences of code written for $work. If an obfu takes parameters and fails spectacularly if those entered are out of range. Boo hoo. If a genetics algorithm fails to check its inputs, runs for 12 hours before before producing garbage, you're going to have a frustrated and angry genetisist, but mostly no great harm done.

If you fail to verify the parameters to a drug dispensor, someone could die, but writing obfus with the same care and consideration as you would take for the drug dispenser is pointless. Writing every piece of code you post as an answer to a SoPW as if it might be used in the control of a nuclear powerstation is equally pointless.

The responsibility for any code has to lie with the persons and organisations deploying that code, not those constructing it. Whether salaried or commissioned, individual programmers have a responsibility "best endevours" to those paying them, but the final responsibilities (for testing and sign-off), lie with those whom deploy that code for profit. And outside of government organisations, all commercial code is ultimately produced to create profit. If an individual programmer screws up, regardless of how badly, predictably, or with what consequences, they made a mistake. If the company or organisation deploys that screwed up code into the field, they have shirked their responsibilities for putting appropriate testing, QA, and review procedures in place to ensure safety commensurate with the application of the code.

If a fitter on the production line of your local multinational car company over-tightens a brake nipple and it subsequently fails under pressure, he made a mistake. If the failure under pressure occurs as the vehicle approches a busy intersection, because no system integrity pressure test was performed, the company is at fault, not the fitter.

If the test was performed and it still fails in the field? Once is force majeure. Once in 100,000 vehilcles is probably force majeure. Three times is probably liable.


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.
"Too many [] have been sedated by an oppressive environment of political correctness and risk aversion."
  • Comment on Re^6: Some thoughts around the "is Perl code maintainable" discussion

Replies are listed 'Best First'.
Re^7: Some thoughts around the "is Perl code maintainable" discussion
by shmem (Chancellor) on Aug 12, 2007 at 16:43 UTC
    I agree with you that thinking about the consequences of one's deeds is crucial. But...
    For the sake of this discussion, let's restrict the definition of work as those activities we pursue in order to keep a roof over our heads and food in our bellies. Whether you have fun whilst doing it or not.

    There is, and has to be in the majority of cases, a distinction between what we do at our own instigation, to our own criteria, and for our own pleasure. And that which we do for others, for payment, whether we enjoy it or not. The difference is consequences.

    ...I see a similar mixup of concepts here as there is in Perl, when it comes to packages, name spaces, symbol tables and classes :) Work can be done - and very responsible and important work - in one's so-called "free time". So, real work does stem from a necessity, but not necessarily the necessity to fill one's belly, i.e. to satisfy basic needs. It might be the other way round: doing necessary things grants the revenue needed to pay the monthly rent.

    Today, there's a tight coupling of subsistence and income, of income and work, of work and making money, of making money and business success - and these are acquiesced almost as laws of physics. But then there are lots of businesses whose primary goal is not making money, but satisfying some crucial need of society - think Red Cross. Although moving money and book keeping is necessary for those businesses, they do big work for others not for payment, but because it's necessary to get that work done.

    "What we do at our own instigation, to our own criteria, and for our own pleasure" has impact on the society as a whole, and we are responsible for those deeds also, not only for what we craft under another flag than our own.

    My work consists in not small amount of research, learning and trying out things, all of which don't give my enterprise immediate revenue; but although this doing benefits my knowledge alone at first sight, it is necessary in the company's context also - even hanging around at PerlMonks. I tend to blur the lines of "business work" and "private work", because I don't care what hat I'm wearing whilst doing what is fun for me to do. Of course my work also comprises tasks that I don't like - but that's no different between tasks at home or at the office.

    I'm not sure about the ostensible relations of the aformentioned coupling wrt to cause and effect - I do what I can and accept getting paid for it... I'm more comfortable thinking that I get paid because I work and am having fun with it, rather than that I work because I have to get paid. Freedom often is to be free from wrong perceptions. Still waay to go... ;-)

    --shmem

    _($_=" "x(1<<5)."?\n".q·/)Oo.  G°\        /
                                  /\_¯/(q    /
    ----------------------------  \__(m.====·.(_("always off the crowd"))."·
    ");sub _{s./.($e="'Itrs `mnsgdq Gdbj O`qkdq")=~y/"-y/#-z/;$e.e && print}