As a member of the ACM for the past 18 years, I did review earlier drafts and submitted comments. I was especially critical of the vagueness, but in general welcomed the update, as the old code was pretty outdated by now.
I did not think about the enforcement mechanism, but that is because I still don’t see Software Engineering/Programming as a profession. This has been a very contentious point for years. On the one hand, “hackers” (I use this in the original sense of the word, as it describes a very common ethos in the occupation) are terribly skeptical of any authority, and pride themselves that you can become a proficient programmer without formal training. Funny enough, programmers subscribing to this point of view are very supportive of apprenticeships and mentoring… go figure.
On the other hand, corporations will *strongly* resist any sort of licensing, and use the current, informal, certification system as a first filter only. Formal requirements would make software engineers more expensive and possibly lead to some system to deal with liability. Much better to keep to current system with the ability to outsource to the lowest bidder.
Reform will have to come from inside the industry. The problem is that herding cats, err, programmers is really hard. A couple of years ago I was involved in discussions to professionalize the occupation, but the interested quickly formed into two groups. Hard left “let’s unionize” types with no interest in setting standards for practitioners and wannabe cowboy entrepreneurs who saw themselves as the next Bill Gates/Mark Zuckerberg/Jeff Bezos and just wanted an artificially scarce piece paper to increase their market value. As expected, nothing came out of it.
My hope is that some university will start a professional certification program that may have actual meaning and value for both practitioners and employers. I had hopes that CMU’s SEI would take that role, but it hasn’t and by now is just one more possible certificate in the pile, if more valuable than the others.
Or we may need to start small and grow bigger (see INCOSE for Systems Engineers) while not taking the full-licensing route for the time being. In the end, after years in the industry, I believe that software engineering should be like Civil Engineering, Medicine, or Law. You may still have your cowboy coders, but for some developments (life critical, safety critical, large scale and impact, security related, etc.) you’d be expected (maybe even required, but that might be too ambitious to begin with) to have at least a licensed Software Engineer as your project lead, overseeing a number of other engineers (some licensed, some in training, some “code monkeys”) whose name is in the line for the project. Oh look, Civil Engineering works JUST LIKE THAT! Will that require higher pay? Yes. Malpractice insurance is a given, but it works for other professions.
It’s a mess, and I don’t see an easy way out. For now, I appreciate what ACM is doing, and will support it. Any other software engineers out there interested in ethics and licensing? Maybe. In my experience most don’t want to go that route and will take the simplicity and freedom of being “just a programmer”.