Friday, September 12, 2008

Caring and conscience

As I write this, some time before it is published, I am less-than-fondly recalling my day in the office. It has been another of those days where head has been in hands, where walks were taken away from the desk to avoid sending later-embarrassing emails and where close colleagues were asked the question "Where does the queue start for strangling ?"

I work in a large multi-national company and regularly wonder whether all departments, accounts and countries within this behemoth operate in the same way as I have experienced now for almost four years. I have a pretty good feeling they're all similar in nature with differing degrees of madness, and I am almost positive that Scott Adams used to work here.

I've mulled the issue over with several colleagues over the years and one clear pattern has emerged. Those people whose work ethic I have any respect for have either left the company or changed to substantially different roles. Conversely, those who seem to have been around a long time are, with a few exceptions, the worst offenders when it comes to dodgy work practices.

What it boils down to is having a conscience.

Putting this firmly in the development context, I am going to ask you, the reader, a question by which I risk offending you deeply. As a developer, can you produce software which fits any or all of the below criteria?
  • You know it will fail under certain circumstances.
  • You know some aspects of design have not been considered and should be.
  • You know that it is doing something wrong.
  • You know that you haven't been as careful or thorough as you could.
Now, before anyone jumps on me I will qualify my question with this. Can you produce software meeting any of those criteria without bringing it to someone's attention to cover your own butt.

It's one thing to go to your architect and say "you didn't consider this" and get the response "don't worry about it, just build it without" or to go to your supervisor and say "you didn't give me enough time to test this" and get the response "don't worry about it, just deliver it" - especially if you can get it in writing. It's another thing to think either of these thoughts to yourself and then think "To hell with it, it's not my problem anyway".

Personally, I cannot bring myself to write any software that has any of the above traits without making an honest attempt to remedy the problem and, finally, getting someone in a position of responsibility to sign off the shortcomings if necessary.

Most weeks now I come across multiple people who don't fit this mould. Many times I find myself being their conscience and I'm usually not thanked for that. But there is one individual with whom it is often necessary to communicate and for all their shortcomings that have been discussed amongst my team we have finally come to a simple conclusion.

They just don't care. And that's sad.

Ignorance, misguidedness and inexperience can all be overcome in a postive way. But just how do you make someone care?

Thanks for reading.
Allister.

No comments:

Post a Comment

Thanks for considering leaving some comments about my random rants for everything software development and more.