Hacker News new | ask | show | jobs
by theideaofcoffee 687 days ago
Same, which is why I bristle at my title containing "engineer" as I don't have a PE. If most software engineers want to legitimately call themselves engineers, the field should be formalized as an engineering discipline, including coursework, certification/licensure and, better yet, apprenticeship-like experiences required for "real" engineers working toward their Professional Engineer license.

Edit: I'd add this goes double when working on safety-critical code, or anything touching protected health data, or payment/financial data. It's just too toxic and valuable to leave to a chance change.

2 comments

> If most software engineers want to legitimately call themselves engineers, the field should be formalized as an engineering discipline, including coursework, certification/licensure and, better yet, apprenticeship-like experiences required for "real" engineers working toward their Professional Engineer license.

I agree, although in reality it's not chiefly developers themselves who are responsible for quick, lazy approaches, is it? Developers are typically the parties most pained by technical debt. If the discipline of software development is to become software engineering in earnest, there will have to be some pressure all the way up the management chain— pressure strong enough to outweigh software's low cost of iteration. I imagine this is really rare outside of highly regulated industries and very specific applications, and even with a formalized software engineering discipline, many companies will prefer sloppy software development and many competitive markets will 'select for' such companies.

> although in reality it's not chiefly developers themselves who are responsible for quick, lazy approaches, is it? Developers are typically the parties most pained by technical debt.

I'd agree with you, except... ooh, a new, shiny, untested language / framework / platform to rewrite the codebase in!

Yup, like for example: Rust!
Rust isn't really new or untested, though. I issue with RIIR isn't Rust so much as the act of rewriting, which carries inherent risks.

I think the temptation to rewrite also reflects how messy and unworkable we let codebasee get— sometimes that impulse is more about the pain of working with the existing codebase than anything else.

To me, the tragedy of rewriting is the underappreciation of why the gnarliest 5% of the codebase is there.

Occasionally, usually because initial requirements were sorely lacking or changed, you can simplify the system via rewrite.

More often, everyone ends up realizing they didn't actually understand that last 5% of edge cases.

And then you've either replaced the working system with a 95% complete solution (so common in modern software) or you produce a system equally ugly once you handle that last 5%.

> I bristle at my title containing "engineer" as I don't have a PE

Lol HN.

Outside of civil/structural disciplines, PE is not required for engineering.

Mechanical, Chemical, Electrical, Nuclear don't require it.

I've literally never met an Aerospace engineer with a PE, and they build planes 'n sht.

---

It's a pure resume padder, like Cisco or AWS certifications.

America's obsession with professional licensure is so confusing, it's an absurd level of protectionism for a country that claims to love freedom, do you really need a license to cut hair etc?

Some programmers (evident in the replies) even think it should exist for their profession, a very worrying idea.

"Nah, those uppity software engineers don't need any additional training. How dare they think they have any right to tell us how to manage this roll-out" says management, "We'll just cowboy this update and wipe out 8.5 million systems. Besides, it's not like they're working on nuclear reactors, yeah? How complex could it be?"

You're just proving my point in that it's a CTO that dismisses the argument in a rather childish way. They would be the one to be told 'no' by the now-professional software engineers when their license and livelihood is on the line while being pressured to do something that goes against their recommendation. Funny how that power dynamic changes when there's something real on the line and not just an inflated title, huh?

Perhaps if those aerospace and software engineers that attempted to blow the whistle at Boeing were successful and were empowered via their license to say enough and stop development on MCAS, there wouldn’t be 300+ dead people because of a software change rammed through by management. The licensure ain’t just window dressing. It has real, actual impact on real human lives. Don’t be so dismissive.

He isn't dismissive about the problem, he's dismissive about the proposed solution.

A certificate would not change the status quo at this point.

Software developers/engineers are - for the most part - seen as essentially blue collar workers. Replaceable gears that MBAs can just "scale up" or "down" to fit their currently desired velocity. Let's ignore the fact that this fundamentally isn't true, but it's what they believe.

The work they do is decided by MBAs, and the time they have to implement these changes is heavily influenced by other MBAs.

Adding a certificate to this mix will change literally nothing

I'm dismissive of

> I bristle at my title containing "engineer" as I don't have a PE

because it is aggressively ignorant of facts.

I have no comment on the potential utility of a PE requirement, software or otherwise.

A PE license isn't just for certifying a minimum level of technical competence. It also requires aligning with a specific code of ethics, to ensure safety and wellbeing of the public.

If there's anything that the software industry needs most is a code of ethics. Companies are built on software that exploits, tricks and deceives their users. They release borderline malware and get rich doing it, either by having complicit investors or fooling them with false valuations. They cover their asses with dishonest PR, and lobby governments to keep the party going. This happens in the largest tech giants and tiny startups alike. And don't get me started on the gaming industry and their predatory practices.

We often exculpate engineers as being cogs in the machine, but they're ultimately choosing to work in these places, and enable this behavior.

The world would be a much better place if software engineers were required to take and uphold the equivalent of the Hippocratic Oath. We don't expect less from health professionals. Why should we from IT ones when the world is run by software?

Software engineering has as much a code of ethics as mechanical engineering.

Maybe there's improvement to be had, but this is not a difference between disciplines.

Huh? Please show me a code of ethics taught in software engineering courses.

If one exists, I would like to see your argument that SWEs are adhering to it, and that the software industry is behaving ethically.

I think this is changing, in my country the equivalent of PE will soon be required for a number of engineering disciplines, not just civil. But that's kind of missing the point, which is that professional engineering is guided by fairly comprehensive standards, such as those from the IEC (or ANSI, IEEE), and compliance with those standards is generally a legal requirement.