|
I've had numerous different job titles over the years: junior programmer, technical writer, programmer, software engineer, senior engineer. I call myself a computer engineer, one because that's what my B.S. degree was in and two because my experience is largely in process control software.
Call yourself the Grand Exalted Poobah of Software Architecture if you want. The proof is in the value rendered by the work you do.
Software Zen: delete this;
|
|
|
|
|
I disgree; it's fraud.
"Before entering on an understanding, I have meditated for a long time, and have foreseen what might happen. It is not genius which reveals to me suddenly, secretly, what I have to say or to do in a circumstance unexpected by other people; it is reflection, it is meditation." - Napoleon I
|
|
|
|
|
Perhaps.
I just googled the definition of 'engineer'
"a person who designs, builds, or maintains engines, machines, or public works."
So apparently no one that works in software or even computer hardware, not for any reason, should be allowed to use the title of 'engineer'.
|
|
|
|
|
It's just too complicated.
anyway...
PROGRAMMERS OF THE WORLD UNITE !!
GIVE US BYTES OR GIVE US DEATH !!!
LONG LIVE THE MASTER CONTROL PROGRAM !!
CI/CD = Continuous Impediment/Continuous Despair
|
|
|
|
|
Proper certified engineering jobs already have all that. (except the retirement funds thingies)
CI/CD = Continuous Impediment/Continuous Despair
|
|
|
|
|
In the (theoretical*) case of a software glitch causing a disaster, why is it the programmer's fault? Why not the system analyst who specified what the code should do? Why not the tester who signed off the tests, or maybe the test designer? Why is it not the client's responsibility to independently verify what the programmer did, before putting the code into the "real world"? What if the programmer coded the software correctly, but a compiler bug (they do exist!) meant the outcome was not what the programmer wrote? And as Mike Hankey implies, what if the client / manager / project leader didn't allow sufficient time for design, coding and testing?
I seriously doubt that any developer of safety critical apps would be willing to take on the "responsibility" for their systems on the basis of being a member of a professional organisation. At the very least, if there is a risk of a developer being held personally responsible, then they need to take out professional indemnity insurance. Such insurance *might* be cheaper if the individual is a member of a recognised body, but that's only likely if the organisation does its own verification of the developer's abilities and competence. Having done so, and affirmed that the developer never makes mistakes, they too would carry part of the liability.
In short the whole thing is too vague, too complex, and too open to litigation.
In the UK there is an organisation for professional freelancers / consultants, the (clumsily-named) Association of Independent Professionals and the Self Employed IPSE[^] IPSE provides guidance, legal advice, insurance, best practice, peer support and more for self-employed freelancers BUT does not in anyway vouch for the "professionalism" or abilities of its members. When it first launched as the PCG (Professional Contractors Group) in 1999 it was almost entirely composed of IT professionals, but now encompasses all trades and professions.
* In the example you use, of the 737-Max, it's very questionable whether the programmers carry any of the blame. In an intrinsically unstable airframe, the software was designed to adjust flight control surfaces to counteract that instability; and was designed to do so without the capacity for the pilot to override those software inputs. The programmer's code was not at fault; it received an input, did some calculations, and generated an output. In the tragic case of the 737-Max, the inputs were faulty because of a malfunction of the AoA sensor, and as we all know - Garbage in, garbage out. The faults lay with the concept of the 737-Max (putting engines that don't fit on an old airframe, and thus have to be re-positioned, thus causing a nose-up attitude under thrust), plus the lack of input validation (by comparing the inputs of the two AoA sensors), plus the lack of a manual override. So who's to blame? Yes, software doomed the aircraft, but there was no "bug" in the code, and the programmers who wrote each line of code are blameless. It was the overall project management and concept design, plus arguably the certification body, that made the decisions to go ahead with a flawed system. See this detailed analysis[^] published on the IEEE website
|
|
|
|
|
DerekT-P wrote: why is it the programmer's fault?
Yep a complexity issue.
Which is why 'real' engineering problems, you know the ones where buildings fall down, often are only resolved via civil lawsuits against companies.
Oddly enough same is almost always true for doctors as well. Even when they kill someone. Only time it becomes criminal is when they can show gross negligence.
|
|
|
|
|
Nowhere in there did you mention the programming cheerleaders. I won't join without such assurances.
But seriously... I can agree with the need and the broad points mentioned, but it just ain't gonna happen.
Grab a beer and relax.
|
|
|
|
|
gggustafson wrote: I firmly believe that programmers should be held accountable for their mistakes In my first year, I caused 4 m3 of quick drying cement to drop to the factory floor, and I was not accountable; if I was accountable, I'd quit programming. Moreover, if you hold people personally responsible, no one would work at MacDonalds even. Let's not talk hospitals, where they cut people open without personal responsibility.
gggustafson wrote: I am convinced that the only solution to this problem is the certification of programmers by a vendor-independent organization Like schooling and getting a degree? That is different from being accountable, that's simply verifying someone has a certain level of knowledge. Now, I tried to get into school this year, but I do not have enough education to start at that school.
gggustafson wrote: My question is simply "Doesn't the programmer who wrote the software that caused some type of catastrophe share the responsibility for the disaster?" Basically, no. The manager is to blame in that case. It works like that in every occupation, even for cleaners.
gggustafson wrote: It is for this reason that certification is required. It is rather hard to get work without any certification or any other creds. It is not required; capitalism would erase those businesses that fail on delivery, wouldn't it?
gggustafson wrote: The certified professional should then use certified journeymen and certified apprentices to design and implement the software. A journeymen?
gggustafson wrote: I believe Which is allowed, but keep that nonsense in your church. We measure, instead of believing.
gggustafson wrote: For example: a stable retirement fund, not affected by the continuous movement of programmers from one job to another; job protection from any number of ills that plague our profession; career guidance and referrals; legal assistance in the case it is needed; and any number of other services. Of course, there would be a cost but, hopefully, a well-spent cost. I do like our socialist system in the Netherlands, but why would/should this be about programmers, instead of workers? Does one who clean not have the right to legal assistance? Why?
I may make more money than the one who cleans after I leave, but as a human, they are more than I will ever be.
Feel free to look for a job and demand your stuff.
Bastard Programmer from Hell
"If you just follow the bacon Eddy, wherever it leads you, then you won't have to think about politics." -- Some Bell.
|
|
|
|
|
Eddy Vluggen wrote: A journeymen?
You know the ones that get paid a lot less and...wait for it...are not certified.
|
|
|
|
|
I know the term only from the game "Pirates!", where you start as an apprentice, a journeyman or a buccaneer.
Bastard Programmer from Hell
"If you just follow the bacon Eddy, wherever it leads you, then you won't have to think about politics." -- Some Bell.
|
|
|
|
|
Yep that is how it works.
Ideally of course it seems like a good idea. The expert takes in someone without skills and then trains them to become a master.
Sometimes it even works that way.
But to some non trivial percentage of cases it becomes a way for the expert to get skilled labor (after training) for less than what it would cost to actually pay them without such restrictions being in place.
A particularly horrendous example was the 'apprenticeship' laws passed in the US after the civil war that allowed white people to enslave young black people, forcibly (legally enforced), with the justification of claimed benefits.
|
|
|
|
|
jschell wrote: Ideally of course it seems like a good idea. The expert takes in someone without skills and then trains them to become a master. It seems like a good idea if you lack an educational system, where they teach you according to a predetermined curriculum. That would at least guarantee a minimum basic understanding of the topic.
jschell wrote: A particularly horrendous example was the 'apprenticeship' laws passed in the US after the civil war that allowed white people to enslave young black people, forcibly (legally enforced), with the justification of claimed benefits. We stopped the differentiation based on how much melatonin and how much Neanderthal genes; now we enslave all, with student loans and expensive housing. Keynes would be so proud right now
Bastard Programmer from Hell
"If you just follow the bacon Eddy, wherever it leads you, then you won't have to think about politics." -- Some Bell.
|
|
|
|
|
Eddy Vluggen wrote: It seems like a good idea if you lack an educational system, where they teach you according to a predetermined curriculum. That would at least guarantee a minimum basic understanding of the topic.
Except of course...
1. Is the education system free? In the US the journeyman jobs do pay - just not all that much.
2. Does the education system teach you skills that you can use on day one to make money?
For example at least at one point in time in the US one could take classes in high school, some high schools, on how to cut hair and how to fix a car. Not sure how complete those classes were. I never read of a high school class that taught one how to be a plumber.
When I was in high school there was one class to learn programming. But in no way was that suited to being a professional programmer. No idea what they are doing now.
|
|
|
|
|
I can only speak from personal experience, and that is limited to the Netherlands. So, this;
jschell wrote: Is the education system free? In the US the journeyman jobs do pay - just not all that much. I paid 500 euro's to learn the basics of Python, because I was not educated enough to go to that school. I mean, they said that without that pre-education, I could not start education (which costs a lot more).
jschell wrote: Does the education system teach you skills that you can use on day one to make money? No? Well, not anything that is viable in real life.
jschell wrote: When I was in high school there was one class to learn programming. But in no way was that suited to being a professional programmer. No idea what they are doing now. Probably the same place, as it makes them money.
Bastard Programmer from Hell
"If you just follow the bacon Eddy, wherever it leads you, then you won't have to think about politics." -- Some Bell.
|
|
|
|
|
As others have said, programmers have little control over any part of the software development process:
- We do not control the specification - it is given to us by the customer or by Marketing
- We have little control over the design - it is often driven by hardware requirements
- We have some control over the coding
- We do not control the QA, testing, or acceptance tests
- And most important - we control neither the schedule nor the budget
Why should we be held responsible for the results of other people's decisions?
Freedom is the freedom to say that two plus two make four. If that is granted, all else follows.
-- 6079 Smith W.
|
|
|
|
|
You said it way better than I ever possibly could have.
You don't need programmers to know everything about everything; you bring in the experts in their various fields and have them put the specs together. The programmer implements it. Someone who's not the programmer needs to sign off on it. Plus everything you mentioned.
|
|
|
|
|
But as a "professional" with a code of conduct, I will do no harm. I extend harm to stupidity; which I will decline to be part of.
I don't care who is in charge; I have to live with myself.
"Before entering on an understanding, I have meditated for a long time, and have foreseen what might happen. It is not genius which reveals to me suddenly, secretly, what I have to say or to do in a circumstance unexpected by other people; it is reflection, it is meditation." - Napoleon I
|
|
|
|
|
Gerry Schmitz wrote: "professional" with a code of conduct,
Plenty of professions have a code of conduct. It doesn't stop unethical, venal, or even just stupid people from working in that field. For licensed professions, it may make it easier to get rid of them, but I wouldn't even count on that.
Freedom is the freedom to say that two plus two make four. If that is granted, all else follows.
-- 6079 Smith W.
|
|
|
|
|
Daniel Pfeffer wrote: For licensed professions, it may make it easier to get rid of them
I seriously doubt that.
"Burzynski Clinic". Operating for 40 years. Sold a bogus cancer cure. Two years after it opened they knew it was a fraud. After that it took them that long to figure out how to remove his medical license.
|
|
|
|
|
Gerry Schmitz wrote: I don't care who is in charge; I have to live with myself. And I am not afraid of doing it.
Flashback:
I started a couple of years ago a project at work with "high importance". In the beginning I had a small app that could have been a very, very good start point for the bigger software. I even did a PoC in the most difficult use case. I got moved due to other reasons to a new deptartment and my PoC got discharged...
Back to today:
New division boss, asked me a time ago about something related and I explained the whole context, he started digging deeper and deeper and the story ended this week with a self report about the situation that we are not compliant with and exonerating me and a couple of people more because the decissions were taken against our advice before he took over (and I have proof of it, just in case).
Endly someone at lead doing things right
M.D.V.
If something has a solution... Why do we have to worry about?. If it has no solution... For what reason do we have to worry about?
Help me to understand what I'm saying, and I'll explain it better to you
Rating helpful answers is nice, but saying thanks can be even nicer.
|
|
|
|
|
I cannot agree more! When given a task to supply the code that will ensure 1+1=2, we are not tasked to re-discover the wheel to formulate what makes 1 or 2, our job is to secure the 2, else all fails. If a non-programmer miscalculated the outcome of 2, who is to blame if the design said 1 + 2, but it was misrepresented as 1+1....
|
|
|
|
|
ditto, Dan
"A little time, a little trouble, your better day"
Badfinger
|
|
|
|
|
IMHO, a simpler first step for managements to institutionalise/mandate System Level FMEA, Failure Modes and Effects Analysis, in addition to Software Testing. Such a system level FMEA would at least help to recognise and possibly resolve all failure modes before release.
modified 23-Nov-23 20:14pm.
|
|
|
|
|
Gus, have you watched Uncle Bob Martin's series of videos on what it means to be a professional programmer? He echoes similar sentiments but holds an entire organization accountable. Worth watching. At my shop, we strive to follow his principles.
/ravi
|
|
|
|
|