81 comments

[ 0.18 ms ] story [ 134 ms ] thread
I'm glad to see a code of ethics that focuses on the ethical issues related to the profession instead of trying to make an ethical code that covers every popular ethical issue in society.
Indeed, it’s a shame that the industry still has no licensing program, like all the real professions such as law, medicine, and the trades.
It is not shame, and we should be seeking to remove professional licensing in more areas not expand it.

Professional licensing is pure economic protectionism and largely fails at the stated goal of promoting safety, quality, or professionalism. It is prone to corruption, as all human ventures with absolute power and authority will be

Voluntary trade organizations, certifications and other methods are far superior to governmental professional licensing

> Professional licensing is pure economic protectionism and largely fails at the stated goal of promoting safety, quality, or professionalism.

Citations?

> Voluntary trade organizations, certifications and other methods

The software industry barely even has those.

> > Voluntary trade organizations, certifications and other methods

> The software industry barely even has those.

And no accountability.

When a building collapses engineers form committees and seek the cause and check to see if any engineers were to blame. When a hospital gets hacked and private patient details are made public there are no such enquiries. The computer programmers responsible for creating insecure systems are not held to account.

The upshot is civil engineers get to do a good job. If they cut corners it has real word effects and they get punished.

Computer programmers never get held to account so their managers insist on minimum viable products being promoted irresponsibly into vulnerable systems that expose people's data. If we cut corners it has real world effects and every body blames the users.

So we never (mēh, not often) get to to good work

Well put.

Ethics are a double edged sword.

Not only are you held to account but you can hold others to account.

The simple fact is most programmers would be too incompetent to exist in such a world.
The software industry has been extremely productive without any licensing program. It's hard to see what regulation could improve that.

In fact, it's an argument that many other professions aren't actually benefiting from licensing, either.

It ain't broke.

> it's an argument that many other professions aren't actually benefiting from licensing

Citations?

edit: I found this “The effectiveness of licensing” [1], which suggests replacing licensing with mandatory registration programs (or suggestions of improvements for licensing boards).

I’d be curious to see any research that advocates for removal of licensing without the addition of something else.

[1] https://link.springer.com/article/10.1007/BF01044517

Most recent is the news coming out of FL where they are arresting qualified licensed roofers who just happen to have the licenses in another state other than Florida for daring to try to help people repair their roofs after a hurricane [1]. They are not claiming he was scamming people, door poor work, or anything other than not paying the fee and kissing the ring of the local economic protection guild AKA licensing board

Combination of this there are several licensed FL contractors currently being investigated for Fraud because they promised Homeowers work they never delivered. The Trades are FULL of licensed scam artists

Building Contractors are by far the best example I could give.

Personally I do not want to get to a situation where my Open Source Code is downloaded by someone in say California and the next thing I know I am being arrested for "Developing with out a license"

Hell if there was a License requirement for development when I was a teen I likely would have never learned how to develop code in the first place, I though HN was all about equality seems odd you would promote blocking out people and only allowing in the elite.

Here is your $25 pi to learn to code on, but if you want to release your code you must first pay thousands of dollars and get approval from the code guild.... No thanks

[1]https://nbc-2.com/news/local/charlotte-county/2022/10/08/roo...

> Hell if there was a License requirement for development when I was a teen I likely would have never learned how to develop code in the first place

There are cadres of people that struggle through medical licensing just for the chance to make less money than an unlicensed software engineer.

I can only imagine that licensing (or some functionally equivalent regulatory mechanism) would boost the quality of the labor pool.

> I though HN was all about equality seems odd you would promote blocking out people and only allowing in the elite.

You may not be aware of this, but there are a wide variety of ways for people to get into STEM or medicine without being an elite.

Heck, there’s billboards showcasing the non-elites being given free access to Harvard training.

> The Trades are FULL of licensed scam artists

Take a look at that research article that I linked in my parent comment.

It identifies some suggestions for how to fix the situation by switching to a mandatory registration program, instead of licenses, or how to fix the licensing boards so that they properly punish incompetence or other professional failings.

> Citations?

Frech's "Competition & Monopoly in Medical Care" says the original motivation for licensing doctors was driving the Jewish and Black doctors out of the profession.

https://www.amazon.com/Competition-Monopoly-Medical-Care-Fre...

Today, the motivation is to restrict the number of physicians in order to increase their pay.

Almost all software is broken, in fact. A real field of engineering would prohibit most of the stupid shit idiots claiming to be programmers do before even reaching for the other issues.
Notably, the ACM has been compiling a list of hundreds of instances of failures in software that have negatively impacted the public.
In most engineering disciplines, some degree of fault is permissible and is accounted for
That is my understanding as well, but some degree of fault is also impermissible and people must be held to account for those kinds of fault.
You can't punish people into being better programmers. Things don't work that way. I know that it's popular to believe that companies improve productivity by beating their employees, but that doesn't work in practice.
As a thought exercise, replace “programmers/employees/companies” with “criminals/inmates/prisons” in your argument and you will see parallels with modern law enforcement.

Law enforcement embraces rehabilitation, prevention, and other mechanisms as well as simple punishment.

Seems rather disingenuous to make a claim that negative reinforcement doesn’t work, vis-a-vis not having to be in jail.

His self-interest makes his position understandable. Why, programming is just as real as other engineering, except for those nasty consequences for gross negligence, such as using the C/C++ languages or garbage similar to them.
Jails shouldn't be for punishment. They should be for protecting society from people who can't live by the rules. Punitive prison sentences are uncivilized.

Besides, pickpockets used to be hanged. Didn't stop them.

Would you please stop posting unsubstantive and flamewar comments? You've been doing an absolute ton of this and it's super not ok. See https://news.ycombinator.com/newsguidelines.html.

We have to ban accounts that break HN's rules like that. I don't want to ban you, because you've also posted good things like https://news.ycombinator.com/item?id=33145319 recently. Ok, you've posted one good thing (that one) recently. Still, it was pretty good and I'd rather persuade you to use the site as intended, if that's remotely possible, than to ban you.

If you wouldn't mind reviewing https://news.ycombinator.com/newsguidelines.html and taking the intended spirit of the site more to heart, I'd personally appreciate it.

I'm tired, dang. I wanted to delete this account, but I'm not allowed to do so. I didn't use it for years until I tried to contact someone here. Now, when I even try to submit something here into which I've poured effort, it doesn't appear in the new section until after it can no longer qualify for the front page, as an underhanded method of trying to make me believe no one cares about it.

Why is Hacker News filled with political nonsense that gets hundreds of comments, while the programming topics get few or go ignored? It is so frustrating to try to have a conversation here, where people rather downvote and flag than write rebuttals. I tried to contribute to this forum, but my novel work goes ignored; my submission here with highest score merely hit hipster bingo.

What am I supposed to do?

I don't understand what you mean by trying to contact someone, but if you mean contacting us, the way to do that is to email hn@ycombinator.com.

Your account's submissions aren't specifically being penalized, but https://news.ycombinator.com/item?id=33052487 was killed by our software because your submission history is getting classified as "primarily promotional", which is against the site guidelines ("Please don't use HN primarily for promotion. It's ok to post your own stuff occasionally, but the primary use of the site should be for curiosity." - https://news.ycombinator.com/newsguidelines.html). The way to prevent that from is to post a diverse mix of interesting/unrelated articles and include your own stuff as part of the mix.

Nearly everyone's "novel work goes ignored" - that's the unfortunate consequence of frontpage space being the scarcest resource (https://hn.algolia.com/?dateRange=all&page=0&prefix=true&que...). It's nothing personal—it's hard for everyone.

Re the question of politics on HN, some political overlap is inevitable on a site whose mandate is intellectual curiosity. Lots of past explanations can be found here: https://hn.algolia.com/?dateRange=all&page=0&prefix=false&so....

What you're supposed to do is follow the rules: https://news.ycombinator.com/newsguidelines.html. I know HN can be frustrating, but vandalizing it with aggressive attacks and flamewar helps nothing.

Would you consider that some type of license that holds the individuals writing software which is responsible for safeguarding human life or the environment accountable and liable for its performance might have prevented some disasters, such as for example the Boeing max acas crashes?
There's no evidence that punishing people who make mistakes is productive.

What has contributed to safety was no-fault attempts to find out what went wrong.

The reason is simple. Punishment means the person who made the mistake becomes highly motivated to cover it up, deny it, shift blame, and not fix it (because fixing it means admission of, and liability for a mistake).

No fault means that people can fix it without fear.

Destroying people for making mistakes is a really, really bad idea for improving safety.

For whatever web app, it doesn’t matter, but are you saying blameless post mortems are the only solution to software caused deaths and evironmental catastrophes? The buck has to stop somewhere.
No-fault investigations have been very successful in making airline travel incredibly safe.
Citations for this claim and the parent-parent comment claims that you made?
I've watched every episode of "Aviation Disasters" on the Smithsonian channel. At the end there's a summary of corrective action taken. I can't recall one that resulted in a criminal prosecution for making a mistake.
And, in general in the US, there's not a lot of licensing for engineering professions in general. It's fairly common in civil engineering or other jobs where you're signing off on things like drawings that are being filed with regulators. But it's not common overall.
Yes, the industry has been extremely productive at data leaks and invading users privacy! With regulation, how could there be innovation in the "spying on every moment of your life" and "everything-as-a-subscription" industries.
Licensing will fix exactly none of that.
Pray-tell, what will?
You don't have to know the solution to a problem to know when a proposed one isn't it.
You do need to be able to articulate why a proposed solution isn’t the solution.
If developers would have to be licensed to work with sensitive user data, and the penalty for leaking it would be losing your license, penalties and being unhireable for IT work, there would be a lot more incentives for people to be more careful. Have any of the developers who implemented the systems that leaked data faced any consequences as a disincentive for it not to happen again? It would incentive developers to care more about security, not just say "eh, it happens, and it doesn't affect me, so who cares".

For user "spying", the code of ethics could contain something like "respecting the user" (idk, just spitballing) and those who want to implement more "spying" into their software could be "disbarred" for unethical behavior. This is even mentioned in the IEEE text: "Approve software only if they have a well-founded belief that it [...] does not [...] diminish privacy".

I guess you could codify this into law (i.e. GDPR style), but even that (at least to my understanding) does not hold developers individually responsible, but their company. E.g. when google gets fined, the developers who created the code are less likely to think "this is bad, therefore I will restrain for doing such things in the future" and more "how close to breaking the law can I push without the company getting in trouble".

I've seen what's been produced over the years and all in all I'd rather have the licensing.
We used to require degrees. Now days "techies" are throwing around medicine and trades experts in the same analysis and we end up with low standards across the board.
It says you are supposed to be an ethical member of society generally, it just doesn't explicitly spell out every possible issue (this seems to be a sign of a good code of ethics, it is guidance for your ethical reasoning, not a set of rules to follow to the letter).

1.02, 1.07, 2.07, 4.01, and 8.07 could be seen to have some thoughts on some current hotbutton issues I guess.

That’s pretty darn mild as far as current day politics go.

Kudos to whoever fought the good fight on this one.

What's wrong with the consideration of accessibility issues? It doesn't even recommend a single iota of effort. The language even supports the maximization of inaccessibility -- "okay, thought about it*!"

I'm quite curious about your use of the word "co-opted" though. Who was this co-opted from, and to what end?

* a Marshall Mathers quote?

Wha? So ARIA is political now?
In the modern era where some people look to use whatever tools/power they can get to further their own goals, there is no doubt a reactive element that has arisen that embraces extreme skepticism toward anything that resembles consideration for other people. Definitely not a healthy development IMHO.
Reproduced here:

“Software engineers shall commit themselves to making the analysis, specification, design, development, testing and maintenance of software a beneficial and respected profession. In accordance with their commitment to the health, safety and welfare of the public, software engineers shall adhere to the following Eight Principles:

    1. PUBLIC – Software engineers shall act consistently with the public interest.

    2. CLIENT AND EMPLOYER – Software engineers shall act in a manner that is in the best interests of their client and employer consistent with the public interest.

    3. PRODUCT – Software engineers shall ensure that their products and related modifications meet the highest professional standards possible.

    4. JUDGMENT – Software engineers shall maintain integrity and independence in their professional judgment.

    5. MANAGEMENT – Software engineering managers and leaders shall subscribe to and promote an ethical approach to the management of software development and maintenance.

    6. PROFESSION – Software engineers shall advance the integrity and reputation of the profession consistent with the public interest.

    7. COLLEAGUES – Software engineers shall be fair to and supportive of their colleagues.

    8. SELF – Software engineers shall participate in lifelong learning regarding the practice of their profession and shall promote an ethical approach to the practice of the profession.

”
Prefaced by this:

“Software engineers shall commit themselves to making the analysis, specification, design, development, testing and maintenance of software a beneficial and respected profession. In accordance with their commitment to the health, safety and welfare of the public, software engineers shall adhere to the following Eight Principles:”

Good point, this should be included as part of the text. I have updated my comment.
Also prefaced by this:

“The short version of the code summarizes aspirations at a high level of the abstraction; the clauses that are included in the full version give examples and details of how these aspirations change the way we act as software engineering professionals. Without the aspirations, the details can become legalistic and tedious; without the details, the aspirations can become high-sounding but empty; together, the aspirations and the details form a cohesive code.”

Doesn't this apply to any profession? Do we really need to say things like "Software engineers shall be fair"?
Do pizza chefs have a significant social responsibility by virtue of my massive appreciation for the profession?
They have a significant social responsibility by virtue of their hand being in the dough.
Yes, we do need to say things like that, just like we need to say things like “doctors shall do no harm”.
I don't see why we need to do that, either. After all, if a doctor wanted to be evil, do you really think a code of "don't be evil" is going to deter him?
The idea is that government / society can strip the evil doctor of the right to be a doctor, for being evil
How would that stop him from being evil?
It wouldn’t necessarily.

But it would stop the person from doing evil as a doctor.

The lab coat alone carries weight that magnifies the amount of evil that an evil person can do.

A doctor or nurse that kills patients out of evil, leveraging their position of being able to see patients, should obviously not be allowed to see patients.

Similarly, programmers that do evil, leveraging their position of being able to program a computer for a company, should obviously not be allowed to program for a company.

Setting aside things like rehabilitation, of course.

But there are definitely documented cases of doctors and nurses using their power to kill or to abuse the disadvantaged.

Taking away that power, once it is abused, is key.

It does, but it's nice to see that software engineering is officially codified by the IEEE :-)
The copyright date is 1999. A lot has changed since then in our practices, societal impact, and socioeconomic status.

Maybe it's useful to consider that this code of ethics is what some people in 1999 were thinking about software engineering ethics, and compare&contrast with what kinds of code of ethics for software engineering we could use today.

> It is not intended that the individual parts of the Code be used in isolation to justify errors of omission or commission

Good; an ideal to aim for rather than a judgement to be accused by

> The Code is not simply for adjudicating the nature of questionable acts...

Err, as far as I read it this finalizing statement is in conflict with their preamble

If it is a basis to judge others, then I will also judge it:

It says work in the best interest of customer and employer; but omits working in your own interest. In a zero sum game, I can best work for other's interests by taking from my own

Their code of ethics also gives no model to evaluate between different actions, which is kinda important. "Adjudicating questionable acts" by only asking if they were in "The best interest of employer/etc," is a recipe for poor adjudication

IMHO

In the preamble, they discuss that topic in depth.

For brief example,

“The Code is not a simple ethical algorithm that generates ethical decisions.”

and

“In some situations standards may be in tension with each other or with standards from other sources. These situations require the software engineer to use ethical judgment to act in a manner which is most consistent with the spirit of the Code of Ethics and Professional Practice, given the circumstances.”

I'm glad you like ethics. My criticisms above are not meant to say the article is bad; but that it can improve. Which is almost a truism of life

"Aim for the stars" is aspirational. But you cannot judge somebody for failing to achieve it

"Software engineers shall ... meet the highest professional standards possible." is aspirational. This is a good aspiration, but "shall" is the language of legalistic requirement. -- The document is aiming to do both

6.11. Recognize that violations of this Code are inconsistent with being a professional software engineer

6.13. Report significant violations of this Code to appropriate authorities...

8.09. Recognize that personal violations of this Code are inconsistent with being a professional software engineer

Ouch. This is extremely legalistic, they judge people by unmeetable criteria, then do not allow judgement of their own criteria!

I'm sorry...

> Ouch. This is extremely legalistic, they judge people by unmeetable criteria, then do not allow judgement of their own criteria!

That is highly disingenuous to write.

Lawyers, doctors, and members of the other recognized professions all abide by similar language.

Where is the code of ethics of the managers of software engineers? Most places that is where all the decision making power really lives, so it is vacuous to put onus on the underlings.

And what good is a code that has no teeth? What happens when people do not behave as required by this code?

For all of the corporate onboarding ethics training courses I’ve participated in, not once have I seen a course on what to say to your manager when you are asked to violate your ethics.
I suspect nobody has written a code of ethics for managers because they are mostly thought of as extensions of the company.

If a manager is asking middle-class professionals to do unethical or dangerous things, the hope is that they would quickly find themselves without these kinds of employees.

If a manager is asking members of the working-class to do unethical or dangerous things, the hope is that their union would throw a fit.

If you have neither the moat of being hard to replace nor the moat of being part of organized labor, you are in a rough spot.

I won’t speak for management, as MBA is pretty easy to search for on the internet, but project management does have the following:

https://www.pmi.org/about/ethics/code

It does speak volumes that even PMI has links to articles such as “Being Ethical is Profitable”

Great question! And what about the distain for MBA degrees (where management ethics are taught) among so called software engineers?

And what good is a code if you have to be an "underling" to follow it?

It often feels like a lot of software fails to follow the first principle:

> Software engineers shall act consistently with the public interest.

But what can or should be done about it? It seems like it's just economic reality that software as a whole continues trending in a certain direction.

For a lot of telemetry and tracking, if users were made aware of exactly what sort of data is being collected, do you think that they would still consent?

It would be interesting to hear how other engineering professions have handled similar issues.

Well, at least looking at the hardware world, it doesn't look like they've managed to do a great job. Repairability seems like it would clearly be in the public interest, but that feature is often ignored by many of the large hardware manufacturers.

And at least with hardware manufacturers, there's always greater demands of purity and perfection. Even when a company shows up providing hardware that's more open than the alternatives, people will often just complaint that it's not open enough and refuse to buy in. But this is a battle that must be won in slow steps towards making open hardware more viable.

The idealist within me feels frustrated when it comes into contact with reality.

Imagine what a perfect or ideal world would look like and then ask yourself: what features would be worth fighting to bring into this reality?

One of my biggest complaints about the IT industry is the prevalence of scummy operators.