Sep 22 2009
Joe the Developer doesn’t need a certificate
Certification in software seems to be one of those hot topics that never die. This phoenix recently rose again in the form of Certified Scrum Developer announcements and discussions that followed on the agile developer skills mailing list. A recurring theme in the discussion is the mythical Joe the Developer, who is passionate about his work and needs the certificate to stand out from the crowd so that hiring managers can notice him easier.
Joe the Developer, passionate about his work, doesn’t stop at 5 PM. He attends user groups, reads blogs and comments on them, participates in mailing lists, contributes to opensource projects, tweets about interesting web pages or maintains links on delicious, has a blog, occasionally speaks at user groups and maybe even spoke at a conference or two. He doesn’t do all those things but chances are that he is doing at least some of them, and Google knows these things and can easily point that out. Anyone who wants to spend five minutes checking out Joe the Developer will find that he is someone passionate about his work much easier on Google than by verifying references and certificates. Joe the Developer doesn’t need a certificate, for there is Google.
On the other hand, Joe the Plumber needs the certificate desperately, or at least he thinks that he does. Joe the Plumber heard that you can make more money programming than plumbing and decided to suddenly become a programmer. He doesn’t really care about programming so he doesn’t have time to read blogs, participate in mailing lists or attend user groups. The only way to stand out is to get a business-class fast track ticket, which everyone knows costs extra. So Joe the Plumber is going to look for a way to quickly get a piece of paper that says he knows his stuff, and once he gets the job it’s only important not to get fired and he’ll manage that somehow.
You can probably guess by now that my opinion about certification is pretty negative, and I already wrote about that several times. What is really amazing about this particular time is that serious people whom I respect seem to be arguing for certification, with the idea that certification is coming anyway so it’s better if the community gets on board and influences it rather than ignoring it and suffering after. To that I can only say that people do drugs anyway but it’s still not OK for us to sell it to them.
There is a huge difference between training and certification. I guess that anyone, even Joe the Most-Experienced-Developer-In-The-World, would benefit from a few days of training by Ron Jeffries and most other people arguing for certification now. But that is because these people really have something to say about the way software is built and if you are looking for gems of knowledge that is the right place to look. Developers should take training to get that knowledge, not to get a piece of paper that is supposedly going to help them get a job (and it will not, at least in any company that really cares about development). Training is there to help you get started with a new practice or fill in the gaps. It is not the end of the journey but quite the opposite, just a beginning on the path to knowledge.
Image credits: Sundeip Arora
![]() |
![]() |



I agree wholeheartedly. I was showing a friend of a friend something on my workstation years ago and I changed the desktop or screensaver (can’t remember exactly but it was a simple thing) and he wanted to know how I did it.
I was flabberghasted! He outranked me in training as my sole MCP SQL exam pass had expired years before and he had a raft of certifications in order to make up his MCSE!
He was technically qualified to run my IT based business and command an excellent salary but he knew next to nothing.
I know it sounds made up, but it happened, really. I can even name him…. but I won’t!
Regards
Ryan
Certificate provide a different function to what you are describing. A decent developer knows that certificates are stupid, as does whomever is responsible for hiring them but thats not who certificates are for.
Agents are rarely IT literate and yet they go through the bulk of CV/resumés. They work to check lists and certificates are a plus. They get you closer to the top of the pile and the all important interview (where they mean nothing). You could say the same thing about Education. Nobody really cares that you did a module in Haskell when you are going for a Java job, but everyone asks for a MSci Computer Science.
Large customers, banks, government like to hear that they have hired a firm that has 95% certified developers. It makes their due-diligence easier.
Certificates don’t mean that you are a good developer. They don’t even mean that you can code. All they do is get your foot in the door with people that don’t understand the craft… and if they understood it, they probably wouldn’t be hiring someone else to do it.
Amen, brother. If I had a nickel for every certified DBA that I’ve seen unable to even grasp the basics of database operations, unable to troubleshoot even the most obvious problems or unable to go beyond a step by step process provided by the vendor, I’d be millionaire.
Don’t even get me started on those that have been in a “Performance Tuning” course and then try to apply anything that they have seen there at random to see if it works. The course itself (I’m referring to one provided by one of the top database vendors) is not bad, and gives you the opportunity to learn from the experiences of others. But as you say, it is mostly about the personal attitude rather than what the certification means.
Certifications as currently done in the IT industry is almost next to useless. The certifications aren’t quite a “certificate of attendance”, but they are extremely close.
Certification can work, and does work in other industries. For example, passing the bar exam in a given state is very good evidence that a lawyer has a solid grasp of the legal code for the state he or she practices in. Certified engineers (the civil engineering kind) are also able to point to the certificate as proof that they know their stuff.
If we want certification in IT to be effective, we have to bring it up to that standard. But nobody will be willing to go through what that kind of certification entails unless it is necessary. For now – precisely because there are many ways for the good developers to stand out – it isn’t necessary.
If you’re a mid-level programmer churning through jobs every couple of years, and you treat programming as a job, then get the certificates. They’ll do what they need to do – get you past HR. OTH if you want to treat development as a career, get out there, attend user groups and developer forums, write blogs, tweet about what you find interesting – and the opportunities you want will appear – AND you’ll know how to bypass the HR front desk.
@Tom
I completely agree with Tom. Till our industry matures enough you need some certifications to get noticed. It helps you cross the first hurdle and gets you an interview call, after that it does not matter.
@Tom
I don’t agree you need some certifications to get noticed and get interview calls. Perhaps it’s a good thing. Would you like to work for a client/agency who rejects good candidates because they don’t have ‘a certification’?
Regards.
@Tom Marsh…
Large customers, banks, government like to hear that they have hired a firm that has 95% certified developers. It makes their due-diligence easier.
There’s a profound difference between making due diligence easier and pretending to perform due diligence. Why should any responsible craftsman aid and abet in the fakery?
—Michael B.
@Tom – while I agree that MS degrees are sometimes only useful for getting you in the door (as it proves that you are able to start and successfully complete a large undertaking), let’s not go lumping them together with certifications. I, and most others who achieve this level of education, worked very hard researching, designing, implementing, documenting (thesis) and defending (dissertation) a large scale project, which is a far cry from rote memorization.
I couldn’t agree more.
Another reason, I hate this “certification” stuff is that it allows people to run the certification training ponzi schemes.
Based on this alone, http://ravimohan.blogspot.com/2007/04/learning-from-sudoku-solvers.html, I don’t think anybody would benefit from a few days with Ron Jeffries.
As some have pointed out here and elsewhere, getting a cert usually requires training of some kind. It’s a deep topic and that it gets so casually dismissed or so rabidly endorsed with little or no thought troubles me.
Yes, some certs are easy to get. I’ve gotten a few because they were required for the job. They didn’t take much effort. I knew most of the material going in, so that is obviously a great help and drastically cuts down on study time. Curiously, I’ve found that most of the people that dismiss certs as “easy to get” don’t have any.
I think that software development is one of the few fields where people can be considered professional without any credentials whatsoever. Try practicing law without having passed the Bar exam or practice medicine without a license. See how far that gets you. Software, in many places, has the same ability to destroy lives as poorly practiced medicine or irresponsibly practiced law. Sure, joe blow putting together yet another social media website doesn’t have much to worry about, but people that build systems such as radar guidance systems, the firmware that drives anti lock brakes, etc. can cause real, irreparable harm. People writing financial software used by Fortune 500 companies can cause millions or billions of dollars worth of problems by writing something as simple as a run of the mill sql injection attack. Folks like you scoff at stuff like this and say “Oh, I’d never do that. That’s so dumb/obvious/I use frameworks that don’t have those problems.”. To that I say bullshit. I’ve cleaned up my fair share of problems that were supposed to be prevented by frameworks or were mistakes that were just too stupid to make by supposedly smart people.
I don’t see any problem with requiring some certification for jobs like these.
@Mike
If there was a universally accepted exam that people had to take to get a license and would guarantee a decent degree of knowledge (eg a bar exam or medical license), I’d be the first to sign up. That would mean that a large majority of plumbers-turned-developers couldn’t practice development any more and would allow me to charge at least an order of magnitude more for my services.
But if you’d trust someone to build you a radar system based on a piece of paper that says that they have attended a two day certified scrum developer orientation, I can only say that you’re very brave and good luck with your airplanes.
I’d go even stronger. In my experience people with certifications are pronouncing that they are the lousy ones to avoid.
@gojko
Other people offering cheap services should in no way stop you from charging your own price. If you make quality products people will buy them.
What are your thoughts on licensing software engineers? Software Engineers go to school, get Software Engineering degrees: http://www.bseng.uvic.ca/ and in some provinces in Canada, and states in the US, can be licensed as a Professional Software Engineer: http://www.apeg.bc.ca/reg/pengappdocsrequired.html through government and peer regulation. As with lawyers and Doctors, Software Engineering, in some provinces in Canada, is a Professional Practice: http://www.apeg.bc.ca/ppractice/index.html, complete with code of ethics http://www.apeg.bc.ca/resource/publications/governancepolicies/documents/codeofethics.pdf
Do you feel software engineering is a Professional Practice?
With respect to certifications, what are your thoughts on Certified Software Development Professional? http://www2.computer.org/portal/web/certification
Certified in Scrum? Agile? How does one get certified in haphazard and unproductive methods of software development? That would mean that just about anyone is “certified” in this fruity method of writing code. Please.
Good thoughts; it is somewhat similar to something I read a few days ago about better ways to put yourself out there: http://adventuresinagile.blogspot.com/2009/09/best-certification.html which has several specific things that one can do for this recognition, rather than any certification.
I am passionate about development. I read the blogs, listen to the podcasts, spend some time each day at StackOverflow.com and I run a user group. I also want to get certified. Why? Because I will learn things in the process and it will make me more knowledgeable and a better developer. It’s a win-win for me: I get smarter, and I get a cert that says I put forth the effort to document my skills in a way that the industry largely views as valid and worthwhile.
Odd isn’t it, how the most valued and recognised certifications in the industry are ones provided by vendors?
You can find a Cisco certified person (I actually think Cisco certs are not too bad)
You can find a Microsoft certified person.
You can find an Oracle, SAP, the list goes on.
But if you start asking for certifications in javascript, or ruby, or python etc, things where no vendor really is interested in proving that they have a community of certified developers “in the wild”, well, there is a dearth.
If you are MCP or OCE, well, bully for you, you prove that you are both a walking advert for a large vendor, AND that you have chosen to specialise. This will actually give me the impression you are NOT capable enough to work on my team.
By all means, be a C# or Oracle expert. Prove it through experience not paper. All the paper tells me is you can cram.
Better if you can describe to me what you like about Javascript prototypical inheritance, then enthuse about lambda expressions in C#, or deploying apps using Terracotta. I don’t care if you can’t remember the differences in syntax between SQL in Postgres and Mysql. That’s what google is for.
If you know the job you dont need certifications but sometimes certifications can help you extent and demonstrate to others that you have what it takes.
But I have meet people who are “certified” and dont know how to perform a recovery or the basics of backups (in the case of IT).
For me, being certified means that I understand certain technology (or vendor) and that I have the knowledge if a situation arise, but certifications needs experience.
You can live with the experience and be certifiable.
I’m not sure I agree with this article. I consider myself to be a fairly stereotypical “Joe the Developer”. I go to conferences, I write code on my spare time, I attend user groups, etc. I even have a blog. Yet, if you search Google for my name, you’ll find that I barely make it onto the fourth page. Why? My name is fairly common, and I’m outranked by people who have the same name as I do, but have done something that has earned them more links (and hence, a higher Google ranking).
When I’m applying to a company, how do I show them that I’m Joe the Developer, and not Joe the Plumber? After all, all they have to look at is my resume. The certifications get me through to the interview stage, where I can look another developer or technical manager in the eye and talk about my skills and experience. In other words, if my skills and experiences are the product, the resume is like the advertisement. Having certifications on your resume is like having a Good Housekeeping Seal of Approval on your ad. It won’t convince someone who really doesn’t like you, or thinks that you’re underqualified. Its for the person who wants to hire you and maybe has a few doubts about the extent of your formal experience.
When I did my certification in Java I learned a lot of things because some of the features were new and some concepts were not required in web development scenarios which I was into.
I think certifications shouldn’t be a requirement for a job, but should be treated as a bonus feature maybe in the same way as lurking on stackoverflow or working on a sideproject to learn something new since it shows some enthusiasm/motivation on part of the developer.
6 years ago I had a MCP certification in SQL Server 2000 with no experiance. When It got me my first job I had to look up how to write a select statement. It helped me get a job… however It didn’t speak to what I actually knew at the time. I’m torn because It helped me get my foot in the door but it was essentially a worthless certification.
Nice post. the same argument rages in the testing community. I did a post just the other day on a similar thing.
http://thesocialtester.posterous.com/got-my-test-effectiveness-results-back-i-suck
It’s quite scary how many people believe the certification will make them better testers/developers yada yada.
I got a certificate the other day for sitting a communication and customer service class. It doesn’t mean I’m qualified to talk about/work in that industry. It means I’ve sat a course, paid someone some money and learned a few things.
Real world experience is surely more valuable? and as industries are so different in the software world it’s tricky to even say 10 years experience is good enough. Goodness knows I’ve worked with testers with 25+ years experience who just don’t meet the grade. Like you say, just trying to get by without getting fired.
Sad state of affairs really, especially with some key figures in the industry supporting the certification system.
Rob..
There are two many optional dimensions to a developer’s experience and tool kit to have a single meaningful “developer” certification.
What we should have are lots of little certification programs that certify a range of expertise levels for each given technology. That way, even if you don’t have experience in some new technology that the prospective employer uses, you can demonstrate that you have a real interest in it and have studied it enough to know the basics. A higher score or more difficult exam might demonstrate your proficiency in a technology that you deeply know.
This way, developers can more easily adapt to changing technology fashions without being completely at the mercy of their past employers choices, and will be able to distinguish themselves from those people who unashamedly lie about what they know and can do.
Sure, a technical manager can quiz a potential candidate to screen out the pretenders, but he doesn’t have time to do that when resumes number in the dozens (or hundreds), and HR people cannot do this at all.
I don’t understand all the certificate hate. Not all certs are created equal.
I am Joe the Developer (quite literally, as Jose is the Spanish form for Joseph). I read several development books a month. I read blogs and Dzone daily. I’ve started a blog. I work on personal projects nearly every day.
And I will have my Sun Certified Java Programmer cert within a month. In the process of studying for it I have learned much about the language and some features which I don’t often encounter in my day-to-day work. It has been time very well spent and I am a better developer because of it.
What does getting this cert prove? It shows that I care about my career and that I’m willing to invest time and money into myself. I don’t see how following people on Twitter can be superior to that.
Does having a comp sci degree mean you’re a great coder? Not in the least. So why do all employers require it (or at least ask for it in job postings)? Because it bestows on the holder an acknowledged level of competence and shared understanding. Certifications are no different. If you have an issue with the level of competence a particular certificate signifies, that’s your opinion and you’re welcome to it. But devaluing people because they hold certificates – as some posters here clearly do – is asinine.
+1 Jose.
I would say that certs on a resume should not be seen as positive OR negative. Agreed that Google is a much better indicator of talent.
Completely agree. Certification were done by companies to make money. Good developers (software engineers) does not need certification and those who ask for certification are not good managers/leaders.
Thanks for the post.
Why does it seem that certifications has such a stronger traction among testers? A higher proportion of charlatans?
I don’t rely on certifications to make my resume out. I use a pretty font, a boring bio, and some self effacing humor. Oh yeah, and lots of buzzwords.
I agree with that… Most people have the knowledge of memorizing things and have the capability of answering all the questions in a certification exam but they don’t know how to apply thing and how thing work inside…
Hello,
I guess this is to all who believe certifications are useless. I do agree that a certifcation alone does not gurantee an expert or even a proficient coder( this can only be attained after years of practice) but it does show that this person is willing to go the extra mile and that he is willing to continually learn. For example suppose they suplement a bcs with a certification in java well that would imply that he does have a greater understanding of Java than say a student who did a few Java classes an claims to be a Java programmer.
Just My Two Cents
James