The ACM Code of Ethics has no teeth, meaning CS isn't a profession; and even if the decision in question is so thoroughly self-destructive that the company goes under, there's plenty more companies to work-for in that case.
The ACM Code of Ethics has no teeth, meaning CS isn't a profession; and even if the decision in question is so thoroughly self-destructive that the company goes under, there's plenty more companies to work-for in that case.
Just letting your boss or colleague do whatever he/she wants is a terrible idea. Be polite, reasonable, and willing to accept defeat, even when you're in the right; but don't be a yes man. And for what reason? The authority isn't your's? Authority shouldn't be blindly followed. Authority means you make a final decision when consensus isn't reachable, not that you're beyond reproach.
I have no clue where you're coming from with that last statement. Because a code of ethics "with teeth" doesn't exist, we shouldn't adhere to one? That we have no responsibility to look after the best interests of the company, shareholders, and community? Everyone bears that responsibility. You're claiming CS isn't a profession, because there doesn't exist a board, bar, or licenses? It's just an unregulated profession.
"I shouldn't do X" logically follows from the conjunction of "I needn't do X" and "doing X has a lesser expected-value than not doing X".
> Everyone bears that responsibility. You're claiming CS isn't a profession, because there doesn't exist a board, bar, or licenses? It's just an unregulated profession.
An unregulated profession is no profession at all. That kind of holistic, broad-minded responsibility is levied nigh-solely by professional regulation and decision-authority.
(I say "nigh" only because there's probably some extraordinary and ridiculous circumstance that doesn't come to mind right now.)
As for why you shouldn't be a yes-man. I am an individual, I'm educated, skilled, and have two decades of experience and what I consider to be generally good judgement. I always attempt to give of my best and to do what is right for the best interest of the project and company/organisation. If that means pointing out facts which are wrong, ill-considered or counter to any prevailing group-think, I would do so every time. It might not always make me popular, and it might ruffle a few feathers, but to ignore problems and evade responsibility by silently going with the dictates of those above me or in the group would be a disservice to the project, the wider organisation and to myself. I refuse to be a spineless jellyfish merely to make life slightly easier for myself in the short term. I'd rather go home each day satisfied that I did the best I could despite the circumstances, than leave knowing I did mediocre or downright awful work when I could have done better.
Maybe I wouldn't be a good cultural fit in some places. But everyone in an organisation bears some level of individual responsibility, and I personally would prefer to work with people who can shoulder it, and show they care about their work by arguing their case well, rather than abrogating it and showing that they don't really care at all about what they do so long as they get paid. In my experience the output of the latter is typically mediocre at best, because they don't give a damn.
IMHO dont be afraid to take it with a grain of salt. don't expect to be rewarded for saying no. don't expect a light feather ruffling. don't expect light consequences. be prepared to get fired. be prepared to get demoted. be prepared to lose your health insurance. be prepared to change your industry. be prepared for the realities that most people face.
if you say no to something that really is important, then there will, the vast majority of the time, be major consequences. dont expect it to be easy. dont expect a reward. dont expect anyone to even understand or care why you are doing it. dont expect to be respected. dont expect anything. be prepared.
when you are living in poverty or are homeless, that no wont really mean much. only say no when you have the ground to stand on that can catch you when the inevitable smack in the face comes.
and dont feel ashamed if you have to say yes to survive once in a while. its actually what most people do. every day. even people you respect as heroes. sometimes especially the people you respect as heroes. when a really big no comes, there will be many people chanting it together, and many others behind them silently backing them up, all of whom had to say yes, in ways large and small, at some time or another, in the past, just to survive long enough to be together in that space, building that critical mass, and supporting each other.
Do you have a job where you simply do as you are told, like a private being shouted at by a drill sergeant, or do you have a career where your expertise and contributions have some significant value?
Work is full of compromises. No matter how hard you try, at some point you're going to end up giving advice or information to people which runs counter to what they would have preferred to hear. "No" is rather absolute. What would be more typical is suggesting that a course of action might be unwise, and suggesting possible alternatives along with the tradeoffs for each approach, i.e. criticise but in a constructive way. And let others decide which pros and cons are most important. You bring specific expertise and insight, and provide that to the group and decision makers, along with qualified recommendations, maybe very strong recommendations if the situation warranted it. Your recommendations and advice might well be ignored, but it's still important to make them in the first place so that they are at least known and considered.
You don't just live your life to satisfy your boss. You also have to live with yourself. Sometimes, for example, companies make very short-term decisions at the expense of their own longer-term viability and at the expense of their existing customers. Who internally acts as the voice of those customers and the future company if not you? If you didn't at least raise questionable design tradeoffs so that the consequences were well understood and informed decisions could be made, you are doing your employer a disservice (in my opinion). It doesn't matter what the ultimate decision is, but that you act professionally and provide all the necessary information for others to work with. If you get fired for trying to do your best for the company, you're well out of a bad company.
In a previous position (well over a decade ago, for a company which no longer exists), I was asked by my boss to do something which was both unethical and possibly illegal. Loyalty to your company and wanting to keep your job is one thing, but we all have lines we are unwilling to cross, and this crossed one of mine. I considered my position, and refused to have anything to do with it; I did not want to be remotely associated or culpable to any degree. In the meantime, I considered my future, and decided that I couldn't in good conscience continue to work for the company. I made my plans for the future, secured them, and I handed in my notice a short number of weeks later.
We all have a duty and personal choice to conduct ourselves ethically, even if that means taking it on the chin and finding another job. To ignore it is to implicitly condone it and the increase of suffering and evil in the world as a consequence. I do wonder how the subset of the employees of Uber, Facebook, Google etc. who are knowingly engaged in unethical and/or illegal work justify it to themselves.