Some Initial Thoughts On Agile Developer Skills And Certification

There’s a new mailing list over on Google Groups surrounding the ideas behind Agile Developer Skills Certification. After reading this post by Ron Jeffries, I joined up with the group and started reading the traffic. I generally share the same opinions as many of the people on this list about multiple choice, memorization based ‘tests’ – the Microsoft Certifies XYZ type test where the only thing you need is a good memory and no real skill. This type of test is lousy and we should avoid it at all costs.

Then, a response to a another post by Keith Braithwaite got me thinking and re-surfaced some previous thoughts that I’ve had but never articulated. Keith’s statements were:

That seems to me like a somewhat mystical view of “skill”. I think that the IEE Certificate I mentioned in a previous post did something useful and conrete. Here’s what I had to do to get it:

Solve a small simulation problem in C++. I got extra credit because I kept my source under version control.

Devise and build a small relational database schema to handle a business problem, put a VB UI on it.

Implement a very (very!) simple network protocol on top of sockets in C. I got extra credit because I made the documentation of my protocol look like a man page.

Model a problem domain using OMT Work in a small team to plan and execute a small development project to build a small app in C++

Write an essay showing an understanding of some well-known IT project disasters and their causes.

The approach that Keith describes here reminds me of the education system for receiving a Masters degree or Ph.D. My wife is a Ph.D. in Social Psychology and a professor at Baylor University. I regularly have conversations with her about the Masters and Ph.D. students that she is advising/mentoring,I was dating her during her last few years of graduate school and I remember her describing how her Ph.D. defense was conducted.

The Masters / Ph.D. Defense

When a Masters candidate goes up for the final ‘certification’ that they are worthy of having a Masters degree, in psychology, they don’t take a multiple choice test, a written test, or anything that involves memorization like that. The candidate has a Thesis in the form of a study, the collected and analyzed results, and the final write-up of the results and information and how it contributes to the global community of psychologists. The candidate takes this information and presents it to a panel of ‘judges’ that grille the candidate with questions that are designed to make them think, all with the purpose of seeing how they respond and how they handle the questioning, as well as to test the foundational knowledge of the candidate, to ensure that they understand the foundations and details of what they have built.

When the psychologist with a Masters degree is then going up for the final ‘certification’ of having a Ph.D. worth skillset, they again go through the same type of process – only significantly more in depth and detailed, requiring much more analysis and writing of the results, and with a much greater level of scrutiny and nit-picking from a much more judgmental panel of other Ph.Ds.

(Yes, I know got many of the details of the Masters Thesis and Ph.D. Dissertation defense wrong. The details aren’t the point and are not that important at the moment.)


Software Development Is Not Unique

It seems the software development community has thought itself to be unique in terms of demonstration of skill, and I believe that it’s an incorrect view of the software development world. We as an industry have a bad habit of this, as we’ve seen with the recent explosion of Lean Software Development and Product Development based theories and practices that are being assimilated into our craft. Psychology – especially social psychology – is as much a ‘touchy-feely’ art as it is science, in my opinion. Sounds a lot like software development, doesn’t it?

Taking A Page From Masters / Ph.D. Candidacy

The point of my lengthy blabbering is to say that I believe we should take a page out of the world of Masters / Ph.D. candidacy and defense to create a similar and as reputable form of Agile Developer Skills certification. There’s a tremendous history and wealth of knowledge to be pulled from, in the education and psychology community, and it would be a shame to ignore such a wonderfully paralleled industry.

What Do You Want To Know, About Kanban In Software Development?