Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Ask HN: Trade Organization for Software Engineers?
2 points by cphoover on Feb 25, 2021 | hide | past | favorite | 7 comments
My stress levels have increase 100x tonight. I've spent the last 30 minutes trying to change my account password on teladoc.com, so my partner and I could join our couples therapy session.

After going through the password reset flow, the website says "your password has been successfully changed". Then after going to login I get "your password is not recognized"... needless to say we ended up missing our appointment tonight which has me feeling frustrated and defeated.

I'm a software developer by trade and understand systems can have failures from time to time, for certain peripheral services this may be acceptable. However, Certain mission-critical services should always be made available and made redundant if possible. It's inexcusable for example that access to healthcare should be prevented by a software glitch like the one I encountered.

My experience as a developer for 10+ years and user for longer, is that these types of UX issues are pernicious and all too common, especially within web applications.

I can't help but wonder if some of the problem with user experience is a result of the caliber of the "developers" working on these systems, and what kind of compromises they deliver and deem acceptable to appease the wishes of their engineering managers.

I wonder if this problem could be at least partially ameliorated through the creation of a software engineering trade group. Such a group could handle certifications to make sure developers are worthy of building such dire, mission-critical applications. They could create standards that must be met in order to keep a license or certification.

When a plumber installs a water heater, it has to be "up-to-code", engineers in other disciplines often must be licensed or certified to work in their respective fields, why is this different for Software Engineers?



Because software development, unlike plumbing, does not have an agreed-upon set of core skills or best practices. We don’t know how to measure software quality or reliability. We struggle with the hiring process. We can’t define or measure programmer productivity.

These problems are old and well-known. Multiple attempts at certifications and core skills have fallen flat, partly because demand outstrips supply, partly because the languages and tools move so fast.

That said, we’ve probably all had the experience of the car that won’t start, the electrical outlet that doesn’t work, the door that sticks in the frame. Shit happens and it’s not necessarily because of widespread incompetence. Be careful extrapolating from a small sample. I’ve been in the software dev business for 40+ years. I’m amazed that our code works as well as it does, because I know what it probably looks like.

Programming is hard. While I agree somewhat that programming, and web development in particular, has attracted a lot of people with questionable skills and little experience, I don’t have a solution.

For the specific problem you described, a password manager eliminates most of those problems.


Appreciate the insight from someone who has been in the industry for as long as you.

> Because software development, unlike plumbing, does not have an agreed-upon set of core skills or best practices. We don’t know how to measure software quality or reliability. We struggle with the hiring process. We can’t define or measure programmer productivity.

I wonder if this partially has to do with maturity? You say you have been in the business for 40+ years which is very long for this industry. Relatively some disciplines are much older. I think though there are de-facto industry standards for many software system design choices. They may not be enforced but are understood. E.G do not store your passwords in plain-text, use a salt to prevent utilization of rainbow/lookup tables for hash-cracking, Parameterize database queries, backup essential data, don't log sensitive data... etc

> For the specific problem you described, a password manager eliminates most of those problems.

I'm not sure how a password manager would help if their authentication service was failing which seemed to be the problem.


In software development we have some things understood as universal best practices, such as encapsulation, locality of reference, using good names. And we have a much larger set of specific best practices that change fairly often, or have multiple implementations. Password management is an example. Teladoc could, for example, email a link to log you in rather than using a password reset system, or maybe an outsourced authentication system.

Systems tend to have problems at the boundaries. That’s true in software and plumbing. Modern software systems have lots of boundaries, both between internal modules and applications and with external services. Programmers don’t usually have control over the landscape their code runs in. Errors are infrequent so they either get ignored/not accounted for, or they send the user into a maze of confusing behavior. What you perceived as a failure to reset a password could have any number of causes, from a database table primary key overflowing to network latency to a glitch in a string library. There might not be an obvious smoking gun bad chunk of code written by an amateur to blame.

I do see programmers who have no interest in their craft and don’t know what they’re doing. I see a lot more who don’t have a lot of experience, putting their mental effort into learning nuts-and-bolts stuff like languages, libraries, frameworks, APIs. Even very experienced programmers can’t possibly keep all of the details straight, or think through all of the possibilities.

A lot has been written about writing better code, and making teams work together, and how psychology plays out in software development. You can find books on the subject going back to the 1960s. As Fred Brooks wrote, there’s no silver bullet.


AFAIK in Ontario, it's illegal to use "engineer" in your job title without a professional engineering license, including software engineer. Most people don't bother getting it because it's unnecessary for most dev jobs and I doubt it's actively enforced unless there's an incident that resulted in loss of life.


Before the pandemic uprooted in person gatherings, I was enjoying camaraderie via IEEE meetings. Even though IEEE is technically focused on electrical engineering, I have found that almost all EE's can code, and that many of them transition into SDE's. This might be one potential avenue?


I was going to suggest the ACM (acm.org). Camaraderie at meetings and events, plus an incredible knowledge base for professional development.


If I understand correctly, then you are looking for a trade organization of software engineers? Maybe I can help you with that. Do you do this for the opportunity to share your skills or find the right specialist? Then (https://engre.co/) should help with this. To be honest, I did not use their services much on my own, but I communicated with those who did it. So take it to use. All the best!




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: