

How to be an Indispensable Programmer - kennethchu
http://www.farbeyondprogramming.com/2010/07/41-how-to-be-an-indispensable-programmer

======
frossie
Weird, weird list. Smile? Be a friend? Eh? Is this a social club?

My list is a lot shorter: (a) write lots of good code out of personal
inclination (rather than being forced by code reviews or because you are being
nagged or whatever) and (b) be able to troubleshoot your way out of a paper
bag.

I really don't care if you smile at me or not.

~~~
tkahn6
_Is this a social club?_

No, but I would prefer not to work with a douche-bag.

However, if you're only referring to the strict subset of traits that make you
a good programmer (and nothing else), then yes I agree.

~~~
frossie
A person who doesn't smile, or isn't overly friendly is a douche-bag? I think
you have your definitions mixed up. Introverts, reserved people, naturally
taciturn people, super-shy people, people from cultures that don't show their
teeth at every opportunity - they are perfectly fine people and can be a joy,
a _joy_ to work with.

People are great to work with when the work just "flows" around them. Their
personalities are (mostly) orthogonal with that. It doesn't make them
assholes. Come to think of it, the assholes are more likely to smile. YMMV.

~~~
palish
_A person who doesn't smile, or isn't overly friendly is a douche-bag?_

Generally, yes.

It's human nature to be judgmental. You can disagree with it all you'd like,
but ignoring it will directly impact you in a negative way.

It's why I try to go out of my way to smile and ask someone about themselves
every time they come by to ask me a question / chat / whatever, even if I
don't feel like it.

Such positioning may seem fake, but I feel it's "fake" in the same way wearing
clothes is "fake". You can disagree with wearing clothes, but running around
without pants won't win you much respect.

~~~
frossie
Yeah sure, it might affect how much people like you. Unfortunately, when you
have to sit around a table and decide who has to be laid off, I am sorry to
say I have never known likeability to be a consideration. If someone is nice
you will feel worse about having to let them go, but you are never going to
get rid of your grumpy hero programmer to keep the slow-coding nice guy. I can
say this from experience.

The OP was about being indispensable; and as I said, the person who is
indispensable is the one the business can least afford to lose. There are
occasionally other considerations, but they are all done without reference to
most of the items on that list, at least from what I have seen.

~~~
palish
Good point.

------
jorangreef
Better to be a dispensable programmer. Teach others and share knowledge and
understanding and make the team as a whole "Built To Last"
([http://www.amazon.com/Built-Last-Successful-Visionary-
Compan...](http://www.amazon.com/Built-Last-Successful-Visionary-
Companies/dp/0887307396)).

------
k7d
You only have people you "can't lose" when the whole team is mediocre. If you
have at least couple great programmers they will usually have enough drive to
learn every aspect of the project. And they will be able to pick up anything
in days even without much knowledge sharing.

~~~
prodigal_erik
I've found it doesn't always work that way. For instance, we have a legacy
homebrew billing system that's a Lovecraftian nightmare of procedural PHP
batch pipelines. We're all eagerly looking forward to just replacing it
wholesale, but in the meantime nobody delves into it, partly to preserve our
sanity and partly because nobody wants to be marked as "the guy who knows it
best" and condemned to maintaining it. All the original developers on that
part of the system quit months or years ago, but we have the last of them on
retainer to recover it from its failures. _That's_ the guy we couldn't lose.

