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?"
why are the mutually exclusive?
I've never met one of these coders in real life. For that matter, I've never been with a company who's internal politics would even allow such a person to exist.
What cyberpunk novel does this hypothetical "Josh" live in?
It is by my will alone my thoughts acquire motion; it is by the juice of the coffee bean that the thoughts acquire speed
As an antisocial mindshare person, I resent this topic. Because perpetuation of my antisocial liberties is the precise reason I developed subject matter expertise in the first place.
If you need to cut, there's no tool as good as a sharp knife. If you need to turn a screw, a sharp knife probably isn't the right tool. If you have a guy who's a sharp knife, and you're using him to turn screws, maybe the problem isn't him. Maybe the problem is you.
if the author has such a problem with this guy, maybe he needs to be skilled enough to replace him
That's part of the problem. Having irreplaceable people on your staff is bad for business long term. If someone is laughing at you for asking for non-existent documentation that they should have written, they should be fired immediately. The cost to business if this guy were to leave will only get worse with time and probably already outweighs the savings of keeping him on.
Lesson, you are replaceable. If you are not replaceable, then you are too dangerous to have.
I see the glass as full with a FoS of 2.
The story ends there. "Josh" is no coding genius. He's a business genius. He understands that business nowadays is all about rent-seeking. Rent-seeking is looking for a parasitic niche from which you can milk the system with impunity, until the system collapses.
How could anyone learn any other lesson from the goings-on in Washington, D.C. and Wall St. nowadays?
Seastead this.
If your competitor hires this guy they might be able to outproduce you just long enough to put you out of business. Doing things right is important, but staying in business is the *most* important thing. (It's a gamble, like all of life, you roll the dice and take your chances.)
All ideas^H^H^H^H^Hprocesses in this post are Patent Pending. (as well as the process of patenting all postings)
Maybe there would be more documentation if you established reasonable deadlines.
Just sayin' sometimes there's another story.
"I only speak the truth"
Karma: null(Mostly affected by an unassigned variable)
Right. And that must be stopped. Because extraordinary results shouldn't result in extraordinary rewards. Genius developers who can solve problems in an hour which could take the rest of your team a month or more should get the same cubicles and be subject to the same strictures as everyone else.
Sorry, I'm not buying it. It's hard to compensate a quirky genius developer. You can pay them well (and usually have to), but that only goes so far -- they generally aren't like CEOs for whom money is the end rather than a means. Perks like an office rather than a cubicle are perfectly reasonable incentives, and so is "slack". If your genius developer doesn't document his code, a lesser developer can document it in far less time it would take any number of lesser developers to write and document it, or at least one of them isn't worth his salt.
Spiegel has rigged the question by choosing, embellishing, or inventing out of whole cloth a "quirky developer" who Spiegel claims caused most of the problems he solved and went beyond what any company could tolerate (open sexual harassment). But just because his probably-fictional "Josh" wasn't worth the trouble doesn't mean it's a good idea to treat your best developers like interchangable code-monkeys for whom following procedures is more important than brilliance.
A guy who mutters to himself while working is eccentric. A guy who insults his co-workers is an asshole. And a guy who smirks while informing others that documentation doesn't exist is just plain malicious.
Assholes should be kicked out of any team, because no matter how bright they are, they won't be able to compensate for the lowered productivity of everyone else who has to waste their time and energy to deal with their little power games. As an added bonus, it makes every other employee happy, thus making the world a bit better place. Profitable and morally right, firing assholes is a win-win situation. Even the asshole might benefit from the wake-up call.
Forget magic. Any technology distinguishable from divine power is insufficiently advanced.
Exactly. There's always two sides to a story like this. One reason documentation often gets missed is because "make it work and make it work NOW!" and "we forgot to tell you, it also needs to Z in addition to X and Y!" gets nice'd above documentation.
If we all had all the time we needed to do everything, the documentation would get done. But this is the real world and in the real world, IT management is definitely going to put functionality well above documentation on the importance scale.
My blog
If you can't replace a relatively inexpensive employee, you're one traffic accident away from being out of business entirely. Let your competitor take that risk. "It's a gamble, like all of life, you roll the dice and take your chances." The odds of your competition hiring the guy - through a noncompete clause - and him being the tipping point of sending you out of business? Miniscule. The odds of a daily accident, or family problems, or the employee just leaving for greener pastures? Enormous.
Sometimes, when you've spent the past 48-72 hours working to solve some crisis that some moron left and you have to clean up, yes.
You look like shit, smell about as bad, and have a cranky attitude to match.
But, shipping on time and avoiding a $250,000/day contract penalty can sometimes justify the hell (Ah, contracts with separate "code complete" and "QA Pass" dates.)
Some coders don't shower all the time because they haven't gone home.
In Liberty, Rene
You stop being a quirky genius soon as you declare yourself as one. Since then you're just a wannabe poser.
See that's why I'm NOT a quirky genius.
I have yet to encounter a situation where anyone is THIS good (or where every other employee is THAT bad). And if a business WAS in that situation? Better to put it out of its misery - it'll get killed off sooner or later, regardless.
I'm not sure why people feel a need to defend the "quirky" walking lawsuit that these "great" programmers are all about. Very few businesses need genius programmers in order to stay in business. And most of the time, these people keep your business one step away from being sued into an early grave - and they don't provide a good product. A good product isn't something that does things in really neat ways. It's a usable product, well documented, that does the job its designed for really well - and can be updated and maintained as necessary. None of these are true of any product worked on by the described programmer.
I have no interest in pretending that programmers need to wear ties to work and act like your average joe. However, being anti-social and incapable of writing a maintainable product? Not interested.
There are many excellent geniuses out there in the tech field that do what they're supposed to do. They document their work so that others can understand it. If they die or quit tomorrow, their company won't have to spend 2 years trying to figure out what they did. Getting a cheap geek to document these people holds its own high risk. What if the geek doesn't understand what they did? If this "genius" can't be bothered to document his own work, what makes you think they can be bothered to review someone else's documentation of their work? Mitigate your risk by paying more to hire a genius who won't put your company at risk of internal collapse.
I see the glass as full with a FoS of 2.
If there is no documentation, the answer to the question, "Is it ready?" is "No." It's likely that the PHB doesn't know enough about what you're doing to disagree with you and grab your raw code from the repository and use it. If you establish a precedent for being done quickly (without documentation) then you get caught in a vicious cycle of it being expected that you'll be done quickly. It's best when the system supports proper documentation, etc. but if not, sandbag your estimates to give yourself time to do the job right, or at least half right. Over time, your productivity will catch up when you can figure out last month's or last year's code more quickly for a new feature because you took time then to document what you were doing.
If you can't be replaced, you can't be promoted. Hope you like your current job.
*sigh* back to work...
People like Josh, on the other hand, should be fired on the spot.
I don't think so. They can just be recognised for what they are, and treated accordingly. Think of him as a fire extinguisher--a pain in the ass to clean up after, but from time to time invaluable. Sometimes you need a solution NOW, and you will have time to clean it up (or re-implement it more carefully) later. Perhaps your expectations for him were too high. Understand your resources and learn to use them appropriately.
"The biggest problem with communication is the illusion that it has taken place."
Except, cleanup (or re-implementation) never happens. What will happen is layer upon layer to work around bugs and problems. Because you can (almost) never justify to upper management that you need to reimplement something that works and the finish product is basically the same you started out with (with cleaner code, maybe).
Je ne parle pas francais.
Um no.
Because there are a lot of good people who can do the work and better and be a company player too. You are assuming that Josh's skills are irreplaceable. And that a good employee cannot do what he does. I am sorry, he is replaceable, and you can get a more professional guy to so the same job just as well, if not better because he is not so high on himself. I too have cleaned up messes after people like him. And let me tell you I have never seen any work by these guys that make me go wow this guy is my superior, in programming. Usually after a couple week I figure out the flow and I am just as productive as the guy was before, except people are willing to talk to me. Ask questions and raise problems that the other guy made them to afraid to mention.
If something is so important that you feel the need to post it on the internet... It probably isn't that important.
Yeah, I was all angsty in my 20's too. I had long frizzled hair and wore an army jacket with patches all over it, and hated the world and all the stupid morons in it.
I'm now in my 40's. I have a haircut, I'm sitting in an office cube wearing a polo shirt.
And I've got some news for you. It's *all* pointless. The end is the same for everybody. We're all worm food. Doesn't matter if you rage against the machine or oil its gears. In a hundred years, I promise you it won't matter one whit.
What does matter is what you do with the time your have. And I'll say this - I'm happier now at 40 with a nice job, nice house, nice car and a family I love dearly - however boring and polite it may be - than I *ever* was at 20 running around rebelling against everything mocking the stupid sheeple.
My advice would be to take whatever brilliance you may have and apply it to your own life, if you're able. Solve your own problems. Find whatever happiness you can. Because sitting around picking at your own wounds to keep them fresh doesn't do a single bit of good.
I have friends who never "sold out". They're miserable. Most are too poor to fix their missing teeth. If you sit around and tend a harvest of misery your whole life, then that will be your reward.
To sum up, life only sucks if you work at making it suck. Let it go.
Weaselmancer
rediculous.
.
The -very- first thing they had me do when I arrived was produce page after page of documentation on how the hardware actually worked so that the software guys could understand it. It wasn't ground-breaking design, it wasn't super complicated, but it was subtle and you couldn't get the whole idea of what was going on without being able to speak Engineer (specifically the EE dialect). A lot of people in the company were terrified that he'd walk out one day and get hit by a bus and the company would have to spend a fortune it didn't have for a team of engineers to come in and tell everyone else how their own system worked.
When I asked him why there was no documentation (or very poor documentation when there was) the answer was a combination of "You shouldn't need documentation" and "I'm not paid to document things."
Well, actually... you are.
A few early experiences counseled me very strongly to enforce good documentation practices in my code and hardware design. Any design more complicated than a blinking LED (the hardware equivalent of 'Hello World') requires it - if you aren't documenting, you're not doing what you're paid to do. As TFA says, End of Story.
Scientists point out problems, engineers fix them
altslashdot.org: The future of slashdot.
Having Asperger's isn't a good excuse to do a poor job or to be anti-social, or unprofessional. Yes you may have hard time following the right non-verbal queues. But things such as dressing appropriately for work, using the bathroom in the right spots, and a lot of the quarks that happen are due to bad behavior that people even with serious Asperger's can work one and minimize and be at a professional level. I don't take the idea, that I have a disability so you need to deal with my Crap mentality, it is basically reinforcing that they can behave badly, without having them work on improving themselves.
If something is so important that you feel the need to post it on the internet... It probably isn't that important.
The article was about someone who can do an incredible amount of coding in a very short time. Indeed, more coding in less time than most anyone else.
Because all he was doing was writing code. He took an hour to solve a problem that took the team 2 days. "The team" must have been at least 3 people. So that's occupying 6 programmer days. 40-45 hours. It would have taken him less than an hour to document or explain what the solution was. Is he really worth 40-45 times as much as the other programmers?
If the guy produces a lot of unmaintainable code then he's costing almost as much as he's making for the company. His personality problems will increase staff turnover, and he will eventually leave. Nobody lasts forever. When he leaves everything that he wrote will have to be documented or replaced at considerable cost.
Most programmers will be able to do most tasks. There are some highly specialised tasks that will require an expert in that area, but you can always find the appropriate expert. Anything else can be learned. You'll lose a developer for a few days while he learns but you'll gain a developer with extra knowledge, and the half decent ones will be happy to stick with a company that allows them to develop.
I wonder if perhaps there's an argument for pairing senior employees who do the critical design work with fresh hires to document the what and why of it. That way, the higher-up engineers don't have to write anything down and the junior engineers get to absorb some of their insight by osmosis.
Scientists point out problems, engineers fix them
altslashdot.org: The future of slashdot.