5 ms·
After seeing the amount of shoddy, insecure, dangerous code that gets shipped into production at a supposedly high-quality code shop, I've become increasingly o
by jknoepfler 10y ago
After seeing the amount of shoddy, insecure, dangerous code that gets shipped into production at a supposedly high-quality code shop, I've become increasingly of a mind that software engineers need to professionalize. I try to project a professional ethic in the workplace of not shipping broken or harmful shit, which extends to refusing to cut corners on testing, automation, and maintainability.
I think it's important that I exercise professional integrity because I personally have the luxury of being able to afford being fired. If I lose my job because I refuse to do something, nothing bad will happen to me:
- I am a citizen in my country of residence (can't lose green card / etc.)
- I have a deep financial safety net
- I live in an area with high demand for my skills (if I spent more than a month looking for a job I would be shocked).
Not everyone is in this position. I respect that, so I'd like to use my privilege to make it more of a professional norm.
I think not shipping shit extends to everything from the obviously immoral to code that will hurt the customer (or their customers) because it is insecure or unmaintainable.
- nullc 10y agohttps://www.acm.org/about-acm/acm-code-of-ethics-and-professional-conduct https://www.acm.org/about-acm/acm-code-of-ethics-and-profess...
- raphman 10y agoThe same ACM that didn't care about a well-known security hole at a contractor's site - affecting thousands of scientists - for several years [1]? The same ACM that calls verbatim plagiarism "sloppy scholarship" [2]? The same ACM that doesn't seem to have an official position on excessive state surveillance [3]? I am no longer a member. [1] https://raphaelwimmer.wordpress.com/2011/09/07/sheridan-security/ https://raphaelwimmer.wordpress.com/2011/09/07/sheridan-secu... [2] https://raphaelwimmer.wordpress.com/2016/12/20/acm-ethics-plagiarism/ https://raphaelwimmer.wordpress.com/2016/12/20/acm-ethics-pl... [3] http://www.acm.org/public-policy/public-policy-statements http://www.acm.org/public-policy/public-policy-statements (in contrast, the German Chapter of the ACM / Gesellschaft for Informatik has condemned excessive surveillance multiple times in the past)
- jknoepfler 10y agoDo you disagree with the content of the standards posted, or with the professional ethos of the ACM? There's a substantive distinction to be made there.
- raphman 10y agoI like the Code of Ethics. I have trouble with ACM's handling of ethical issues. With my comment I more or less wanted to point out the difference between both but should have elaborated on this.
- nullc 10y agoACM could be satan incarnate and still give useful advice on professional ethics for software engineers. AFAICT no link given in the comments here so far comes anywhere close to the ACM page in terms of providing broad but concrete advice.
- raphman 10y agoIndeed. I should have clarified this in my comment instead of just ranting. The ACM Code of Ethics is important. It was one of the reasons I joined ACM. However, (IMHO) ACM [1] has not necessarily practiced what it preaches in the past. Given that much of the discussion in this thread is about unions and professional organizations, I wanted to clarify that ACM might not be the best organization to join if you are concerned about ethics. [1] I'm talking about its administration and committees, not its members. There are quite a few highly ethical and motivated people in the SIGs.
- ebiester 10y agoHere's the question, though. By professionalization, does that mean that only members who have a CS degree can get a job? Does that mean that we have to carry insurance? What does that mean for access to compilers -- is it illegal for anyone but a certified professional to put up a website? How big does it have to be before it has to have certified developers?
- emp_zealoth 10y agoFor starters we could do without total lack of responsibility. Real engineers can be sued and loose if they signed off on something In software? Almost every EULA comes with "We assume no responsbility for anything, anywhere, ever"
- jknoepfler 10y agoAll good questions. What I have in mind in the short term is much more in line with the ACM doc linked below by nullc. The idea of a professional degree has crossed my mind. There's enough of a gap in knowledge and ability required to transition from writing static web content to writing high quality (maintainable, operationally sound, scaleable) enterprise backend code that it starts to look like a paralegal/lawyer, LPN vs. RN, etc. distinction. The difference is that the public has little interest in regulating engineers, but it does have an interest in regulating lawyers and nurses. I'm personally deeply suspicious of degrees. I'm returning to school to get a professional masters in CSCI, but the program explicitly requires work experience as a pre-requisite for entry (which seems like a no-brainer to me). It also has a high price, which is not something I would foist on the community. I don't think "programming" should ever be tied to professional institutions as such (much less academic computer science). It has strong roots in free, open-source, decentralized, hacker-minded culture, and I don't think we should ever give that up. So I guess I'm of two minds about the idea of a professional engineering degree. On the one hand it would help raise expectations about professionalism and accountability in software, which seem pitifully low right now, and on the other hand, it seems like a path no one in their right mind would want to go down.
- analog31 10y agoI suspect that if we wanted to require a formal degree pursuant to licensure for software development (not to mention installation and operation of computers and software), that degree doesn't exist today. The closest thing might be electrical engineering. We don't even know what computers or software would look like under such a scenario.
- jasonthevillain 10y ago> Not everyone is in this position. I respect that, so I'd like to use my privilege to make it more of a professional norm. Exactly. It's the job of senior and experienced developers to set the culture and transfer knowledge. Including: "We don't do that. Here's why."
- erikb 10y agoIf you lose your job because you are asked to do something illegal, can you sue? Do you know about that? If you can afford not having a job, maybe you can afford a lawyer. If it's possible and affordable I think doing that would help giving more power to people who can't easily afford to lose their jobs.
- contingencies 10y agoEstablished professions have unions and indeed entire libraries of case-law for this that are, at least by report in Australia, very highly effective.
- erikb 10y agoGood idea. Wishing that would be common in Programming as well.
- hobarrera 10y ago> If you lose your job because you are asked to do something illegal, can you sue? It all depends on what you can prove - which is the hardest part.
- erikb 10y agoThis is the second step though. There are lots of things you can't sue despite feeling you should, or they can sue you back for a much bigger payout.
- cm2187 10y agoYou assume that programmers are asked to ship shit code. I'd argue most shit code gets shipped by programmers who don't know any better.