> software is not a meritocracy [...] The politics are vicious [...] why that idiot is calling technical shots [...]? Because he played the game, and you didn't.
Dilbert-style ass-licking and treachery is one way to play the game; being indispensable because you solve unsolvable problems is another. It is, by definition, the hacker's way.
It's tricky indeed because it requires a healthy dose of insubordination. A healthy company is a company which can be operated by real, i.e. mostly average, people. Big companies are optimized not to depend on individual genius, although they sometimes pathetically pretend the opposite. If you want to impose your better but non-standard solutions, you'll have to build them stealthy, them shove them down the middle management's throat when they painted themselves in a corner with the standard ones. Your way _might_ solve the problem, and it _will_ get you disliked by anal-retentive and insecure managers; move away from them, or make sure that you become indispensable faster than you become irritating to them. If you pull it off, they'll help you move away from them anyway.
"being indispensable because you solve unsolvable problems is another. It is, by definition, the hacker's way."
Those problems are 'near' insolvable often because clueless people were in charge making decisions they shouldn't have been allowed to make. By rescuing orgs like that, you run the real risk of being relegated to perpetual clean up guy, and you bolster the decisions.
Rough example: System X was built so badly because of bad directives, that it's taking 3 hours for a report, and you need 10 reports per day, but you can only do 8 (8x3=24 hours). Every current employee and 2 outside consultants all say "this can't be fixed", not because it can not under any circumstance be fixed, but the cost/benefit doesn't even come close - it's a crappy bandage at best.
You, being "indispensable super dev" work overtime for 3 weeks to 'fix' things, and reports are now 15 minutes (like they should have been). Great - you just 'solved the unsolvable'. Whoop. You've perpetuated the bad decision making process, and it will be months or years before there can be real change in the org now.
Being 'indispensable' also usually means you're tied to crap projects and will never get moved out of that department/division in an upward capacity - you'll have to quit that company to get any real advancement.
> By rescuing orgs like that, you run the real risk of being relegated to perpetual clean up guy
You're right, it's a serious risk and you have to address it. Again, being a good, "straight A student" who does what he's told when and where he's told will harm you. You have to know to be bad at what you don't want to do, and at doing stuff a way you consider broken. There's a delicate balance to find between being recognized as valuable, remaining manageable, and not being threaded on. You need to be bad enough that people will try to avoid giving you that sort of shlep in the future, but it must not come off as insulting, and it must not be mistaken for incompetence.
The key point to keep in mind that dumb submission might save you a lot of flak, but will get you neither consideration from anyone, nor better work conditions. Know when to break the rules, and how much breaking you can get away with. You can't hack software in a company if you can't hack the company itself.
"being indispensable because you solve unsolvable problems is another."
More likely, in most non-technical companies, indispensable IT people are good people to replace at the earliest opportunity because they are "non-core" and could become problematic later. Non-technical companies want good, replaceable cogs using technology that are supported by many consulting companies.
Dilbert-style ass-licking and treachery is one way to play the game
That's not what I'm advocating. You can get ahead without being sycophantic and treacherous, but you also need to know that other people will be, and you need to do whatever it takes to get enough credibility to defend yourself.
Acquire credibility. This doesn't mean "kiss ass" or "screw the other guy". That shit blows up as often as it works. It means that your job, when you start a new job, is to figure out what makes some people credible and others not, and either (a) to do what is required to be in the first set, or (b) to leave. I prefer option (b) over being slimy and sycophantic.
being indispensable because you solve unsolvable problems is another.
No one is indispensable. No one. Never forget that. I've seen companies fire their best people, losing millions of dollars, over inane political bullshit. Ego trumps money, which is just one way of keeping score to most people. Some people are more painful to part with than others, but there is no such thing as an irreplaceable employee.
> [being sycophantic and treacherous] is not what I'm advocating.
Indeed; I was just outlining a third option, between dumb submission and preparedness for job hopping.
> No one is indispensable. No one.
Replace "being indispensable" with "being perceived by your hierarchy as indispensable". Which, as you outline, can be two very different things, usually to the detriment of the delusional company.
Dilbert-style ass-licking and treachery is one way to play the game; being indispensable because you solve unsolvable problems is another. It is, by definition, the hacker's way.
It's tricky indeed because it requires a healthy dose of insubordination. A healthy company is a company which can be operated by real, i.e. mostly average, people. Big companies are optimized not to depend on individual genius, although they sometimes pathetically pretend the opposite. If you want to impose your better but non-standard solutions, you'll have to build them stealthy, them shove them down the middle management's throat when they painted themselves in a corner with the standard ones. Your way _might_ solve the problem, and it _will_ get you disliked by anal-retentive and insecure managers; move away from them, or make sure that you become indispensable faster than you become irritating to them. If you pull it off, they'll help you move away from them anyway.