Thursday, February 23, 2012


The topic of programming / agile / IT certifications seems to make the rounds every few years. At least in the circles I hang out in we're in a lull, no one's complaining about certifications or coming up with alternative ideas. Which in my opinion makes it a perfect time for an alternative idea. tl;dr

As a programmer what might a meaningful certification of your skills look like? Is it something like becoming a certified scrum developer? Is it a social network of recommendations, Bob says Fred is a great programmer and you trust that Bob is a great programmer so the transitive property of programmer greatness goes into effect? Should we look to other industries like engineering or medicine? These are the kinds of arguments I remember hearing in the past.

Why do we care? Why does the topic keep coming around? The answer, demand. Companies have caused a demand in certifications, and other companies (e.g. scrum alliance) have looked to fill that demand.

The debate about certifications always seems to come down to: How can you certify that someone is a good programmer? That's a flawed question. There will never be some metric that you can say this person is a good programmer because of X,Y,Z (or maybe there will but we're no where close to that as an industry).

There is demand, there are certifications, they're of limited value and possibly misleading. Our job as an industry is to provide good alternatives. Meaningful certifications that have teeth behind them. My solution, domain specific programmer certifications.

Assume I'm a bank I have two very similar resumes in front of me, I only have time to phone screen one of the candidates. The difference one candidate worked their whole career in finance, the other bio informatics. I'm going to call the finance guy.

Different scenario, I'm a bank again, the two resumes in front of me are both pros who've been coding in finance. One of the guys has a the Financial Programming Certification with a focus in trading (it's the most difficult financial certification to get with a 75% failure rate for first time test takers), the other guy doesn't have it. I'm going to call the certified guy.


So what is a domain specific certification? It is a difficult to achieve certification focused on verifying knowledge in a domain as it pertains to writing software. One could imagine them in finance, bio-informatics, medicine, healthcare, education, etc. They are business focused, not technology focused. They validate that you know the important domain concepts and the subtleties of those domains. That you understand common client needs. That you know common design pitfalls.

What about CSD? The content looks great, the name is misleading. Because what does it certify? It certifies that you are familiar with the daily practices and language of a scrum team. It's a domain specific certification for being part of a scrum team. Which is useful, but does it really mean that you're a good developer? That you can abstract well?

Certifications are about filling a need for businesses, they're not going to go away. Businesses have made that clear, and we can't ignore them. We have a choice as an industry do we have certifications like CSD or do we certify that programmers know about certain domains and the pitfalls of programming in those domains. We can either shape the certifications towards something useful or allow them to be shaped for us.


Mike D said...

Hey Zach,

Interesting thoughts. I particularly like the last line "We can either shape the certifications towards something useful or allow them to be shaped for us."

Looking at the video for the CSD program, I heard a lot of terms like "introducing", "foundation", and "grounding in fundamentals". I think it is a probably a good starting point, but I don't think a 3-5 day course is worth a whole lot. That's not a knock in particular on the SA program, I think the lessons of learning and applying Agile and XP practices develop over a much longer time.

I was fortunate enough to have good mentors and co-workers who helped me learn and develop some of these skills. I continue to try and build these skills through user groups (like Boston Software Craftsmanship) and seminars. That makes me think that the answer that you are looking for might be somewhere in the apprenticeship model, but how we get there is easier said than done. To paraphrase Potter Stewart, I can't tell you what defines a great developer but I know it when I see it.

I would be opposed to the domain specific certification, as the areas where it would have real value would be in areas like finances, bioinformatics, and medical devices to name a few. I think domain certifications would also be a barrier to the cross-pollination that our industry benefits from where developers can cross domains and learn new practices. There are already enough barriers centered around languages and frameworks that hinder our industry.

It is a hard problem to solve and you are right, it is not going away. Looking forward to continuing the conversation.

ekerwin said...

Before I even read the post - wonderful to see you blogging again, Zach! Keep it up!

Zachary D. Shaw said...

@mike I think the apprenticeship movement is a very good thing (and I wish it was around when I was just starting!). I believe the movement will continue, but will it ever become mainstream? I'm not sure. People are confused how it differs from an internship and it's a hard sell to companies to devote resources to run one.

Adding more barriers to our industry... DSC would add another barrier to changing domains. But i'm not sure that's a terrible thing. Sometimes I wonder if our clients aren't getting the short end of the stick because their programmers are experts in their domain.

I do see the point though. We have a fractured industry and it would be scary as hell to introduce more bureaucracy that could further the division.

I don't think Domain Specific Certifications are the only answer (good / bad I'm not sure). However, I think they are a viable solution to the certification problem.

Thanks for the thoughtful response!

Web Statistics