Building better developers

By Robert L. Bogue, TechRepublic
14 February 2006 10:38 AM
Tags: developer, developers
TechRepublic
When you get right down to it, the best way to acquire the most talented developers for your project may be to build them, not buy them.

In reading about agile development, I've been struck by the fact that both traditional software development techniques and agile methods rely upon highly skilled developers to ensure success. It's no wonder that there's a focus on the best developers given that it's generally accepted that the level of performance for developers with similar experience can differ by a factor of ten or more. A great deal of development is still done in what is called "hero mode" development, where a developer or a small group of developers essentially will the software into existence through their dedication and tenacity.

So while the evidence is overwhelming that you need good developers, the question remains, where do you get them?

I've been involved with recruiting processes for more than a dozen years and I'll tell you with out a doubt that finding the best developers is possible -- but it's not probable. It's a difficult process and even after reading through a thousand resumes you may find only one or two developers who are truly the best.

But when you get right down to it, the best way to acquire the most talented developers for your project is to build them not buy them.

What makes the best developer?
Certainly what makes the best developer is subjective. Both agile and traditional development techniques need something slightly different from the developer. However, to boil what a developer practicing either technique should have down into a word - Thinking.

At the very bottom of Bloom's taxonomy of educational objectives for cognitive skills is knowledge. That is recall (or recognition) of data or information. Applied to development terms this means recognising the C# syntax or recalling the correct syntax to execute a loop.

At the top of the cognitive taxonomy is synthesis and evaluation. Synthesis is to be able to bring together diverse elements to form a new whole solution. Evaluation is the ability to make judgments about the value of ideas, approaches, or materials. Developers need to consistently apply these higher levels of cognitive ability to effectively perform their work.

Most people find the idea expressed as thinking more natural than describing the difference as cognitive process. In general, the more thinking that is being done about higher level ideas, such as how to integrate pieces to form a solution, the better the developer.

Finding the needle in the haystack
Before giving up completely on hiring (buying) the best developers, let's walk through the hiring process for developers by first examining technical skills. I routinely give a verbal test to candidates I interview for development positions. Since most of the developers that I am interviewing need to be able to operate effectively with a database, I ask them a simple question:

Given a customers table with a customer id field and a name, an order header table with an order id, a customer id, and other details, what query will return a list of customers that have no orders?

The answer requires correct knowledge of an outer join. (In SQL-87 syntax you can use a *= but that answer is getting less common.) My unofficial tally of the number of folks who gets that question right -- less than 10 percent. On average, I'm speaking to developers with college degrees and 1-2 years experience. However, my observation is that years of experience has little to do with whether they answer this question correctly or not.

To me, the lack of the ability to answer this question is indicative of a developer who doesn't fully understand the set-based logic that SQL demands. This is a baseline skill that I expect out of good developers.

Another question, which is much more fun because there is no right answer, is:

What is the thing you like most about Microsoft .NET?

Obviously, you can insert any technology you want into the question. The answers are very telling of what the developer is thinking about. If the developer tells me IntelliSense (The Visual Studio feature that helps you remember the interface of objects and methods) I know that they're primarily concerned with getting code into the editor -- this isn't the kind of thinking that makes a good developer. By the way, if they give that answer they get a mulligan. (Another shot -- i.e. "What else do you like?")

Advertisement

Talkback 0 comments

Sponsored content

Power Centre - Content from our premier sponsors

Blogs

  • Suzanne Tindal Sick of broken tender sites
    Some of the state governments desperately need to invest in more user-friendly tender sites so that looking for information on government tenders doesn't have to be a game of blind man's bluff.
  • Array Cyberwar: What is it good for?
    In this week's episode, Cyberwar. What is Australia's place in the world of digital warfare? What are the implications for the NBN?
  • Array Is wholesale-only backhaul just a pipedream?
    The potential acquisition of Pipe Networks by SP Telemedia has raised the question about whether vertically integrated backhaul providers will mean higher wholesale prices for ISP customers.
  • More blogs »

Tags

Back to top

Featured