Let me start by disclosing something: I don’t write tests as often as I should. I’ve done a ton more unit testing, specifically TDD, in the past 6 months than I probably have the rest of my life. However, sometimes I still fall back in to my “old ways” of just trying to cram code in and “get it done.” I do enjoy writing tests. I enjoy what writing tests lets me do, for example, refactoring code because I know it’s well tested.
I recognize the importance of testing, and I also recognize that it’s a bit of a rarity today. As I have resumes come across my desk, and sit across the table in interviews, I see it’s even more rare than I thought. Out of the coutnelss resumes and interviews I’ve done in the past year, I think only 1 or 2 mentioned TDD, and maybe a half-dozen even mentioned unit testing. (In fact, I think I’ve seen more people list VB4 on their resume than TDD — and that was released 17 years ago.)
Then I read Uncle Bob’s After the Disaster, It can be summed up with this quote:
When the disaster happens, what will the congressional and world court investigations find? Will they find a software industry that has defined a set of professional disciplines that it requires of it’s members? Will they find that the software industry has done the due diligence to ensure that it’s members are educated, trained, and skilled? Will they find that the software industry is composed of serious professionals who reliably follow their disciplines and practices?
Or will they find the chaos that exists today? Will they find developers who don’t write tests? (Can you hear the strutting politicians making hay with that? “Mr. President, it is my sad duty to inform this august body that these developers have no record that they test their code…”)
On the one hand, I thought “Well, I guess if I wrote my resume today, I should list TDD so that others know I have that skill.” On the other hand I thought “What a sad state of affairs that we don’t just assume our developers are writing testable and tested code.”
A few years ago, I sat in the engineering department for a manufacturer. My job had next to nothing to do with engineering, but it was an open desk, so I sat there. What I noticed is that the engineers there were doing structural testing of their models in SolidWorks. After that, they would often print off a prototype on our 3D printer, and finally they sent a functional prototype out to the test building.
These guys tested and tested and tested before they shipped anything. Recently I looked up one of those guys on LinkedIn, you know what I DIDN’T see listed anywhere on his profile? His proficiency at testing his designs. In the mechanical engineering world, it’s just expected.
So for right now, I think if/when I write my next resume, I’ll probably list testing on there, but I really am hopeful for the day where putting Unit Testing and/or TDD on a resume for a developer would make as much since as writing “Created a Hello World app.”