« java.util.ThrashMap | Main | If Code Could Speak »

Programmeurs Sans Responsabilité

Listen to this articleListen to this article

In all my years of software development, I have honestly never encountered a developer who really just wanted to be a drone. Someone who wanted to code directly off the spec without a care for what they were doing or why. Until today.

But then it's not so surprising when they're given advice like "Learn from me. Always remember my 3 rules: I didn't do it; It's not my area; and I don't know anything about it."

Surely it's not too much to ask that a developer actually understands the rationale behind the code they are producing. Surely it is reasonable to assume that a developer has questioned the design and implementation to the point they are at least happy that it conforms to their understanding of the problem domain and that it is traceable to some functional spec.

How can so many people have such a low care-factor for the work they do and the software they produce?

Comments

Oh, come on, Simon... share the goss. Name names. :)

That said, I _have_ encountered this syndrome a lot, though only a couple of times has it been other developers. For a lot of people it's easier sometimes just to coast on through.

"Ours is not to reason why..." and all that (though they should really try to remember how that line ends. ;)

One thing to look out for though is: does the person act like this with everyone, or just a few people. You may be seeing a result of a personality clash rather than a drone.

You seem to have channelled the rant that I had at dinner tonight on exactly the same topic.

It's offensive that there are people like that in our industry. It's the direct reason that there are so many complaints about "the quality of IT".

That coupled with management that cannot discern the difference between competent and incompetent workers leads to situations where there is a class of developer that doesn't need to care.

They can turn up, get $50-$60k and live a happy life when they are really only qualified to be a speedbump in a Coles carpark.

Interesting point but, given the circumstance, I'm betting on drone. Having said that, I am the newly appointed "tech lead" so I'll have to deal with it irrespective.

Pairing might help in this situation; especially with a pair prompting for explanations, it might draw the drone out of his shell.

Failing that, review the heck out of the code he writes.

Altough i think people are dubbed drone to soon if they dont want to do consultancy stuff.

Well call me drone cause I'd much rather not do consultancy. My background is product development and it's what I really love. In a product development environment it's critical that each developer understands the domain to which they are coding. So I'd argue it has very little to do with whether or not one wishes to be a consultant and much more to do with how much one cares about that which they produce as a result of their work.

I don't know how things are Down Under, but in the USA it's quite common for the rules to be:

1) Any deviation from the specification is a software defect. A developer who produces excessive defects may face disciplinary action, or at least will lose status.

2) Questioning the specification is insubordination. Insubordination will impair the employee's future within the company.

The key to success in such organizations is to unquestioningly code whatever the specification says.

I'm always reminded of the old roleplaying game "Paranoia" when I see behaviour like this;

"The computer is your friend, trust the computer"

To answer "Bart", it's got nothing to do with consulting, it's all about being professional. In fact, I'm with Simon on this, this is my first gig at consulting and after working as an outsourced vendor for 15 years this is the first time that I've been exposed to "the unwashed masses".

To reinforce this, in my previous lives the term consultant was terribly derogatory and I still cringe when I get introduced as a consultant. "I'm not a consultant damn it, I actually _do_ stuff".

I like your wordplay on "Médecin sans frontière".

I've worked with these drones before. Do what I did: Run like hell, and don't look back.

Couldn't it be a symptom of burn out over crushing management? Not everyone gets to start fresh all the time.

Give the guy a break !

You can't tell me there is no place for commodity developers, where drones could be usefull? (actually, you can, but please argue it !). I am tired of hearing how the only people who can code are the 1337 h4xx0rs or people who like to cram 50 design patterns into a simple app *cough* Thoughworks *cough*.

First, no where in my post did I mention the sex of the individual but general gender bias seems to assume that they are male. Interesting.

Secondly, I think the biggest insight here is that "Questioning the specification is insubordination". I really do believe this has more than a little to do with it.

And lastly, I don't buy the construction or manufacturing analogies that are often applied to software development. Building software isn't simply a matter of plugging together pre-built components. In fact everytime I've seen a project that attempted to do this, it has failed miserably. Software development necessarily involves R&D but it isn't actually that difficult. I have to say that the complexity of most applications comes from, among other things, attempting to make the design idiot-proof.

As for "commodity developers", I don't for a minute believe that everyone on the team is going to be a genius nor a lead developer. I do however expect that every developer fully understand the piece of work they have undertaken, and, importantly, will ask for clarification if and when they don't.

Damn, I installed the Firefox Personal Polictico-corectometer but it let that one though. Must have been the default setting that set it to allow through generic terms like "guys" in cases where upwards of 80% of workers are male. Corrected.

Always easier to write in a geneder neutral way then act it out in real life.

Yes I agree with the problem re-analogies. I think it was Alan Cokcburn (but he may not have been the first) that said it as "confusing the outcome of engineering with the act of engineering". Of course the act of engineering is an unmeasurable creative idea. I know that the guy who designed the machines that chops the tops of pinapples to put in cans did not do it against estimates and a project plan !

But you have hinted at the reality that there are almost two classes developers (or is it a continuum?).
Could it end up being something like para-legals versus Lawyers?

Simon, I hate to come off all tie-dyed and hippie on you, but I'm going to have to play the "nature v. nurture" card here...

Whilst I think drones have an inherent "droniness" about them in general, I've seen many development environments which positively encouraged this sort of behaviour.


(1) Start with a level or two of abstraction between the customer and the development team

(2) Add an insecure PM or Architect/Tech lead who sees being the sole possessor of key information as ensuring his/her importance on the project


In this sort of environment, it can be mighty difficult to survive unless you're happy to be a drone. Those not of that ilk tend to "run for miles" as a previous commenter had suggested.

Interestingly, I think adopting a fairly pure Agile environment where some requirements are naturally unresolved until well into the development process can have a hugely empowering effect on drones, once they realize they simply cannot complete their stories unless they seek further information.

Either that, or their brains will explode.

I'm so sick of everyone blowing smoke out their rears about how a software developer is supposed to be all "wildly enthusiastic". Bull!#$% Software developers as a bunch are really enthusiastic about their ideas and designs and methodologies, which really have nothing to do with the way they really code. But they would like to believe that the two are related, so they're always going on about how great and wonderful their methodologies and coding practices are, and they usually manage to convince themselves that yup, that's how they're writing code.

You know who's enthusiastic about coding? Matt Raible (works on Roller Weblogger, popular blog?...) And you know what? Until recently, he got like 4 hours of sleep a night. His wife and kids started to (as far as I can gather from his blog) constistently complain that they didn't see enough of him. So now he only periodically posts boring pictures of his children on his weblog. And you know what? When I'm married and have a 3 year old, I sure as hell hope that when I'm married with kids that I post boring-ass pictures of my children to my blog, instead of being all frieking "enthusiastic" about software development.

And you know, the majority of software developers with enthusiasm went into it because they wanted to write game. They didn't want to write firmware for air conditioners, they didn't want to write web software for telemarketers (been there, done that), they didn't even want to write Microsoft Office. They wanted to write games. And now they're supposed to be enthusiastic about writing slow-to-develop, boring-ass software?

It's just another capitalist "Sell us your soul" philosophy, that you should be all frieking enthusiastic about software development, regardless of what you're developing.

You know what I'm enthusiastic about? My family. My girlfriend. My sense of right and wrong. But software development? I wouldn't risk life and limb to continue doing software development, it's engaging, but it's only my job.

PS And for the love of god - no hardware, software, or methodology is "sexy". No. Seriously. Get outside. If it's not closely related to actually having sex with another human being, it can't be sexy. Period. That's it. Seek counseling.

PPS I'm just ranting I suppose, and not against what you actually wrote. I would be creeped out by anyone who wanted to code directly off the spec without a care for what they were doing or why as well.

Amen Paul.

Except the bit about firmware for airconditioners, that genuinely sounds interesting to me.

But maybe like all things, there is a balance to be had.

I can still get enthusiastic about things, but it is my daughter that really really warms my heart, and always will. Software and engineering have a special place as a life long passion. Passion, I guess that is it. I am passionate about it, but it isn't even in the same ball park as the interest that I take in my daughter, and a future for my daughter.

Also, I am not entirely sold on the idea that software engineering/programming/developing is a creative profession that can't be measured. It certainly appears to be that way, but something in the back of my mind makes me think that a revolution is on the way. Perhaps it is my memories back to a time when the same was said about solid state electronics... (being my background), and we all know what happened after that.

Post a comment