The Software Comparison - Part 4

  • Comments posted to this topic are about the item The Software Comparison - Part 4

  • I do think programming is an engineering discipline. So is database administration. (Backups = changing the oil, that kind of thing.)

    I also don't think software development is mature enough of a discipline to have licensing requirements that make sense.

    It took medicine about 10,000 years, maybe more, to reach a point where it made sense to license practitioners, and even now there are conflicts on that point.

    The real point of licensing requirements is cost to society. Fake doctors are more expensive to society than the cost of certifying and maintaining standards for doctors. That's only recently true, and to a large extent is due to lawsuit issues.

    As was mentioned in the article about comparing doctors to programmers, very few programmers can save a human life, but at the same time, very few programmers can take a human life. Doctors, on the other hand, are in those positions regularly.

    The same could be said for the engineers who design and/or maintain bridges. A bridge collapse can kill hundreds, maybe even thousands (for a big, heavy traffic bridge).

    On the other hand, parents quite often administer basic medicine to their children, and many people are trained to administer first aid in emergency situations. Just about anyone can throw a few planks of wood over a stream on their own property, or build a tree-house.

    I see software engineering going the same way, over time. Big, critical, high-expense, life-saving/threatening software projects will end up going to licensed individuals who are subject to fees, fines, lawsuits, etc., over their failures, and quite probably who are also subject to peer review for things like professional ethics. Small, minor, private software will be anyone who wants to. But before that differentiation can happen, standards will need to evolve further. Right now, standards apply more towards how you write the code, but have very little to do with what the end result is.

    - Gus "GSquared", RSVP, OODA, MAP, NMVP, FAQ, SAT, SQL, DNA, RNA, UOI, IOU, AM, PM, AD, BC, BCE, USA, UN, CF, ROFL, LOL, ETC
    Property of The Thread

    "Nobody knows the age of the human race, but everyone agrees it's old enough to know better." - Anon

  • When all devlopment is performed on one platform and under one set of devleopment software, then you can start licensing, but why. There is enough regulation out there now to drive you crazy. Do we really want to have more? SOX is a great example. I don't know what the next flavor of the day will be, but I am sure it will cause more headaches. Regulation is one thing I hope never hits our world. It is doing enough damage elsewhere.

    Q

    Please take a number. Now serving emergency 1,203,894

  • I can go either way on this one.

    On one hand, some of the worst programmers I've ever known have University Degrees in Computer Sciences. Just looking around the room I can say that the 5 worst programmers out of 120+ people are all University Grads whereas most of the best came out of 1 year certification programs.

    One of the stupidest people I've worked with was a kid fresh out of university who was pushing for the programming to become regulated my the Order of Engineers here in Quebec. The kid would refuse to even talk to anyone who he found out wasn't a university grad, much less accept having his work reviewed by one. (including people with 10+ years experience)

    On the other hand I know a guy who's parents paid $20K for him to take a 1 year certification, and who 2 weeks after graduating as a 'Programmer-Analyst' decided that he didn't have enough space on his 'C' drive so he deleted those useless 'C:\windows' files that he didn't need.

    Clearly some sort of standards are needed and the Engineering Orders are the logical group to oversee them.

    Kevin.

    Eppure si muove.

  • Steve mentions that software might not be able to be tested like some physical items that was engineered.

    When I was a kid, a friend and I saw a bridge under construction and he said, 'when they get the bridge finished, they drive a big truck across it to make sure it doesn't fall down'. Well...not hardly. The engineering is built into the bridge using know information about the strength of materials, and construction methods, and then on top of that, a bit of a safety (fudge?) factor is built in just to account for potential variation on the material and construction and anything else that could cause a problem. They don't really test it at all. Having said that, they may test a few batches of concrete to see if it meets the expected strength, or other standards that have been established. But not everything is like this and there are things that do get tested extensively such as aircraft for instance.

    Like software engineering, they are building things to meet the requirements of their clients and customers. If the customer says make the bridge 2 lanes, then that is what they will build. If while building the new bridge traffic increases along that road and the 2 lane bridge no longer meets the capacity requirements (now they need 4 lanes), who fault was that? Seems obvious (not the bridge builder), but how many times have we seen that in software engineering where we were to blame for the shortcomings of the software when everything was built per the customer's requirements.

    If it was easy, everybody would be doing it!;)

  • Personally I think it is simply a self-serving fraud for software developers to call themselves engineers.

    There is neither the scientific basis for the analysis, design, construction, and testing processes in software development, nor the rigourous management of the practitioners (training, licensing, etc.) to warrant such a lofty title.

    The widespread level of incompetence, ignorance of the few basic, well founded, theoretical principles we do have available for software development practice, and the lack of rigourous training and "certification" for the overwhelming majority of practitioners, makes it laughable to me to hear the term "software engineer".

  • kenambrose (6/5/2008)


    Personally I think it is simply a self-serving fraud for software developers to call themselves engineers.

    There is neither the scientific basis for the analysis, design, construction, and testing processes in software development, nor the rigourous management of the practitioners (training, licensing, etc.) to warrant such a lofty title.

    The widespread level of incompetence, ignorance of the few basic, well founded, theoretical principles we do have available for software development practice, and the lack of rigourous training and "certification" for the overwhelming majority of practitioners, makes it laughable to me to hear the term "software engineer".

    "engineer": noun 1 a person qualified in engineering. 2 a person who maintains or controls an engine or machine. 3 a person who skilfully originates something. (Oxford Dictionaries, per AskOxford.com)

    "engineering": noun the branch of science and technology concerned with the design, building, and use of engines, machines, and structures. (ibid)

    "machine": noun: any mechanical or electrical device that transmits or modifies energy to perform or assist in the performance of human tasks (onelook.com); complex system: a complex system structured so as to accomplish a particular goal (Encarta Online Dictionary)

    "engine": noun: something used to achieve a purpose (onelook.com)

    Thus, actually knowing what the words actually mean, I find your post just as laughable as you find my pretentions. 🙂

    First, "engineer" is not a lofty title. If you think it is, check a dictionary. It isn't. It's a functional title that describes the general function of working with engines (it's a derivation thing), and machines.

    And before you think all engineering is some rigorous study, please understand that the guy who changes the oil in your car is technically an "engineer", in both the original sense and by dictionary definition.

    And before you think that all software design is bereft of rigorous study, methodology, standards, predictability, and the rigors of a mathematical and scientific discipline, I recommend just trying to read almost any ANSI standards document. The ones for SQL would be pertinent to this page, but most any of them will do.

    Yes, a lot of software engineers are sloppy about their work. Very true. But it's also true that you should get a good inspection of the house you want to buy, because the engineers who designed and planned it, and the technicians who built it and wired and plumbed it, might have been seriously incompetent.

    - Gus "GSquared", RSVP, OODA, MAP, NMVP, FAQ, SAT, SQL, DNA, RNA, UOI, IOU, AM, PM, AD, BC, BCE, USA, UN, CF, ROFL, LOL, ETC
    Property of The Thread

    "Nobody knows the age of the human race, but everyone agrees it's old enough to know better." - Anon

  • In my opinion, the definition you quote is certainly not the common interpretation of the term and definitely represents a "dumbing down" of the generally accepted interpretation.

    But we're all allowed lee-way in the use and interpretation of language...

    Now I'll go and engineer that dog house I was planning to construct in the back yard this weekend. 🙂

    Ken

  • It is an interesting comparison. It is true that the programming world has a lot of wannabes, I probably fit in there somewhere, but many of the techniques used in design and implementation are the same.

    There are miraculous feats of engineering in the world,; however that doesn't make all engineer Da Vinci. Boys and Girls can you say Dilbert? Now try SNAFU. I associate these with engineers as much as Da Vinci.

    Q

    Please take a number. Now serving emergency 1,203,894

  • Whatever ... just keep the damn government out of it 🙂

  • Which damn government?

    ---------------------------------------------------------
    How best to post your question[/url]
    How to post performance problems[/url]
    Tally Table:What it is and how it replaces a loop[/url]

    "stewsterl 80804 (10/16/2009)I guess when you stop and try to understand the solution provided you not only learn, but save yourself some headaches when you need to make any slight changes."

  • kenambrose (6/5/2008)


    In my opinion, the definition you quote is certainly not the common interpretation of the term and definitely represents a "dumbing down" of the generally accepted interpretation.

    But we're all allowed lee-way in the use and interpretation of language...

    Now I'll go and engineer that dog house I was planning to construct in the back yard this weekend. 🙂

    Ken

    Have you surveyed that in any meaningful sense? "Certainly not the common interpretation" is pretty much saying that none of the dictionary staff are doing their jobs. The standard for dictionaries is, the most common definition comes first, and that's the one I quoted.

    Don't claim a common opinion unless you've actually surveyed it. Go ahead and state it's not the definition you yourself think of. That's fine. But claiming commonality without testing for it is unscientific.

    - Gus "GSquared", RSVP, OODA, MAP, NMVP, FAQ, SAT, SQL, DNA, RNA, UOI, IOU, AM, PM, AD, BC, BCE, USA, UN, CF, ROFL, LOL, ETC
    Property of The Thread

    "Nobody knows the age of the human race, but everyone agrees it's old enough to know better." - Anon

  • True database and programming certification tests serve mostly to promote one vendor product over another. On the other hand, the Project Management PMP certification is truely vendor-less (if you don't consider the Project Management Insitute a vendor - it is not but can sometimes seem like one) and is the most "required" certification that is equivalent to a possessing a PM license. Also, salaries of PMP certified project managers routinely far outstrip those of other software professionals (certified/certifiable or not).

    One last time, the overall subject of your four articles and their analogies has been Project Management whether you recognize it or not!

    Ron K.

    "Any fool can write code that a computer can understand. Good programmers write code that humans can understand." -- Martin Fowler

  • Ron, a good point. Project Management has a lot to do with things in all of these professions.

    Not sure I'd call myself an engineer. Most days as a DBA I felt like a Data Janitor.

  • Great series Steve! And great comments all!

    My degree is in Electronics Engineering Technology. In my former career I designed, constructed, delivered, installed, and programmed electrical control systems for manufacturing machinery. In addition to the degree in EET, I was a certified Journeyman and Master Electrician in the Commonwealth of Virginia. I'm not trying to brag, I am trying to baseline this statement: I consider myself an engineer.

    I never entered the Professional Engineer certification process. If memory serves, it takes at least six years (in Virginia) depending on whether you hold a degree in engineering or are relying solely on experience. I believe the process takes ten years if you're going the experience route. My understanding is you sign on with a licensed PE and they supervise your work for that time. I also believe they are required to sign off on your experience before you can take the battery of tests required to obtain the license.

    Becoming a Journeyman electrician takes less time (four years). Once a Journeyman, you can sit for the Master electrician exams after a year as a Journeyman and reference recommendations from three current Master electricians who must vouch for your experience.

    I also achieved MCSD certification before .Net came along. Certifications don't mean much to some, so I'll add that I single-handedly wrote one of the first web-based manufacturing execution systems (called Plant-Wide Webs).

    Tying all this to whether software development is an engineering discipline; I have to say "It Depends" (quoting Andy Warren). If an engineer is doing the coding, I think odds are favorable you will have a well-engineered project. If not, there's a chance you will still get a well-engineered solution.

    I've met lousy PE's and great ones; lousy software developers / designers / architects and great ones; lousy DBA's and database developers and great ones. I haven't found education or certification a common thread or reliable litmus test. In other words, it doesn't matter (in my 33 or so years puttering around the business).

    In my opinion, software development - be it application or database (or both) - is an engineering discipline. But it's unlike any engineering discipline before it because we have not agreed on our physics. Other engineering disciplines are extensions and specialized applications of physics. The attempts to apply measurement to our industry have not been well or widely accepted outside marketing literature. Perhaps the reason is they don't reflect the things that truly drive customer loyalty, satisfaction, and ultimately sales - things like user experience.

    I'm working on this in database development by applying principles of measurement and instrumentation to a couple disciplines. I've written more about ETL Instrumentation than anything else at this point. I see this as an early step towards codifying a discipline as engineering. Maybe I'm all wet - it has happened before!

    Ok, I've rambled enough.

    :{> Andy

    Andy Leonard, Chief Data Engineer, Enterprise Data & Analytics

Viewing 15 posts - 1 through 15 (of 28 total)

You must be logged in to reply to this topic. Login to reply