Live data from Hacker News

On Being Indispensable

sofuckingagile.com

161–170 of 296 posts

Re: On Being Indispensable

#161

Earlier quoted context omitted.

That sounds to me like an invitation to negotiate ;) Option A) You truly are indispensable and critical to the project, and soon you're going to be their best-paid employee. Option B) They will now find ways to make you dispensable. And then you'll qualify for that promotion.

It’s not about “I’m indispensable pay me more”. It’s about “I don’t want to have 1 year of experience 10 times”. I always want to have the optionality to change jobs . Things change. Culture changes.

I've heard this "one year of experience 10 times" phrase before. It seems to mean different things in different contexts to different people. Can you explain what it means to you and the implications?

Re: On Being Indispensable

#162
post #27

The first thing to remember is – no one is indispensable. If you get hit by a bus tomorrow the company will go on without you. People may have a bit of trouble at first, but new processes will develop and new people will gain expertise just as you have now. Heck the company might be better off in the long run without knowledge bottlenecks. Second, being indispensable doesn't do a whole lot for job security. If the co…

This is something I wish I'd understood earlier in my career. Your company doesn't care about you, nor should you expect them to. You might give 110% and be a well-regarded model employee. But I guarantee the day after you leave they'll advertise your position and replace you.

I’ve gotten laid off twice despite department VPs two levels up trying to keep me.

The second time I realized that there is no point in trusting in anything related to my relationship with the company.

It doesn’t matter how good you are when the people making decisions either don’t know or don’t care. Eventually you become inconvenient in some way and you get removed.

Re: On Being Indispensable

#163

I write at a fairly "advanced" level. My code is well-structured, incredibly well-documented, and a blue-assed bitch to grok. It's not "lowest common denominator" code for junior devs. It's usually a hideous bouillabaisse of techniques, ranging from patterns that were around before I started (over 30 years ago), to ones that the language just began supporting, a few months ago. It also works pretty well. I'm putting…

If you’re going to practice coding like some master craftsman, employing techniques that took years to hone and where every carefully selected pattern, though inscrutable to an untrained eye, carries the thumbprint of an artist at the height of his power…

Well, number one congratulations to you on finding a patron willing to fund such fine and intricate work. I hope they appreciate their good fortune in having lucked into getting such an artist to work on their project.

But number two, how do you plan on this model being sustained into the future? Have you taken on an apprentice to whom you can pass on the ancient wisdom to which you are privy and which only another equally enlightened ‘cranky old prima donna’ could possibly be expected to grok?

Where are the next generation of ‘experienced and capable’ developers going to come from if you are off working solo in your cave for… twenty-five months at a time on your masterpieces?

And where did you acquire these unique and precious skills that are not available to young developers who are, you surmise as you peer out of the cave at everybody else, only capable of producing dependency-laden garbage? Did you trek to the top of a mountain and study at the feet of the ancient wise ones?

Or did you just write a whole bunch of code, and pick some stuff up along the way?

As you sit in the corner and whittle away at your masterwork, combining thirty year old patterns with the latest language features, I wonder what gives you such supreme certainty that your mastery of your craft is such that you are creating something far above the standard others could achieve?

Because, speaking as someone who works on large team development projects, I can tell you there is nothing in the world of development that scares me more than a developer who says ‘I know this code’s hard to grok but trust me it’s really beautifully engineered’.

Re: On Being Indispensable

#164
post #55

Earlier quoted context omitted.

The indispensable head of QA at my company died of a heart attack after working 100 hour weeks for years, they did not replace him.

A one sentence horror story. How much of his life was missed for things the company could do without?

Probably about ~8% of his life.

Re: On Being Indispensable

#166
post #8

Earlier quoted context omitted.

There is something to be said for being indispensible for novel problems, instead of for known problems. Some of the worst behavior I've seen in both myself and others has come when you can hold your company hostage by refusing to do something. Even when you are using it for 'the greater good', that's not a good look and not a great feeling. You shouldn't have to go with the nuclear option to get something done, even…

Maybe companies need some kind of "Chaos Monkey" system [0] in place for regular employees. Not in "terminating" random employee's contracts, but a culture were regular, maybe even some kind of random transferals onto other projects, or onto internal work regularly happens. Everybody knows this and everybody should be prepared to a situation that tomorrow they are not working on the same problem they work on today. H…

I think this method talked about by another commenter here achieves a similar goal, but is more reasonable than chaos: https://news.ycombinator.com/item?id=30697309

Re: On Being Indispensable

#167
I always try to de dispensable. We have weekly KT. And we take turns in doing Ops. We also do KT for others roles. As a rough example, we have DBAs, but we make sure devs know how to do the basics of their work too. Whenever you do something someone else can't, assign someone else for next time immediately. Never do the same job twice. It seems faster do just do it, but it's not as soon as the third time happens.

But the real trick is test frameworks that give you rapid access to test all areas of the system with new code or inputs. So if the question is "what if?" The worst case answer, if I am not there, is "try it". N.B. You must be able to test performance impact. This is expensive, you need prod support systems you can hack at and put back to the original config quickly. The ability to restore any test system to a know state (even systems you don't know much about) is critical. So you can try stuff out and then leave it how it was.

In emergcies when there is no time to test. Experience matters. If you are answering "what if?" with "try it" people get experience. It seems faster to answer "what if?" with "I am sure that" but long run that results in two problems, knowledge silos, and a delay in answering until you are at work or awake. That can kill you, especially if you are expert in more than one thing.

If you want backup in a multinational company that runs 24/7 you need one person to answer any question in each timezone. If you can answer a question "immediately" but others can test the theory in 12 hours, that's often faster. You need sleep. In a small company you may not have 24 hours resources, but if the questions cost more than a wage in a foreign company, hire people. Even for day to day stuff this enables you to work around the clock. Get managers to do the math and presume answering any question or doing any task is never immediate, on average its >12 hours, because sleep.

It's also good to avoid doing what you know best (that's hard) but it's better to tell people how, than to do it. If you want to avoid questions, don't just tell them how, tell them why, and how you found out.

There is a social problem to deal with too. Often people think something is "not my job" deal with that early with collective ownership of the whole solution.

There is a problem of permission, sometime only DBAs can touch the database, work on that by giving confidence that others can do DBA work in test systems.

There is a real problem that some people try to be indispensable for their own job security. Fire such people early, or move them to new roles in the company early.

People are generally as smart. They will learn given learning opportunities. They will want to learn if the alternative is 12 hours of testing!

Re: On Being Indispensable

#168

Earlier quoted context omitted.

It’s not about “I’m indispensable pay me more”. It’s about “I don’t want to have 1 year of experience 10 times”. I always want to have the optionality to change jobs . Things change. Culture changes.

I've heard this "one year of experience 10 times" phrase before. It seems to mean different things in different contexts to different people. Can you explain what it means to you and the implications?

Real world example:

I started my second job in 1999 it was for a bill processing/printing company. Companies would send us data files via ftp, we would merge the files and create files in a format used by industrial printers and mail them out. Later on we were one of the early integrators with CheckFree that was the backend for most online bill payment services.

I wrote mostly processing programs in VB6, Perl and C++. I did some GUI programming with C++/MFC/COM (ask your parents).

Fast forward to 2008, the world had moved on. But I was still using VB6 (discontinued in 2001) and C++/MFC. My compensation was only $7K more in 2008 than it was in 2000. There were other people doing the new shiny while I maintained the old systems.

I learned my lesson. Over the next 10 years, I changed jobs 5 times and doubled my income - nothing to brag about. It was still about what entry level developers get as return offers in BigTech. I was laser focused on keeping my skillset in sync with the market.

By 2017 though, I realized my market value as an enterprise dev was going to plateau in 3 years and my youngest was graduating from college. I started pivoting to “cloud” and got into “application modernization” consulting - basically a fancy term for cloud app development and deployments.

I got my current job in consulting in about two years ago.

Re: On Being Indispensable

#169

"There was no career path. Sure my title changed, pay went up, but my day-to-day never changed." Sounds like a career to me. At least that's how most of them work.

Agreed. A lot of people seem to think that infinite growth is sustainable, even by a single person.

When I was last interviewing, I kept getting asked, "Where do you want to be in 5/10 years?"

When I answered that I wanted to be programming (the thing I was applying for) they all asked if I had no ambition.

I told them that I've already met my ambition. I've got the job I want, and I intend to keep it. I didn't want to be a manager, and I didn't want to do things other than programming.

Of course, it's impossible to do only that, but over 10 years later I'm still mainly programming as my day job. I'm not at a "dead end" in my career. I'm exactly where I wanted to be from the start.

Re: On Being Indispensable

#170

I lived the same life as described - ran with one product for a decade, from initial thought to acquisition, and was the center of knowledge. I had a different tactic to get out of it - documentation. Not just written, but I made a series of videos to take someone from having never heard about the problem space all the way up to how we solved, why we made our choices, how the current system works, and what our long-t…

Ugh, videos.

You were probably right to make them though. A lot of people seem to be as bad at reading as I am at listening to meetings.

Post reply on HN