Over the last few months I have occasionally wandered over to Microsoft Learning to have a look at the ‘new’ certifications. How can certification that has been available for months on a development platform (.NET 2) that has also been out months be considered new? Apart from the lack of study kits and other logistical issues, it seems that most developers and employers don’t really care about the Microsoft certification.
It seems that there is a negative attitude towards certification that has been propagated by the concept of a ‘Paper MCSE’ where a ranter will say something like ‘An MSCE used to be worth something, now training institutions are churning out paper MSCE’s’ – implying that there are a whole lot of people out there with certification that cannot code. I have interviewed hundreds of people over the years and always find myself needing good resources on any project that I am on – requiring constant interviewing and screening. Funny thing is that I have never come across a ‘paper <insert certification here>’, but I have come across many useless developers. It may not be statistically meaningful that of the last hundred development candidates that I have mentioned that there was not one that had certification and couldn’t develop – but it would raise a statistician’s eyebrow.
Microsoft is apparently trying to revamp the certification by breaking it up into little bits and making it ‘easier’ to obtain certification aligned with job functions – something like an n-tier approach to certification (you shouldn’t need certification to get that analogy). Maybe they have a long way to go to convince the market that certification is required, but I think they have made a step in the right direction.
I will be the first to acknowledge that (correct) experience is the ultimate prerequisite for a developer and when interviewing, it is something that I will drill in to. However, even ‘experienced’ developers can have huge gaps in their knowledge – depending on the projects that they have been on, a developer with a claimed two years’ experience may in fact have one month of experience repeated twenty four times.
<rant>Don't get me started on bodyshops - that pound you with CV's of unqualified, uncertified contractors that they expect you to filter out. Why, for the premium that they charge, don't they get their contractors certified - apparently they are so good that it would be a breeze.</rant>
If you think that certification is a waste of time, take this little challenge. Have a look at the preparation guides for two exams for a ‘Microsoft Certified Technology Specialist (Web Applications)’ (the lowest level of certification), namely the Application Development Foundation exam and the Web-Based Client Development exam. Scroll down and see how much you know on each topic.
Done? Good.
Now if you are a team leader, architect, project manager or other senior role ask yourself the following questions:
If you are a developer as yourself a more simple question.
If you had positive ‘no worries mate’ answers to the above questions, then you are on a unique team and will be the envy of many. If you had negative answers, then maybe you should review your position on certification and think about using it as a standard – either to find developers or to pitch yourself as a developer.
Personally, I can’t think of any developer that I have interviewed, including ‘senior’ developers, who would not be taken out by most of the topics on those preparation guides. Are the preparation guides biased by Microsoft and not representative of what a developer truly does? I think that a ‘senior’ developer should at least know about every single one of the topics in the ‘Technology Specialist’ series – what with it being the lowest level. Unfortunately few ‘senior’ developers do.
One of the ideas of certification is not just to provide the individual with knowledge, but to provide a standard so that everyone is on the same page. In a recent quality review, when challenged on simple things like naming, error handling and so on – a developer commented something like ‘It (quality review of private methods) is not necessary because we are all good developers and write good code’. ‘By whose standards?’ I asked ‘Are you certified?’ (shake of head) and pointing to the developer next to him ‘Are you?’ – another shake of the head; and so on around the room. I have my own personal opinions on how those developers would handle me grilling them on those preparation guides and the expectations are not very high. Not that they are bad or even mediocre developers, but I do need to spend a lot of time introducing them to the basics – to overcome the ‘one-month-of-experience-for-twelve-months’ problem that I have.
If you are an uncertified developer, why are you not certified? Is it because you are waiting for your employer to send you on training and give you permission to go to the toilet? Are you scared that you won’t pass? Well then study and make sure you pass! Are you a better developer than everyone else and above certification? Well then step into the ring and prove it to us! Are you worried that you will be lost amongst all the ‘Paper MSCE’s’? Get your head out of the sand, there aren’t any!
Regardless of the technical value of certification, it is only meaningful if people who are qualified to be certified, are certified. There is no point in putting out a job advert that requires certification if nobody is certified – no applicants will come through. The converse is true – why get certified if no employers even look at it? As many people need to be certified as possible and in the .NET space I think that the Microsoft certification is good to get.
If, after reading this, you think that such certification is worthwhile then go out and get it (as a developer) and start demanding it (as a leader/manager) – only by changing the dynamics of supply and demand will anything of value evolve.
Simon Munro