1. Am I doing something that's worth doing?
2. Am I having to deliberately build the wrong thing (legacy reasons, etc.)?
3. Do I have the power to fix things?
I think that part of the acuity of the problem is that we don't really get to lie to ourselves about what we do. The computer doesn't care about any white lies--so, if we want it to do X, Y, or Z, we program that. And if we are told that the product we're working on does W, or !X, well, that's clearly wrong. That in turn leads to dissonance, and that gets at you over time.Part of the problem with 2 is that there is usually a sound business reason (i.e., customer wants it that way) which forces our hand. Part of the problem with 3 is that it can take enormous effort, resolve, and ultimately conflict to get at the root of what's broken and fix it--and in some cases, such as launching a new product, you can do everything technically correct and still fail.
How long until I have to integrate with their code? Refactor their code? Be managed by one of the PMs that allowed such repulsive work to be produced? Be forced to buddy code with someone who conned their way into their job to begin with?
And then sitting atop all that -- the realization that I would leave for a community of more solid engineers, if not for the fact that I will have to swim through an army of recruiters/HR reps who are just as bad as the con-artists around me.
Business people in the IT industry seem to have very sharp teeth but are always sinking them into the wrong targets, are skeptical of all the wrong people. I wonder why that is. I have a master's degree in a technical discipline and have actually been told to my face by an HR rep that my "coding skills aren't strong enough" because I didn't know a particular API that their company uses.
It's an awfully confused & disrespectful industry, full of phonies.
Also, it seems as though every time I find a company that is competently managed and an otherwise decent place to work, it gets purchased and course is immediately altered to a controlled descent into terrain, if not an immediate disintegration.
Developers might not jibe well with unions, but we could at least have some form of professional standards body willing to certify, decertify, and rate employers on their adherence to the practices that we find important.
I don't particularly feel the need to raise my pay by artificially limiting the number of developers on the job market, but I would like to stop the race to the bottom wherein each corporate employer of developers seems to act like a bigger asshat than the previous one. Do you think that if any employer wants to have us re-enter every line of our resumes into their custom web form and then dump the results into an automatic filter looking for keywords, we simply agree to not do that? Or agree not to work for an employer that won't spend anything on relevant books or CE tuition? Or blacklist employers that advertise 40 hour workweeks, but apply pressure to work more?
And then, you'd be forced to write bad software (or write software badly), or be decertified.
Of course, if you have the same three worries, your real major worry should be whether you can get a better job before you burn out. And that leads to a corollary worry about whether companies that try to provide a healthy, sane work environment have a competitive disadvantage versus companies that are dysfunctional. And that makes me worry about whether I even want to live on this planet any more.
So I guess my 3 are these:
1. Is this as good as it gets?
2. Can anything that's better endure?
3. Would starting over somewhere else improve anything?
I also thought about your 'dysfunctional == competitive advantage' question. I watched an hour long talk by John Wooden [it's on netflix streaming] about his success pyramid. It seemed quite sane, and obviously he was quite successful. So no, I don't think dysfunctional companies would have an advantage. (They might be equal, though).
The economics of software certainly are a bitch (can copy for free, obsolete upon release), although SAAS certainly changes things. And speaking of economics, this may cheer you up or depress you more: http://knowmore.washingtonpost.com/2014/02/10/the-long-agoni...
That's median income for men in the USA. Not because I'm sexist, but because posting household income is quite misleading - why do you think government economists use it all the time.
I must admit that I am somewhat curious to see how the IRS deals with planetary emigrants. If you live on Mars, is breathable air considered income?
:P
:P