Wednesday, May 6, 2009

Quality Developers

How do you know if you're a good designer?  How do you know if you're a good developer?

Everyone seems to recognize a good developer when they see one.  I'm not so sure, though, that we know what we're looking at.  I submit a good developer writes code which meets the customer's requirements, quickly, and the resulting software is easily understood by someone who is familiar with the domain--it is maintainable.  A good designer writes designs which, if implemented, meet the customer's requirements, quickly, and which, if given to a developer, results in software with the same qualities. There are other qualities as well: ability to work well with others, the ability to explain what they've done; the ability to communicate with business analysts to identify and clarify requirements, the ability to estimate the time needed... there are probably others.

By what metrics do we identify good developers and designers?

The industry struggles to identify metrics for code.  There is a developing body of literature on the subject; just google "software metrics" and you'll see what I mean. By contrast, I have never worked on a project which provided objective tools for developers to measure themselves. Since the projects I work on tend to stretch over years and cost millions of dollars, this seems like quite an oversight. (The same point can be made of technical project managers, but that's another realm from the one in which I work.)

As a starting point, applying code metrics to a developer's code over time might provide insights into a developer's skill as a coder.  But what about all the other skills necessary to be a good developer?  Developers, I daresay, spend most of their time translating requirements (be they in the form of traditional requirements, tests to satisfy, or a design to be implemented) into "local design" for the code they want to write. How do we quantify that?

I'm currently working my way through this article on quality metrics: http://www.developer.com/tech/article.php/10923_3644656_1.  I'll continue to post as I work through it.  I have a reading list; I'm hoping for insights. So far--nada.

No comments:

Post a Comment