Certification, Recertification…? Oh, please…

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.

Been there, done thatcert

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.

Summing up…

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. Smile

  1. #1 by Dan Martin on July 28, 2011 - 11:12 am

    I agree. I got my MCTS in Windows applications a couple years ago which required 2 exams. I would have been much better off saving the many hours (spent reading the books, studying, and taking the exams) and instead done something constructive like read Karl Seguin’s Foundations of Programming eBook.

  2. #2 by claudiolassala on July 28, 2011 - 11:41 am

    Exactly. Karl’s eBook is great! Uncle Bob’s, Eric Evans’, Fowler’s… there’s so much better stuff out there…

  3. #3 by Andrew on July 31, 2011 - 2:56 am

    That said, in defense of certification, for consultants who are looking for work at current Fortune 500 or government gigs, certification is often one of the only things some of the contracts are looking for.

    Don’t get me started on how you wouldn’t take a contract where the client didn’t know squat except for certifications and their own badly designed requirements. When you have to work, you have to work.

    The MS certifications are a bit funny, though, in that they attempt to test you the way MS *wants* you to build applications, not the way applications need to be built. The last MCPD test I did wanted discussions on UML and Sequential Case diagrams – it sounded more like they were trying to test features of a new tool they wanted to build, rather than actually test knowledge.

    Your example of Windows is funny – it’s the same way I felt about the first MCSD tests, which asked for Windows Application Architecture, promoting COM as a replacement for DDE – the same set of exams then promoted whatever MS wants to promote at the time.

    But you sell yourself short, Claudio. Part of passing those tests is also being able to weed out the bad answers. While you may be largely self-taught, there are a lot of “on paper” (eng. degrees, etc) developers who can program per task but are clueless on basic design and development concepts.

    But without having any other qualifiers, how does a client differentiate between two candidates?

    • #4 by claudiolassala on August 1, 2011 - 12:49 pm

      Hi Andrew,

      I hear you.

      I think long ago I’ve accepted the fact that there were several gigs I couldn’t get simply because I don’t have a formal degree. At the same time, I’m not sure I want to work at any place that values a formal degree more than real world experience. Likewise, I’m not too keen on working at any place that values MS certs as being the ultimate truth. Again, I know this could be somewhat limiting, but it has taken me through 20 years of my professional years, and I definitely hope it continues working out for me. 🙂

      I really dislike the fact that MS certs are all about pushing whatever technology they want to promote at the time, like you said. And it sucks when companies just follow that so blindly, without questioning whether that’s what they really need for their businesses.

      Yeah, part of passing those tests is being able to weed out bad answers (and some of the options are so bad it’s impossible to miss it), and other part is to make sure to answer the way MS has told you to do. Yuck.

      How to differentiate between two candidates? I’m not a professional recruiter, so I’ll just say what my personal experience has been. When considering a person for a developer’s position, I check if the person…

      * Is excited/proud to talk about her work
      * Shows interest in continuous improvement, and she pursues that (blogs, books, podcasts, user groups, conferences…)
      * Gets more excited talking about technologies or development practices

      I also have a simple test I give to developers. The task itself is very simple and any developer should be able to solve it without a problem. However, what I look for there is what kind of approach the person goes for, and what kind of care the person shows with her code. That tends to be a very efficient way, at least for me, to leverage whether that’s somebody I’d like to work with or not.

      But then again, this is just the humble opinion given based on my personal take on things and on my personal experiences this far. 🙂

  4. #5 by Jose Gonzalez on August 5, 2011 - 6:18 pm

    I’ve 2 MS certifications (or 3? shows you how much I care) listed on my resume. Since I was job hunting lately, one of the developers interviewing me couldn’t help himself and gave me really?-type-of-smile. I was not insulted but rather ashamed of having that on my resume.

    I took them when I was a true rookie with 0 yrs of experience many years ago. Someone suggested
    I take some to improve my chances of getting hired. However, over the course of the years and many interviews, I doubt those certificates have held ANY weight on helping me getting hired.

    Sorry MS, you take no $$$!

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: