August 14, 2005

...Learn TDD with Codemanship

Are We There Yet?

More rants about certification today. The debate rages on, as it has done for years, that something must be done about the pitiful professional standard across our industry. Software developers who don't know what they're doing, and who produce pretty crappy software - and often do it very slowly (the worst of all worlds) - are very much still in the majority.

The impact of this situation is there for everybody to see. Most projects still fail. Software is still generally unreliable and costly to maintain. Productivity is generally low among developers. It's a sorry tale that is earning us a worse reputation than used car salesmen. We do shoddy work, and we charge very high prices to do it. It's no wonder customers are looking overseas for better quality software at lower prices. Of course, the standard in India, China and other emerging markets is not much higher at the moment - but they, at least, are doing something about it. Software Process Improvement is a much bigger priority in these countries. They understand that, as skilled people become scarce and wages inevitably go up, they will need to find another value proposition to remain competitive. Quality and productivity are the West's weak points. Once customers know you can do more for the same money, and do a much better job of it, they will inevitably come to you to deliver their business-critical systems. Right now there's not much in it, but historically we can see a picture of rapid improvement and growth. India, in particular, is pulling away at a significant pace from competitors in Europe, the UK and the US. We shouldn't act surprised in 10 years time if 80%+ of all software development is done in these new economies. Frankly we will have brought it on ourselves - just as we did with the automative industry in the 1970's and 80's.

Our complacency is deeply embedded. We just don't get that our fortunes in years to come will be directly linked to our capability. Just as companies in Asia learned to build more reliable cars more cost effectively, and in doing so wiped out car manufacturing in many Western nations, countries like India and China are learning how to build better software, faster and cheaper. Right now, they're about as good as we are in the UK. But they're learning faster, and the difference will become more obvious in years to come. Like air moving from a region of high pressure to a region of low pressure, a wind of jobs will surely follow.

But nobody seems prepared to do anything about it. I have written to my MP and to the Department of Trade Industry (or whetever they're calling themselves these days). They couldn't give two hoots. Government here in the UK wants us all to be "computer literate", but they couldn't care less where the software we'll be using is built. Of course, they might care more of it was law that was being outsourced - most of them being lawyers. Businesses don't care, either - even the ones who compete directly with companies in India and China. Almost none of them is engaged in any kind of capability improvement program. Indeed, very few even know what their capability actually is. In the UK, we don't compete on our ability to deliver. When we tender for projects, that rarely comes up. Worryingly, there are some companies who screw up time after time after time, and still keep winning business. In a business environment where your survival depends in no way on your fitness, you end up with a weak gene pool. We're not going to be able to survive in the face of genuine competition from abroad.

Our competitors already have a head start, and if we don't do something soon we'll end up like those poor buggers at the Longbridge MG Rover plant, whose fates were ultimately decided in Shanghai.

Would proper certification help? I believe it would be a good start, but I think I may be in the minority. Critics argue that certification - as we know it today - doesn't demonstrate actual "on-the-job" capability. I would agree. Certification would have to be based on knowledge AND application. Ultimately, it would need to be based on a variety of factors that would give a more balanced picture of professional capability. I'm strongly in favour of using controlled exercises - mini-projects - and objective measurements of productivity and quality, as well as theory exams and interviews. "But wouldn't that take a lot of time and cost a lot of money?" Well, that depends on how much money is too much, and that depends on the value of the certification. If what's at stake is my job and your job and all of our jobs, then, no, I don't think the cost would be too high. Maybe it would cost me 3 weeks and a few thousand pounds. But I know people who spend more time and money than that attending conferences every year. It's only expensive if you don't need it. I believe we do need it!

The problem with certification is reaching that critical mass where enough good people have it, and have benefitted from it, to encourage others to try it. It's chicken and egg. Getting such a program off the ground would require enormous energy and tenacity from a small group of very dedicated people. Nobody's stepping up to the plate. But the problem isn't going to go away. We must do something or eventually we'll need to learn a new trade, probably one where you'd need to devote years and tens of thousands of pounds to getting qualified and licensed to practice!

I could ask the question: "who is interested in becoming certified?", but I think I already know the answer... I bet they do it in India first!
Posted 16 years, 1 month ago on August 14, 2005