A guest editorial by Tony Davis...
Wouldn't it be wonderful if there really was some easy test, a sort of psychological tape-measure, which could be used to quickly and painlessly assess a person's ability to be a good DBA or developer? If such a test existed, one could leave the whole tedious process of selecting and appointing team-members to HR.
Of course, many developers and DBAs are required to take a "psychometric" test when they go for interview but, despite the seductive claims of the companies that market these tests, I believe the results have little bearing on whether or not the person will perform well in their job.
I was reminded of the difficulty of assessing this sort of high-level skill last week, when I glanced through a couple of BrainBench tests for DBAs. A lot of work had clearly gone in to the multiple-choice questions, but I must admit that I struggled. I confess that I don't keep the names of the various types of cursor in my head, and I’m hazy on some of the DBCC commands. Is it really necessary for a DBA to memorise the numerous locking hints? The tests seemed to me to suggest that the essential difference between a good DBA and a poor one is their ability to memorise Books-on-line, which is surely not the case.
Structured testing has its place in recruitment, as an aid to judgement, but in order to be used with any confidence to predict future professional performance, the tests need to be validated. This means checking the predicted performance against subsequent actual performance, as assessed by professional peers. It is not enough for a test to look as though it would sort the sheep from the goats; it needs to prove that it can do so. This is a process that I imagine takes years and is very expensive, and I wonder how many companies actually do it.
A good database developer has effective strategies for finding bugs, an instinctive feel for set-based operations, and a knack for visualising entities and their relationships. Some of the really talented developers I've worked with seem to have the enviable ability to hold in their heads a spatial model of even the most complex conceptual structures.
Good DBAs have a more managerial role. As well as supervising the health of a complex maze of servers, they need to have people-skills, be able to articulate strategies, standards, and processes, and so on.
These are not skills that can be measured by asking people the name of the stored procedure that produces the source-code of triggers.
Cheers,
Tony.