Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

This is one of the many reasons why the software industry should be utterly ashamed of itself.

In other industries, it is a matter of professional ethics that you should never perform bodges or quick fixes, even if the client demands it. Architects do not allow themselves to be bullied into scrimping on foundations. Engineers do not build unsound structures if the client demands it.

The fact that you'd need to say "it would not be professional" is proof that software development is not currently a profession. Qualified doctors and lawyers don't talk about professionalism much because it has been drilled into them during training and has become implicit in everything they do. Software failures can be every bit as costly and damaging as those in other industries; Usually our failures just cripple a business or leak confidential data, but we have killed people - http://en.wikipedia.org/wiki/Therac-25

I'm not sure regulating software development is a great idea, but we need to do something.



Huh? Law firms have whole departments related to professional practice and it's a major topic among medics at conferences and elsewhere (you can take masters degrees in medical professional ethics).

However I think it misses the point. Doctors will frequently give options which are not ideal. Patients are offered choices - do you want the surgery (which has risks) or would you like to try the drugs (which are less likely to work and have side effects, but there is less risk and the patient may just not want surgery) or do nothing (which will achieve nothing but the patient may not like the other options and wish to live with the condition).

Similarly lawyers will frequently tell clients they shouldn't follow a course of action (a plea, filing a libel claim) to be over ruled.

Being professional is providing all the information and giving the person the choice and then doing the best job you can based on their decision, it's not about some absolute right or wrong.


Yep, doctors have been complicit in creating the United States' for-profit healthcare system. If they live by a code of ethics that says "first, do no harm" then an objective outside observer would say they've not only failed miserably, they've actively worked to harm people who need medical care.


This isn't political or profit motivated, I'm not in the US. I'm thinking of doctors in the UK where profit and costs are generally not the primary concern.

I'm specifically thinking of a case a friend was talking about. A woman presented with a certain condition and said she didn't want surgery or drugs. The friend had to explain the options and that medically most effective interventions tend to fall into one of those categories but living with the condition was also an option.

I don't know what the woman decided but the "professional" course of action wasn't about efficacy or cure, it's about understanding that there are needs beyond those which are "technically" best.


Quite arguably the most highly regarded professional industry we have, medicine, regularly does quick fixes. Paramedics and ER doctors regularly do "quick fixes" that will have to undone later. Their goal is oten to keep you alive long enough so that the right thing can later happen. Because once your dead, it's a lot harder to do the right thing by you.

I've also seen similar things done by civil engineers with respect to transportation. Adding these bikes lanes isn't perfect, but until we get the new trail built it will be the best way for bikers to get from A to B. This just seems commonplace.

Likewise, if the client is needing to get a new auditing system in place to comply with some gov't regulation, and you're saying, "We need to use IoC containers here... I don't care if that means the client will be shut down, not doing this means I will have to refactor a big chunk of the code in the next release and I'm not doing it" seems a bit absurd to me.

It seems like being a professional IS about understanding costs and making tradeoffs.


That's not a good analogy, since doctors don't generally "forget" patients that the paramedics bring in. The situation for many developers is, first aid is all that you're gonna get no matter what the injury, good luck.


>It seems like being a professional IS about understanding costs and making tradeoffs.

This is the core essence of it. Professionalism is communicating and offering transparency, while adapting to, essentially, the real world.

When I hear the "give me an unmoving specification and I yield to no change" crowd, I envision them essentially as technicians.


In areas that aren't as life-threatening as, say, structural integrity of buildings, non-software engineers cut plenty of corners too. Much of the "cheap plastic crap" you see on a Walmart shelf was designed by an engineer (or at least its manufacturing process was), often deliberately taking shortcuts that reduce quality and reliability to keep price down, because that's seen as an acceptable tradeoff in some markets.

Heck, even in areas where there are life-threatening issues involved, engineers often only "do it right" on the few things that are either mandated or seem particularly likely to cause serious injury that'd leave them liable. The cookie-cutter McMansions you see probably aren't going to spontaneously collapse on their occupants, but they aren't going to last 100 years with minimal maintenance either, because a lot of corners were cut compared to what "doing it right" would've looked like.


It makes as much sense to discuss the professional ethics of the "software industry" as it does to discuss the professional ethics of the writing industry or the mathematics industry.

Lawyers and sofers, of course, are in the writing industry. That doesn't imply that you should follow your state bar association's code of ethics or the Tanakh when you write a shopping list, especially if you aren't actually a lawyer or Jewish. Ad copywriters, screenwriters, and administrative assistants are also in the writing industry.

As for the mathematics industry, it includes carpenters, mechanical engineers, ath professors, and cryptologists.

Mathematical failures and writing failures can be every bit as costly and damaging as bridge failures. (Mathematics failures can cause bridge failures.) Here in Argentina, the abortion law accidentally forbids abortion in the case of rape unless the rape victim is mentally disabled, apparently due to a missing comma, and some judges who were looking for any possible excuse to punish abortionists, obviously.

Software development should never be a profession. There are certainly professions that need to do software development, such as embedded control systems engineering, like what failed on Therac-25. But regulating software development makes as much sense as regulating the practice of literacy.


It's not unprofessional to make a compromise in order to meet a short term practical goal. It is highly dependent on the context and the type of short cut taken, but some quick fixes are simply the most pragmatic option.

Great engineers, even in other fields, aim for the best results using constrained resources. Compromise is a key skill.


architects also have every line and inch of their work inspected by people who get paid to find flaws.

engineers would get sued into infinity if they built unsound structures.

it's a real slippery slope into pretentiousness, when as a profession there's no actual minimum code or governing authority.


>but we have killed people - http://en.wikipedia.org/wiki/Therac-25

Are you working on a radiation dosing machine? If you are (or you work on aircraft control systems or nuclear power plant safety systems, etc), then a completely different set of requirements and processes apply. If not, however, it's corrupting to bring such examples up in the context of someone making some trivial tool.

>Qualified doctors and lawyers don't talk about professionalism much because it has been drilled into them during training and has become implicit in everything they do

Doctors often essentially wing it: They have to think on their feet and act quickly, and often apply essentially "hacks" where the inputs are not all known (many uses of drugs were essentially discovered by doctors who prescribed it for unrelated conditions, eventually leading it to be tested and actually certified for that purpose). Architects regularly have to adapt plan to new conditions, quickly.

Though of course what an architect does is far more structurally fixed than software -- again the analogy falls apart.




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

Search: