Are Quirky Developers Brilliant Or Dangerous?
jammag writes "Most developers have worked with a dude like Josh, who's so brilliant the management fawns over him even as he takes a dump in the lobby flowerpot. Eric Spiegel tells of one such Josh, who wears T-shirts with offensive slogans, insults female co-workers and, when asked about documentation, smirks, "What documentation?' Sure, he was whipsmart and could churn out code that saved the company millions, but can we please stop enabling these people?"
Lack of documentation only chains you more to a developer. It makes it that much harder for someone else to maintain the code base.
When kids are recognized as being highly intelligent and gifted, parents, extended family, and teachers go out of their to coddle them. To treat them as special. To give them far greater leniency and independence than kids with normal intelligence.
Is it any shock that these kids grow up to think the rules don't apply to them?
If someone says he and his monkey have nothing to hide, they almost certainly do.
Shows like 'House' glorify it and apparently make people think it is okay to be an asshole as long as you get the job done.
It isn't?
I would say for every "freak" like this there must be a thousand+ that can code as well and are great to work with. This is just a egregious stereotype that would be quite hard to find in most modern Dev shops.
I have been doing SW dev for a living for about 15 years. Most of it large scale teams. I never saw anyone remotely close to this description and I have worked with some brilliant people. The best were humble, normal down to earth people. There has been a touch of arrogance, by some, but nothing like this.
I don't think the described person would last a week in the environments I work in.
Only in a small shop run by an idiot who won't pay for quality developers that are both talented and decent to work with, would you get this kind of freak and any dependency on him.
In my continued and repeated experience, the real geniuses aren't arseholes. They may be socially inept, but they aren't contemptuous about it.
Paul Graham talks about this in How to start a startup:
http://rocknerd.co.uk
They should be recognized as douchebags and fired on the spot.
Sounds like you want him fired because you don't get along with him. Perhaps you're jealous of his ability, such as it is? You needn't be--a good coder who can work with people is generally far more useful than a great one who can't.
Proper management and planning means you don't need a Josh on your team.
Proper planning means you'll anticipate every eventuality and be ready for it, which is of course impossible given that outside factors are basically random.
The guy should have been fired before he was ever allowed to become so integral to their solutions that getting rid of him would mean pain for the group.
You're confusing two issues here. He should clearly not have been allowed to become so integral to a sustainable solution, since he fucked up any hope of that. Firing him is one way to keep him from becoming integral to long-term solutions.
You might just as well advocate firing any manager who lets a Josh become involved in long-term projects. That would be just as correct. Clearly there are things Josh shouldn't be doing. A good manager will see that.
Actually, I like the idea of keeping Josh around just in order to test new managers. If they can't figure out how to use him effectively, fire them. He could be a truly invaluable resource to the company even if not a single piece of his code ever gets executed.
"The biggest problem with communication is the illusion that it has taken place."