DEV Community

redeemefy
redeemefy

Posted on • Updated on

Why Software Engineering is not regulated?

I want to start by saying that my intention is not to denigrate or diminish people's effort or profession. This post is to stimulate discussion among the community.

I have been reading here about the engineering discipline regardless of the domain in which it is getting deployed and it sparked several questions. It appears to me that the discipline of Software Engineer as we know it today is not performed as other engineering does in other domains such as electrical, mechanical, civil, etc, and I'm wondering why might be the case.

I want to number the points I see are similar but in practice are different:

  1. Education
  2. License
  3. Research

Education: I want to mention education not in the sense that people need a formal education to write software and have a job, but in other engineering disciplines, education is required to the point that you are not allowed to perform the discipline without education. Nowadays a computer science or software engineer degree is not required to land a job.

Let's say that I learned everything needed to be a civil engineer on Coursera, Edx, or any other free MOOC. Not only I learned it, but it is also possible that I take the state license exam and pass it. Why am I not allowed to perform as a civil engineer and build a bridge or a skyscraper? I'm going to answer my question on my ignorance. I think it is because I didn't get a formal education that is well rounded with all the courses needed, the mentorship that is required in many countries and the license to be responsible for the outcome of each decision I make. Decisions that are not light since the lives of many rely on my design and decisions for that construction.

So I have a few questions on the topic of education that I don't have the answer.

  1. Where we draw the line?
  2. Do you trust the ML algorithm that denies your loan?
  3. Do you trust the software that is written in IoT devices?
  4. ... thinking about critical software, that puts someone on the jail, or schedules someone for surgery, or even worse, you do have the disease and the software said no you don't.

License: All other disciplines of engineering requires a state license to perform as an engineer. I think that this is a measure to protect/ensure the quality of the work and the safety of the people. I have heard of some edge cases where you don't need a license but in general, you do. However, in the software industry, you don't need anything at all. Since software applications are everywhere and in everything...

Here next to me is my wife telling me about a nursing license test that she would take if she decides to go to nursing school. I didn't know that a nurse has to take a licensing exam.

  1. Do you allow a self-taught nurse to take care of you in the hospital?
  2. Do you think that the software industry could get out of control?
  3. Do you think that we need to put some control like a state license?

Research: My observation with research is that in the design face of any project, the research analysis is done before you can proceed with the project, in Software Engineer we don't. We do have research done at the academic level where innovation is taking place or in big tech companies since they can afford to have their R&D department.

This is how normally goes...
Hey, we have a green project and we need to come up with a POC.

  • That is great, I have been waiting for a greenfield project so I can learn Svelte. Can we use it in this project?
  • We should do a microservice architecture... Dude, this is a POC.
  • And the list goes on...

This scenario doesn't look like research to me.

I think it would be beneficial for the industry to have separation of duties in their titles. That way you can tell who is doing what. For instance...

  • Software Architects - need a license
  • Software Engineers - need a license
  • Software Programmers - don't need a license

  • What are your thoughts on this topic?

  • Do you think that the software industry needs to start to put some guard rails?

Discussion (7)

Collapse
htmlghozt profile image
Thomas Dillard

TL;DR: Yes, if it mandates good practises; No, because it doesn't matter.

It wasn't too long ago where most programming jobs required some degree, and any important position required at least a masters. It didn't matter, self-taught devs were excelling beyond those with a degree.

If every software development project followed an agreed upon set of standards: l10n, a11y, GDPR, Ethical ML, data compliance, a modicum of testing, etc., etc., -- a license for a reason more than gatekeeping.

I don't see that happening any time soon.

A building falling is more dangerous than leaking your dev.to password. ML algorithms are amply tested, as failure means loss at scale. Misscheduling is a clerical error which happens more often by humans than software, same with misdiagnosis.

IOT is an opt out system, and after months of Amazon/Google being accused of recording conversations, the insecurities are apparent.

If you do have to deal with PHI testing/licensing is required anyway.

It's true that advancement comes out of academia, but no one cared about GANs until they were deepfakes. Unless it's something specific, large corporations have a stack that's built software from specialized companies (Atlassian, Salesforce, Linux, etc.).

I also think you're entranced by spectacle, the truth is that "Software Architect" and "Software Engineer" are honorific at best. I wouldn't compare this field to civil engineers, rather construction workers -- A mass of general labourers that are more likely doing grunt work than overseeing construction.

The programming language(s) and a majority of architectural decisions are implementation details, while they can increase or decrease the time of a project, they're ephemeral as you'll likely need to update overtime.


If I have learned anyting it's never just a POC.

Collapse
redeemefy profile image
redeemefy Author • Edited on

Hi Thomas,

Thanks for sharing your point of view.

Collapse
dlim87 profile image
Daniel Lim

You really only NEED a PE license for civil engineering. And even then, that's mostly to just have someone sign off on it. There are plenty of Junior Engineers who work in it without yet meeting the multiple years of experience necessary to get the license

Collapse
redeemefy profile image
redeemefy Author

Is it because construction is so demanding that the need for engineers is big and there is no time to train them (similar to the software industry), or this has been the case all the time?

I think that your comment just uncovered one of the key problems. The demand is so large that traditional Universities can't catch up with graduating software engineers.

Collapse
dlim87 profile image
Daniel Lim

No, it's that it's really only government projects that need the kind of sign off the licensure gives. Which is basically only civE projects.

Collapse
redeemefy profile image
redeemefy Author

My father was a dairy farmer and he told me once...

I rather deal with 100 cows and not with people. Dealing with people is so difficult.

We, humans in general, look every opportunity for profit regardless of consequences. I love this quote...

If we treat every situation only as a chance to satisfy our own interests, we will soon find that we have passed up opportunities to provide real value to others.
Thinking With Data - Max Shron