In most engineering fields, you get sued if you practice without a license or any form of accreditation.

Maybe it's time we did the same for CS...

https://pledge-of-the-computing-professional.org/

The Pledge of the Computing Professional - The Pledge of The Computing Professional

The Pledge of the Computing Professional entails a rite-of-passage ceremony for graduates from computing programs. This rite-of-passage ceremony dovetails nicely with existing Order of the Engineer ceremonies for colleges that have both engineering and computing degree programs. The Pledge of the Computing Professional is solely intended to promote and recognize the ethical and moral behavior of graduates of computing-related degree programs as they transition to careers of service to society.

The Pledge of The Computing Professional
@okennedy i do not have any form of accreditation in programming.

@dysfun I'm referring to licenses (e.g., PE licenses, or Bar standing), not college degrees. CS does not have a formal accreditation structure like this, and that's becoming a problem.

If an MBA asks an engineer to disregard best practices in their field (e.g., by under-engineering a bridge), the engineer knows that they are risking their future employment. This is both incentive for the engineer to stand their ground (because there is a very negative outcome if they don't), as well as a supporting effect (because they know that everyone else is subject to the same incentive structure).

This incentive structure exists (to varying levels of effect) in the engineering, medical, and legal fields because if folks get stuff wrong, people get hurt. CS's commercial sector, meanwhile, is still operating at the hobbyist level... "Here's a piece of code, and don't sue me if it kills anyone"

@okennedy yeah, i still only got into the field at all because of relatively low barriers to entry. i don't want the ladder pulled up

@dysfun I sympathize, and I agree that low barriers to entry are a compelling aspect of the field.

But I'm also seeing more and more people's lives get f'd up because of underengineered crap being marketed as gold. We have yet to have a Quebec Bridge of our own... but we're fast approaching the level of apathy and disconnection that got civil engineering to that point.

@okennedy yes. but i think the solution there is generally to hold companies responsible.

@dysfun That would be lovely, and I welcome legislation in that direction (GDPR is, e.g., one nice step in that direction).

However, at least in the US, there is a huge asymmetry between resources available to companies and resources available to regulatory agencies (and the latter is continuously under attack). Holding companies accountable needs to include a process to hold the people in those companies accountable too, including a way to have a non-empty intersection between people held responsible, and people empowered to act on that responsibility.

@okennedy @dysfun

I tend to agree with you both. We don't need artificially high barriers to entry; but we do need a lot more accountability for some software.

Its the "some software" bit that is important here, I think. Tossing together some software and dumping it on GitHub under a GPL license is one thing, writing safety critical systems for automobiles is a very different case.

@ocratato @dysfun The safety critical line is a lot lower than I think most people would care to admit. Otherwise mundane software has been responsible for intangible harms (PII leaks), indirect harms (security vulnerabilities in embedded devices), and non-immediately evident harms (unnecessary dependencies on a central server / internet access).

"some software" needs to be "all commercial software"

@okennedy @dysfun
"All commercial software" is a desirable end state.

I would suggest that getting there might be best undertaken in small steps. Start with things that have an immediate impact on lives, then extend as circumstances provide the political incentive.

I am also interested in understanding what getting an engineering sign off on a piece of software means, given that it probably depends on numerous other libraries and things, shares the CPUs with an unknown set of other software, and is expected to run on a variety of hardware (and associated firmware).