This week I’ve run into this blog post where the author asks for feedback about recertification. Microsoft certification, that is. That post is filled with “Whaaaat? Are you kidding me?” moments for me. I have some experience acquiring those certifications, and my feelings towards it have changed over time.
I believe it’s been about 8 years since I’ve taken the tests and became first an MCP (Microsoft Certified Professional), then an MCAD (Microsoft Certified Application Developer), and then an MCSD .NET (Microsoft Certified Solution Developer for .NET). It took me 5 different exams to achieve that. That was back in the first release of .NET.
A couple of years later, I’ve even studied for the VS 2005 / .NET 2.0 certifications. At the time I pointed out what a mess it was to understand what exams I should prepare for, and what certifications I’d be working on getting, since there were two new ones related to software development: MCTS and MCPD. I also blogged about the shortage of good books for that.
Are they really useful?
Here’s a quote from the blog post that made me write about certification today:
“Microsoft technologies are evolving more quickly than ever. In order to maintain the value of your certifications, we need to ensure that Microsoft Certifications keep pace with changing technologies and remain a meaningful indicator of a candidate’s continued competence.”
Meaningful indicator of a candidate’s continued competence? Seriously?
Here’s another quote:
“Recertification provides assurance to hiring managers and other key stakeholders that the candidate who holds the certification has demonstrated continued competence even as the technology has changed based on service packs, revisions, and new product version releases.”
Oh my… I couldn’t disagree more.
Based on my own experience passing through 5 of those exams, both of those statements couldn’t be farther from the truth. When I passed those exams, I had been working with .NET only partial time for about a year or so. I had absolutely no real world experience with so-called “XML Web Services” and “Remoting”. I had barely worked on a small sample project that used those technologies. I hadn’t done much ASP.NET. I prepared for those exams mostly by picking up a book and quickly flipping through the pages, without really digging through each word, and without sitting down and typing or trying any of the sample code. And I have passed 5 exams just like!
Nope. I don’t think I’m terribly smart. I’m mostly self-taught, I don’t have a formal degree, and I’ve skipped through certain core elements of computer science. Bottom line is: in order to pass those tests, all one needs is to memorize what is the answer you’re expected to give to a given question, regardless as to whether you agree with it, or whether real life experience has taught you that that answer is flat out wrong!
When I was preparing for the very first exam, I’ve organized a study group at the company, and that was one benefit out of the whole process, because with that we’ve managed to increase .NET skills through the company overall (at least as far as making people aware of a couple of things that are available in the platform).
Come to think of it, sometime in 1998 (I think), when I was mostly doing Visual FoxPro development, I’ve built a website to work as an online study group for people who wanted to pass the certification for Visual FoxPro. I’ve led most of the discussion there, quite a few people succeeded into passing the exam, others were only interested in improving their skills (and the feedback they gave me is that we succeeded there), but I’ve never taken the test myself.
I remember at one time somebody asked in an online forum: “What’s the difference between an MCP and an MVP (Most Valuable Professional)?”. Somebody else responded like this: “MVP’s write the exams that MCP’s “. For sometime that was really true (as I came to realize when I was invited to write some of those exams myself). There was a time when most MVP’s received their awards based on them showing and sharing real world experience with their peers. Now *that* was an indicator of “continued competence”. Somebody memorizing desired answers to canned questions is NOT a good indicator for anything (ok, maybe the person has good memory… that’s all).
Was there ever a certification that covered the first version of Windows Workflow? If so, what happened when the second version of that technology came out and completely replace the first one, rendering that first certification completely useless? What a waste of time.
My experience when hiring…
I have interviewed dozens of developers to be hired over the years. I’ve seen over and over cases where their resumes were stamped with certification acronyms all over the place (I’ve known people who’d be so proud of themselves because they were “the 10th person in the whole world with the biggest number of MS certifications!”….like, 50 certifications under their belts or something… hmmm… whatever, dude). We’ve hired one or two of those in the past, and I can tell you that the certifications meant nothing, as we saw the work produced by some of these fellows.
On the other hand, the best people I’ve been involved with hiring had something in common: they didn’t have any certification, some of them didn’t through any “formal interview test”, and most of them I didn’t even need to see their resume. So how did I know they were good people to hire? Well, they come out often to the Virtual Brown Bag, share tips and tricks with other peers, so I can immediately see a sample of how they work, how they write code, how they think through problem solving, how they interact with other people, how they take criticism in their work, how they react when there’s several other pairs of eyes staring at his work, how they help other people learn and address their problems.
Now, *that*, I think, is the ultimate proof that somebody is committed to working on his or hers continued competence.
Do Technologies Matter?
Whether or not somebody has been renewing their certifications because a new version of technology came out is irrelevant to me. I much rather work with somebody who has a good grasp on things like object-oriented programming, design patterns, SOLID, how to talk with users and clients and understand what’s really important in a project or feature, etc. Those aren’t things that people can get certified on. Also, such people can certainly learn technologies without a problem, based on their real life experience, and not on terrible courseware for biased certifications.
I could go on for at least another hour jotting down my thoughts on this topic, but right now I have to get ready for today’s Virtual Brown Bag.