A whole new world
September 14, 2004I’ve been a bit quiet in this blog lately: first because I was jobless (actually, a lady of leisure!) for a couple of months and after I started work I didn’t want to post anything negative for fear of colleagues reading it, and well, I haven’t had anything positive or enlightening to say unfortunately!
Now I’ve decided that anyone on my project with enough nouse to read technical blogs will probably agree with my rants anyway so I’m not going to hold back. However, I’m not going to go into a spiel on what’s wrong with my current project (the people, the process… actually it all comes back to the people anyway) because that would fill up screens and screens. Suffice it to say that I’m worlds away from my last project and I feel like I should change my name to DancesWithWolves because I am surrounded by the biggest bunch of cowboys in the industry… Hmmmm… ouch. I do have to keep in mind that here in the Netherlands the work ethic is a little different, and also the majority of developers are contractors / freelancers – again, different work ethic.
Anyway, I do have something positive to say. This project has been in development for about 3 years. Currently they have about 110 developers and still growing, 85% of which are contractors like me, and the turnover is phenomenal. However, somehow they’ve managed to create this application that seems to defy the laws of web development. Of course, it uses frames and is littered with javascript (and more than a few hacks) but at first blush it’s quite impressive – little pop-up windows for selecting values that then update the parent window, pretty little JTree uses, and many many other clever little scripts that really don’t belong in a browser window. It’s not magic of course, but still, I was impressed.
I was also impressed by the architecture specifications – very well planned and designed (this was before I got deep into the code). How did these people manage to create something impressive? The truth, or so I’m told, is that the project was architected by some pretty switched-on guys who eventually left because they couldn’t stand to see below-average developers destroying their efforts any longer. And I don’t blame them. They went to all the effort of starting with Core J2EE Patterns 101
and setting up the J2EE framework, they also built a framework to sit on top of Struts and well, it’s actually pretty good even if a little redundant (though this maybe naivity on my part – it’s a big, complicated system with a complicated page flow model and it’s achieved well in their framework; however I’m always critical of projects that write custom frameworks), and they set this all up nicely in WSAD with minimal module dependencies and a clean build script. And, well… it’s turning into a dog’s breakfast… Sorry, ranting already…
Anyway, right now we’re in bug-fixing mode for a minor production release (and production is thankfully limited to a small number of guinea pigs right now) and have been since before I joined a month ago and probably will be for a while yet – cost of change curve anybody?! – so I’m just fixing other people’s code and doing the odd change request (funnily enough, I seem to get all the critical and urgent issues). I have also had the opportunity to create a separate small application for data migration from Oracle to Documentum so at least I could sink my teeth into that.
So, that’s the environment I’m working in and bit by bit I’m sure I’ll rant about the horrors that I come across in the codebase, process, quality of the people, etc (funny story: a person sacked from Matt’s project after 3 weeks on it, because he was so bad, was hired onto my project a couple of weeks later….) each and every day! And maybe the occassional rays of sunshine (hey, they have CruiseControl!).







Sam
Well Pam I’ve got your exteme programming book through Matt. I’m one of the oldest developers on his crap-o project (been there 6 months) and I was really excited when he joined. He seems to bring fresh ideas to the table (like inversion of control and super test driven XP mentality.) I met such resistance from the terrible programmers on our project in the beginning that I actually started to count the ours and calculate how much money I was making after taxes to try and escape the horrors of the framework they set up.
Anyways I hear we’re going to the XP conference together. Thanks for loaning me the book. I’m using this as an excuse to get up to speed on XP and figure out exactly what your beau is doing in his test drivin dependancy injection thoughworks infested code. See you there.
Pamela
You’re probably right but after over three years I think they’ve managed to manage it somehow, so to speak. Of course, the project is split into subprojects but they all use the same frameworks and there is some codeshare and developers to cross-pollinate between subprojects. I think they will keep on as they are and finish eventually, it’s just a matter of time and $$. They were supposed to start reducing the team by the end of the year but at this point in time they are still growing it.
The hardest thing is to try and introduce changes (in attitude, process, etc) in a project with that many developers and such a high turnover. Somebody once tried introducing checkstyle but it was a futile effort as it was not incorporated into the build and couldn’t be at the time because there would have been about 20000 failures! And most people don’t agree with the settings or even realise what it’s for!Ah, anyway, all I can do is my best and then my contract ends in two months!
Robert Watkins
Well… any project with 110 people on it that hasn’t imploded under its own weight is impressive. Of course, it sounds like that’s where it’s heading.
The turnover rate sounds hideous; on a project that large it probably takes a few months to become really productive, and then they’re gone again!
As for the quality of the people, though: remember that everyone starts off being, well, incompetent, and the transition from incompetence to competence is primarily one of luck. The turning point always seems to come when you get exposed to someone who really knows what they are doing and can pass the lessons on. As long as the people there are willing to learn (and contractors/freelancers tend to be more willing than most), you always have the chance of being the person who pushes someone else up to the next level. And that can be the most rewarding thing you can do on a project.
(There’s a lovely little quote in one of Cockburn’s books… they had a project that would take 6 good developers. They couldn’t get 6 good developers, so they made do with 24 average ones. Sounds like something similar has happened here)