in reply to Why, not How

I feel that much programming should be turned into a real "engineering" discipline, requiring a license that ensures that you got an education from an accredited institution, keep up your education, and take professional responsibility for the code that you produce.

Then when your boss tries to apply market pressures to you, you can honestly say "Sorry, I can't let this product be released because it would be unethical and I could lose my license."

I'm not saying that coding be illegal without a license, but that many or perhaps all commercial products require at least supervision and approval of a licensed coder before money can be charged for them.

But this will never happen. A good alternative would be to have a voluntary system where you get a "Good Programming Seal of Approval" on software that meets some strict standards. Then many big groups will require this seal on important code such as the flight controls of commercial jet liners and things can snow-ball from there.

A common response when I propose this is that the cost and time of producing software would skyrocket and destroy the economy.

My response to that is that in my decade of professional software development, I've spent more time fixing problems caused by other peoples' code than I have writing my own code. If the code I got from other companies was of reasonable quality, I'd have much more time and could spend that making my software of reasonable quality as well.

So I think this idea would produce an initial slow down but in the end would make the software industry more productive (as well as making software suck a lot less).

Last week I mentioned that to my new manager and he said that this is actually proposed in a well respected book on software development. I'll throw the title in here when I find it.

        - tye (but my friends call me "Tye")

Replies are listed 'Best First'.
(jptxs) they know they're cheating RE: Why, not how
by jptxs (Curate) on Dec 14, 2000 at 04:26 UTC

    I go from shop to shop to shop and I have seen in many of the manufacturing and engineering oriented shops that the management is well aware of how shoddy everything is on the IT side. The people who are used to the disciplines of engineering professions know that software - and hardware for that matter - should be regulated in the same ways, but also realise that until it is it's open season. Imagine having the ability to produce barely functioning product and have only caviat emptor to answer to? It's free money. No one is going to walk away from it yet.

    The few instances where certian standards are required (like Oracle requires a trained Oracle Parallel Server professional to be attached to your site if you expect gold support for OPS), the professionals are just as bad as the managers. These people know they have companies over a barrel. There is a shortage of people who ahve the cert.'s and a need to have them there no matter what the cost. Again, free money.

    The only resolve will be time and failure. As more and more people of the Gen X move up the socio-economic tree and more politicians become aware of technology issues as platform - which will come with the further penetration of technology into daily life of non-tech professionals - there will be demands for quality above quantity - and above new versions. Only then will we have a way to start regulating in some constructive way.

    I think a VERY good question is what would such regulation do to the Open Source movement? Who's going to stake their certification on patches they didn't write? Interesting...

    "A man's maturity -- consists in having found again the seriousness on +e had as a child, at play." --Nietzsch +e
Re: (tye)Re: Why, not How
by coreolyn (Parson) on Dec 14, 2000 at 02:55 UTC

    Ya like the MSCE means something. Or how bout BS degree's that means they studied on outdated technology. I guess I just have a real deep rejection of this approach. If computers had been around before me and this type of system was in place, I may never have been able to qualify to work in this field. Yet more often then not, I find I'm helping those who supposedly have expirience and education in this business. I also have serious concerns over who would have the authority to decide when to pull a license.

    Personally I really like some of the T-Shits they were selling in Monterey that simply said "Got Source?".

    When push comes to shove source code speaks louder than credentials.


      No, an MSCE doesn't mean anything. It is a marketing gimmick. Nor is a BS much like a license.

      And, again, I'm not saying you should need a license in order to work.

      And I'm not even saying that licensed programmers will be the best programmers. I'm saying that they will be required to be trained on the issues that always get pushed aside in software development like risk management and security. And they will be held accountable. There will always be very talented programmers who produce great code, with or without a license.

      As to pulling a license, that would be handled as it has been handled in other engineering areas for years. It isn't a simple thing.

              - tye (but my friends call me "Tye")

        In the words of the immortal Emily Latella, "Well then, that's different!":)

        I'm still dubious (pathologically paranoid), but I guess I need to leave the mind open a little bit more to the concept at least if it comes accross my path.

Re: (tye)Re: Why, not How
by royalanjr (Chaplain) on Dec 14, 2000 at 02:34 UTC
    I will agree that there is a lot of software out there with all kinds of things wrong. But I do not think that you should need a license to be a paid programmer.

    Say I got hired as a Perl programmer tomorrow.
    I would be unemployed in two weeks, tops.


    I simply am not that good yet.
    That would become obvious, and I would be (hopefully politely) asked to leave.

    If management has their eyes open, and cares, then only programmers that knew what they were doing would be hired. But as we all know, management is often blind and/or doesn't care.

    Roy Alan


      Should you need a licence to design a freeway bridge? An aeroplane? A skyscraper? A real-time train switching control system? Pacemaker firmware? Insulin pump?

      I am a licenced professional engineer (yea, whoop dee doo, but I have had some experience with this) and everywhere I've worked in my field (i.e. not software!) there have been many unlicenced staff working under the supervision of a licenced engineer. Most of the time this is required by law, but sometimes it is simply required by the client, who wants some assurance of quality (and no, ISO 9000 ain't gonna give you a better bridge).

      Granted, the safety argument is a no-brainer, so let's just consider costs. A poorly designed road may be safe enough, but it might not last very long, meaning higher maintenance costs and capital replacement costs, both of which can be estimated fairly accurately. What does a bug in a banking system cost? An inventory control system? Is it because these are harder to quantify (that is if anyone wants them quantified which I doubt) that few seem to care?

      Like it or not, I think software will become regulated as a profession sooner rather than later, and it's up to all you who think of yourself as software professionals to see to it that standards are set, met and kept. Just as a clarification, licencing doesn't have to mean Big Brother, as most professions are self-regulated under powers granted by the government, but not controlled by government. Sure it takes away the sort of microchip cowboy image that many enjoy, but that can be reserved for your time off. When society is paying the tab, it eventually learns to get what it wants.


      I'd like to be able to assign to an luser

      But I do not think that you should need a license to be a paid programmer.

      Neither do I. I think that most companies need to be required to hire at least one licensed programmer. Most of the programmers will continue to be unlicensed and continue to be paid but will be supervised by licensed programmers.

      Of course, there are no licensed programmers yet so even that can't happen overnight. I'd just like to see things get started in that direction because I'm sick of fixing other companies' code.

              - tye (but my friends call me "Tye")
        One problem (that the original article points out) is that the term Software is very vague. Consider the following things: Web programming, database work, embedded systems, device drivers, consumer applications, video games, expert systems - one could easily go on. It's clear that these are very different skills, all lumped together.

        The requirements for responsible code are very different for Yahoo Shopping and Ultima Online and Word 2020. I might have to live with periodic bugs and outages in my free online Fantasy Baseball team, but not in my pacemaker. How do you even begin to come up with licensing programs that deal with the diversity of the software world?

        What about the open source world? Lots of projects have no central authority, and no real place for a 'licensed programmer'. Not to mention being hideously international. How could you begin to enforce any of this?

        And practically, it'd throw a monkey wrench into the economy of small companies. Many commercial projects are just two or three people. Licensed Programmers may make sense for big companies, but for startups, they could drive up costs and create artificial barriers to entry. It's hard enough getting a software company off the ground as is.

        There may be virtues to having the concept of a programming license, but the practical realities are very difficult to solve, and I think that it's far from inevitable. Companies don't want it, programmers don't want it, and consumers don't want it - at least, not in large numbers yet.

        -- Kirby

        Tuxtops: Laptops with Linux!

Re: (tye)Re: Why, not How
by gharris (Beadle) on Dec 14, 2000 at 03:44 UTC
    I like the idea of the license if for no other reason than to be able to tell my boss:
    "Sorry, I can't let this product be released because it would be unethical and I could lose my license."
    On a more serious note, I think if there was some 'independent' organization, like "National Assocation of Computer Scientists and Software Engineers" or something along those lines that could manage the whole licensing thing like similar organizations do in all other aspects (M.E., electricians, etc..) it could help to avoid the MSCE phenomenon and maintain expectations beyond a piece of paper.


Re: (tye)Re: Why, not How
by zzspectrez (Hermit) on Dec 14, 2000 at 07:53 UTC

    Having a liscense really doesnt mean anything. I work in the medical field as a radiographer, taking 'xrays'. To get a job doing this in California requires a state license and usually also national license. To keep your license you are required to take so many educational units a year. However.. In my experience quite a few of the licensed profesionals either couldnt pass the test if they had to take them today without lots of reviewing or do not bother to follow some of the basic ideas that were the reason for implementing the license in the first place.

    Realisticly, threat of loosing your license because of being unethical or because of poor job performance would not be effective. Unless of course were talking negligence resulting in something drastic. Like... hum.. Giving buggy code to a governement agency resulting in massive data loss! Otherwise nothing is going to happen.. Who is going to inforce it?! Think about it, even with lawsuits and deaths there are still doctors practicing medicine who shouldnt..

    Do you really think it would help enusre better code??? Better education, yes... But just because you are dedicated enough to go through school or study for licensing tests doesnt mean you are a good programer. It will not bring responsibility for the code produced.

    The responsibilty for code produced is shared between the programers who write the code and the people or business's that release and sell that code.

    Thats my 2 cents.

    In theory it is a good idea... In reality, it wouldnt do any good I fear.