Friday, April 30, 2010

I Am Not A Developer

I am not a developer.

I am a translator of user desires.

Developers too often are primarily technically-minded people. They care about new technologies and fun new "toys" they can play with. They care about such things as clean code and maintainability, which are great, but are only half the picture. In the end, clean and maintainable code is nothing more or less than the result of a human's ability to clearly organize their thoughts and speak them in a programming language.

Clearly organized thoughts come from clearly understanding the users' desires.

Think about it. Users want their computers to do certain things, but they lack the words necessary to tell the computer how to do it, which is why they hired you. They tell you what they want the computer to do, and you in turn tell the computer. This is translation. If you don't understand the business domain, you won't understand what they're saying, and you'll be inadequate at translating it. If you don't understand code, you may understand what they're saying, but you'll still be inadequate at completing the communication path. Regardless of whether the communication breakdown is between the users and you, or whether it's between you and the computer, it's still a communication breakdown, and you will have failed at your task.

Ultimately, users are going to measure the value of their programmers by their ability to not only communicate with them clearly, but to properly translate what they tell you into another language that the computer can understand. If you understand and speak both languages, you'll become the business users' best asset.

While the developer codes what the user says, the translator codes what the user intends, which is something that can only be done when the user is fully understood.

We are not developers. We tell the computer what the users want to tell them but can't because they don't speak the language.