

Are Cocky Developers Worth It? - edw519
http://itmanagement.earthweb.com/features/article.php/3771746/Are+Cocky+Developers+Worth+It?.htm

======
menloparkbum
I can't stand articles like this. Not because they don't impart any wisdom,
but because they sound so phony and contrived. If you are going to write
fiction, at least get your archetypes right. Guys writing memory management
code on windows are 50 year olds with giant beards, not cocky youngsters who
use the phrase "mad skillz." The mad skillz guys are the ruby programmers who
believe the apex of programming is building a "domain specific language."

~~~
snprbob86
Yes, this article is contrived and the archetypes are a bit skewed, but it
closes on an interesting point.

I, myself, am a cocky developer. Additionally, my technical brain is better
connected to my mouth and works far faster than my social brain. Often, my
comments are misconstrued as attacks and it has significantly weakened my
ability to impact decision makers.

I am however, well aware that I have problems. I aggressively seek out
feedback and encourage those who provide it to "give it to my straight". Via
this process, I have significantly improved my communication skills and
developed some political tact.

This brings my to my next point: cocky people like to be right, but are well
aware when they are wrong. If they are making statements which appear to be ad
hominem attacks, they probably aren't doing it intentionally, or they don't
mean any harm. So just mirror their behavior, be honest, be direct, tell them
that their personality is hurting team moral, and suggest they try to improve
themselves. Then, agree upon personal commitments of GROWTH AND IMPROVEMENT
not instantaneous performance, which dictate their performance rewards.

Hell, I had one manager who requested to review all emails I sent to
customers. My communication skills are many fold better for it.

Follow that plan, and I guarantee you can turn most any cocky coder into a
productive team member. If you're lucky, that team member will even
significantly educate the rest of the team and encourage them to do the same.

This is what people managers are supposed to do...

~~~
bsaunder
I've also found the following strategies helpful:

Be less vocal. You might be right in your opinion on some matter, but, you
don't _always_ need to express it. Some things are okay to be ... less than
ideal. Let people make their own mistakes (just try to contain them to less
important system areas). Teach rather than debate.

When you do have a strong opinion, try to phrase your comments as less
oppressive suggestions. If over time people ignore your suggestions and it's a
critical system component, only then become more assertive and vocal. People
hate being told what to do. But if you plant a seed, they are much more open
to modifying their view in the long run, after they have digested your
reasoning.

Everyone likes to do things their own way. As long a business goals are being
efficiently achieved, don't mess with things. It seems better to guide people
than direct them.

------
jwilliams
Well, from the point of view that generally people really want to work with
people they like and respect... no.

It's bad enough in small teams, but in large teams people like this can be
really destructive.

~~~
cookiecaper
I worked at a place where the lead developer had this problem. All of the
other programmers were new, and he'd been there over a year, so I think we
were all willing to learn and listen ... but he did not accept any feedback at
all and was determined to dictate, not cooperate. There's a difference between
engineers and monkeys, and the lead clearly wanted monkeys; little coding
robots who didn't question his strategies or methods, didn't make suggestions,
and just obediently churned out what they were told without providing any
input into design or architecture. To boot, he was absolutely unforgiving if
your style didn't match his (for instance, I usually put the first property of
a CSS rule on the same line as the opening bracket, and he doesn't ... and he
told the owner that I was incompetent for this and similar infractions), but
there were no formal style guidelines; you had to look at his code and try
your best to format it exactly, or suffer embarassment and wrath.

The whole thing was rather demoralizing and I left in the first month, after
quickly learning not to contribute if I was intent on keeping my job for even
that long. The other skilled developers left shortly thereafter. He now works
mostly with designers-turned-developers and purposely hires less-competent
developers so that he doesn't have to field criticism.

It's a little disappointing still, because there's a whole group of people who
believe that myself and a group of talented ex-colleagues are incompetent
because of this person's [intentional and petty] mischaracterizations and
immaturity, but I'm trying to be over it.

I guess that's only tangentially apropos, but cocky developers are no fun,
especially when they're in powerful positions.

~~~
thaumaturgy
Whereas I come at this from the opposite perspective.

If you're absolutely certain you're correct, it's natural to want to limit the
amount of discussion, feedback, and argument you have to deal with. You've
already made up your mind, and that's that, and it's unlikely that a
convincing enough argument exists that would cause you to change your mind.

The catch is, you have to be really, really good at what you do in order to
adopt this stance, otherwise it's just sheer overbearing arrogance.

That's where the conflict comes in. Most people, frankly, aren't that stellar
at what they do. A lot of folks kinda muddle along, and often change their
opinions about accepted practices whenever they read something that takes
precedence over their experience. If you doubt this, I think you need only to
read some of the security-related threads here on News.YC, or just about any
thread on OpenBSD-misc that incurs the wrath of one of the developers.

Furthermore, if he was the team lead, and he established a particular
syntactic convention -- for whatever reason -- and you didn't follow it, then
-- and I say this as gently as I can -- you weren't doing your job. That
doesn't mean you were incompetent, and I'm not looking to insult you. But,
basically, you weren't following his rules, and he was within his authority to
establish those rules. It sucks that his rules weren't written out, but on the
other hand, it's really not all that hard to look at some code and then format
yours similarly. (Especially with CSS.)

Then apparently the lead developer started hiring what you call monkeys. I
call them trainable.

See, my grandfather had a similar problem. He was one of the best RF and cable
TV distributions systems guys in the Bay Area up until he died a few years
back. He was an idiotic businessman, but when he was dealing with the
technology, he simply was one of the best. (I could bore you to tears with
stories.)

He absolutely refused ever to hire anybody else with cable TV experience. He
hated dealing with them, because they'd been taught all of these bad habits
that he would first have to un-teach before he could even begin to get them to
do things his way -- the right way. Instead, he hired people with no
experience at all, and they naturally just followed his lead, along with a
little coaching.

It isn't quite possible to do just that in software development, because I
think software development requires an entirely different kind of thought
process from just about anything else. But, I can see the appeal to hiring
inexperienced developers, and making them do it your way right from the
beginning.

~~~
sofal
_The catch is, you have to be really, really good at what you do in order to
adopt this stance, otherwise it's just sheer overbearing arrogance._

It is sheer overbearing arrogance no matter how good you are at what you do.

Arrogance is not a characteristic reserved only for the less competent, and it
is never a positive trait in even the most competent.

The only difference between a competent jerk and an incompetent jerk is that
it may be worth your while to make an effort to look past the less-than-
desirable qualities of the competent jerk in order to take advantage of the
good advice he or she may have. This does not mean that competence excuses a
jerk from the responsibility to learn how to not be a jerk.

I think what you may be trying to say is that it's reasonable to tolerate an
arrogant jerk if their skills truly tip the scales in their favor. That's
fine, but I'm saying that everyone, including the most skilled jerk, has
something to gain from purging arrogance from their personality.

~~~
thaumaturgy
I do agree with you actually; several years back, I was on one of the larger
INTJ mailing lists, and I got into a, uh, er, heated discussion in which I was
nearly alone in arguing that it was worthwhile for INTJ-types to tone down
their abrasiveness and perceived arrogance.

Interpersonal skills are always a great thing to have.

It's just that, among those that are really, really good at what they do, they
tend to adopt this attitude of arrogance, and like you say, the only time it
should maybe be tolerated is if they're really that good.

------
MJConway
Nobody is so good as to make up for the destruction of team cohesiveness and
morale. Seriously. Nobody. No, not even you.

Everyone is allowed a gaffe or two. Everyone needs to get slightly thicker
skins. Life is a contact sport.

That said, if you're a jerk on my team and you are unwilling or unable to
change your jerkish ways after my best attempts at coaching, I will eject you
from the team.

Simple.

------
dazzawazza
IMO they are not worth it. The cost of tolerating the cocky developer is the
productivity of the surrounding team.

In reality very few developers exhibit these borderline autistic traits that
seem to result in complete lack of social skills and they are NEVER worth
working with.

When the team suffers the product suffers.

------
pavelludiq
Im petty sure House MD was a show about a cocky programmer, but nobody could
get the jokes, so they changed it to a medical drama.

------
rglovejoy
No they are most definitely _not_ worth the hassle. Most of the cocky types I
have worked with had a lot of attitude but very little ability or talent. They
were very good at office politics, though.

------
jacktasia
Interesting to read.

...but it seemed to me that all the manager really did was actually tell the
cocky coder to not be a d-bag and he listened...aren't people supposed to
listen to their boss? / Why didn't he just do this in the first place when he
first noticed the attitude?

~~~
bestes
_...aren't people supposed to listen to their boss?_

You're kidding, right? Being a manager of really smart people that can easily
move jobs is _not_ easy.

~~~
kcy
I agree, this is a really difficult balance. In the real world I think Tyler
would have said "Ok, I'll try and be nicer to those other folks" during the
one-on-one meeting then returned to his original behavior w/in a matter of
days or weeks.

So, do you compromise the technical strength of the team by firing Tyler or do
you compromise team unity by keeping him?

My thought is that this is not a simple one way or the other answer. The post
took the middle ground of talking with Tyler, which I don't think would really
work out the way he wrote most of the time. Is there something else he could
have said?

If you've had several conversations and this behavior is just the way it's
going to be then what are the boundary conditions around when it's best to
keep Tyler around vs firing him?

~~~
bestes
I was a manager for many year and ran into this situation. I tried many
techniques and found that:

1) My company really likes people to get along. It was very difficult to
promote and pay my star developer more. 2) It did have a huge impact on the
team. More than one person actually quit in a direct response to the less-
than-subtle criticisms. 3) Having a group of mediocre to good programmers
means that you simply _cannot do_ certain things. The memory management issue
was a good example in the article. It is a slippery slope and one I'm simply
not interested in following to the bottom.

I kept (and am now trying to recruit for my startup!) this star simply because
truly great programmers are hard to find and once I found one, I would do
almost anything to keep them.

To answer the actual question, though, yes I talked with this person often,
sent them to classes, read books and sought advice on how to teach them better
people skills.

------
MaysonL
Quick summary: technical skills != people skills.

(But: people skills are learnable, sometimes).

~~~
bnolan
Fuck that. My friends are the smartest coders I know, and the best people to
go drinking with, meeting people, mountain biking - basically the coolest
people in the world.

~~~
qwph
It must be great being you.

~~~
jamongkad
I lold at this one.

------
sofal
The cocky guy in the story sounds like one of those extreme "we should code it
all in assembly" types. I'm not usually very impressed with the pragmatism
(and therefore the technical decisions) of people like that. Of course I don't
know the context here.

------
andreyf
Are cocky developers worth it? Depends how cocky and how good they are.

------
iamdave
Great article, lots of good points for personnel management.

~~~
jamongkad
You're kidding right?

~~~
iamdave
No, I'm not. I'm just appreciating this article from a completely different
looking glass.

