[UPDATED 25th - check out http://blogs.msdn.com/ericnel/archive/2008/07/25/the-reddit-effect.aspx as well] 

Software companies have (broadly)

  • Managers
  • Marketeers
  • Sales people
  • Technical people who don’t code
  • Technical people who do code (much as you do) -  henceforth I will refer to these folks as developers. Managers, Marketeers and Sales People will be know as “the others”

What I find interesting is the dynamics of many companies and their approach to developers. The following all bother me…

  • “why can’t you just do my job as well?” – “the others” will often try to offload some of their role/tasks onto a developer.
    • Interestingly I have never seen a developer ask “the others” to write 50 lines of C++ before the end of the day. Hmmmm…
  • why don’t you understand?” – “the others” will get frustrated that a developer does not understand the “bigger picture”, the “end goal”, the “spreadsheet of numbers that proves it”.
    • Interestingly I have never seen a developer get frustrated with “the others” when they don’t understand generics, delegates or JIT compilation. Hmmmm…
  • why don’t you agree?” - “the others” will get frustrated that a developer does not agree when they present a reason for the developer to do something – admittedly based on pretty much no facts, hearsay or a whim.
    • Interestingly developers also get very frustrated with “the others” when they do not agree – although typically the developer will have a huge bunch of facts that prove why they are correct. Hmmm….
  • why do you need it?” - “the others” get confused that a developer needs 2 screens or a fast machine or a technical book or wishes to attend some training. By default “the others” prefer to resist any such extravagance.
    • Interestingly a developer never gets asked if “the others” should attend conferences, take customers on expensive hospitality trips, huddle up together in offsite planning sessions or get the latest tiny notebook or phone. Hmmmm…

Underlying this is the simple truth

  • A developer can do the job of “the others” – maybe (and often) not very well, but they can do it.
  • “the others” can not do the job of a developer – not even badly.

I spotted Mike T had posted something similar – and Joel gives a good insight into how to make a developer feel valued.