Usability - Productivity - Business - The web - Singapore & Twins

The contractors dilemma

I'm doing a lot of reviewing/re-engineering of Notes applications lately. I made a number of interesting observations how applications are done here in the region. Most of them were developed by developers placed into the customers environment by contracting companies or professional service firms. Once the developer is with the client they face an interesting dilemma: The client pays only for hours on the job to the contracting company. So they want their employee to stay on the job as much as possible; training gets cut short. The client doesn't consider the contract staff to be part of the firm, so no training there either. I met a number of developers who didn't get any training for 5 years, not even off days to go for their own training. While senior developers can stomach that and learn on their own, junior people will have a hard time getting the experience when they are placed into an environment where they don't have access to experienced developers The experienced ones are more expensive (nobody looks into efficiency), so quite often a bunch of newbies end up on site cut off from the experts.
As a result a lot of the code I saw was full of hacks. Hacks of someone desperately trying to figure out some something works, not hacks of someone who exactly knows what he was doing. And a lot of the code is rather fragile and won't survive an extension. Of course you could ague: a developer should take personal responsibility if not pride in the delivered results. However from the work slave's contract staff's perspective it looks different: Why should (s)he care if no one cares for him/her? On top of that: once the application is completed, (s)he moves on to the next project and so hardly face the need to maintain they system (s)he has build before, so why write maintainable code?
Here Notes and Domino are cursed. Since you can get something going very fast and Domino is rather forgiving with whatever you do, you end up with a lot of messy code. And then people say "Notes sucks". I would say: "Not training your staff sucks". I think IBM has to play some catch up to make better Notes training en vogue again.
And for code quality this is my advice: "Write your code as if the one who has to maintain it is a maniac with a gun who knows you address." (I would like to attribute that quote correctly, but I can't find the source where I did read it)

Update: I met some of my ex-colleagues from my Deutsche Bank Singapore days, who are all working for professional service firms. This little rant made the round very fast. They unisono confirmed, that they haven't seen any training for years. Luckily some of them remember the days we worked together, so they know that better quality is more fun to do.

Posted by on 10 January 2006 | Comments (3) | categories: IBM Notes Lotus Notes


  1. posted by Aaron Seet (icelava) on Wednesday 11 January 2006 AD:
  2. posted by Brian Benz on Thursday 12 January 2006 AD:
    Agreed - many of the problems I've seen over the years are a result of not knowing how to do something. Even worse, those contractors will not blame themselves if something doesn;t work or can;t be done - they;ll just blame the equipment, and say "Notes Sucks - I could tdo this faster and better in (insert the contractor's favorite platform here). If management buys it, then that's it. But then again, the people doing the hiring get what they pay for.
  3. posted by Jack Dausman on Monday 16 January 2006 AD:
    Stephan: right on target.


    Good luck on building up a user group !

    All the best,