As Senior Architect for DNN Corp I get to be involved in interviewing candidates for developer positions within the company. Thankfully, I don’t have any direct management responsibilities - its not what I enjoy - but I am asked to interview candidates to determine both their technical competence as well as to help determine whether they will fit with the team chemistry.
The problem is many companies when hiring focus on the tools of the trade - the technologies we use - like Web API, jQuery or C#, and forget about what makes a great developer - the techniques that we use to build great software. And if companies focus on these easy to quantify items, its no wonder that developers focus on them in their resumes.
I like to make the analogy of a carpenter. Sure a carpenter needs to know how to use his tools - can he hammer, can he use his saw, but for a craftsman the real test is does he know how to build a functional cabinet - and just as important does his work look good. It’s the same thing with software, its not about how well you know the tools of the trade - the languages and frameworks, but do you know how to use them effectively - can you build or “craft” good software.
So if software is a craft how do we become good at our craft? And maybe, more importantly how do we remain good at our craft?
There are many ways to become good at our craft. We need to learn and stay up to date with the latest patterns and practices, so reading blogs, taking courses, attending conferences are all good ways to keep up. But, its not just enough to learn about the latest technologies - we also need to learn how to use them effectively.
I know that I am as guilty as the next person - I often focus on the cool new technologies, and don’t spend enough time improving my craft. But that is my New Year’s Resolution for 2014 - and part of that resolution is to blog more about Patterns and Practices than I have been doing.
So come along for the ride!! Lets all learn some great development practices together.