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.
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
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 Stephan H Wissel on 10 January 2006 | Comments (3) | categories: IBM Notes Lotus Notes