I believe one of the fastest ways we developers can lose the respect of so-called “business people” is to behave like technicians.
What do I mean by technician? Here are some things a technician might do:
- Become visibly angry when a business reality compromises their carefully planned inheritance chain
- Declare that they are blocked on implementing the automated notification system the business requested until someone tells them what the subject line of the emails should be
- After hearing the description of a report the business would like to see, their response is, “Can I use D3?”
The technician thinks primarily in terms of technology and expects the non-technical person to adapt to this way of thinking when the two interface. As Chad Fowler explains in My Job Went to India:
You might be “just a programmer,” but being able to speak to your business clients in the language of their business domain is a critical skill. Imagine how much easier life would be if everyone you had to work with really understood how software development works. You wouldn’t have to explain to them why it’s a bad idea to return 30,000 records in a single page on a web application or why they shouldn’t pass out links to your development server. This is how your business clients feel about you: Imagine how much easier it would be to work with these programmers if they just understood what I was asking them for without me having to dumb everything down and be so ridiculously specific!
The technician believes that careful choice of technology is primarily what makes a software project successful. Peopleware tells us otherwise:
The main reason we tend to focus on the technical rather than the human side of the work is not because it's more crucial, but because it's easier to do. […] Human interactions are complicated and never very crisp and clean in their effects, but they matter more than any other aspect of the work.
If you find yourself concentrating on the technology rather than the sociology, you're like the vaudeville character who loses his keys on a dark street and looks for them on the adjacent street because, as he explains, "The light is better there."
Imagine that you were feeling depressed and decided to see a psychotherapist. After an emotional retelling of your troubles and the pain you’re feeling, the therapist responded with, “Would you like me to treat you with Gestalt therapy, ACT, or psychoanalysis?”
Avoid being labeled a technician:
- Exercise independent judgment regarding non-technical decisions. You’re not a code monkey!
- Also, don’t foist technical decisions on non-technical people.
- Care about the high-level objectives of the software you make. Show a holistic concern for the success of the project.
- Ask stakeholders about the why behind the features they want.
- Use the language of the business when talking to non-technical people (and as much as possible with technical people).
As you move from technician to solution provider, people treat you differently.