Wednesday, April 20, 2005

Good Intentions over Great Ability - anyday!

There is a lot to be said for the personal quality of having "good intentions" and it's value to a member of your software development team. Average ability with "good intentions" is better than great ability with bad intentions.

With regards to "intentions" I'm talking about long term aspirations and general behaviour. I am not talking about "one-off" incidents, where something went wrong with all the best intentions.

I'm assessing good intentions, from a "good for the project / company" perspective, not necessarily good for oneself. The "look after number one at all costs" attitude is something I would describe as bad intentions. However, having good intentions, you will ultimately "look out for number one" anyway.

When employing developers, once I've established a candidate posses the basic technical qualifications for the role, I will look towards those qualities that indicate a person would come to us with "good intentions". This covers a host of desirable characteristics that would mean someone would fit into a team I lead.

Good intentions are characterised by:

  • Loyalty
  • A good work ethic
  • A desire to build quality solutions / systems
  • A desire to do things right.
  • Fitting in well to a team
  • Self respect
  • Respect for others (all others not just managers or people in power)

Bad Intentions are characterised by:

  • Arrogance
  • Selfishness
  • Greed
  • False respect shown only to people in positions of power (sucking up!)
  • Cover ups
  • Taking short cuts

I will always stress to my team members, that in my teams it will never reflect badly on you if you make a mistake, attempting to do someting for the right reasons. I will be less impressed if you get lucky and happen to add some value, while attempting something with bad counterproductive, selfish or non-team oriented) intentions.

If everyone in your team has good intentions they will work towards a great result and you'll get close. Those that don't - any good results are luck and will not last and will not be repeatable.

Someone with bad intentions - or simply no good intentions will erode the quality of a good project. In fact, when they find themselves in a position of control - which is probably what drives them, they still won't be able to do a good job. They could achieve their agenda - promotion, indendance, recognition - but because their goals are not the same as that of the project/company they can go no further.

They can never realise the full extent of the success they thought they strove for because their actions are driven by bad characteristics which will not lead them to continued and repeatable success.

I've seen software developed in this fashion - by people driven by selfishness, greed and arrogance. Those people will general take whatever shortcut they can to get the job at hand done as quickly as possible. To lap up the immediate kudos, to build the appropriate image. The problem is, once they achieve this kudos, they get "found out" very quickly. You have to be able to back it up. Which means moving on the the next shortcut, cover up, what ever. Unfortunatle others aren't that silly and will eventually find them out.

If you continue with your good intentions, doing the right thing, the right way, you may even lose the odd battle to such cowboys, but you'll never lose the "war".