The Grass is Greenest on Your Side

I just read an interesting message posted by Pi Guy on Joel Spolsky’s site.  This fellow works as a developer but does not like any of the non-coding aspects of his job:

I’m a “programmer” at a small web development company.  We do web design, asp/asp.net/sql server applications.

I generally like my job when I just stick to coding behind the scenes.  I’m one of those people that can code for 8 hours straight, and it feels like I’ve only been working for 4 hours — I really like coding.  The problem is that my job is shifting more and more away from coding:

Things I don’t like: – I have to go on sales calls as the technical person – I write 90% of the content of proposals (defining the scope of a project — the sales people say they aren’t capable of writing this part). – I’m required to tell my boss exactly how many hours a project will take before we’ve fully gathered requirements.  They base the cost of a project on these hours * an hourly rate.  So, it becomes my job to really gather the requirements because it’s my tail on the line if the hours are wrong. – I have to give out my business card to clients with my direct phone number.  So, they end up calling me first if they think there’s a problem.

Basically, I hate being involved in the sales process in any way.  I feel that the sales people could learn to do what they’re making me do, but they are too lazy.  Before I came here, I had ideas of just coding all day and being left alone.  I end up not developing my coding skills because I feel like I’m wasting my time on other areas that won’t help me to become a better coder.

Are programmers just programmers at other companies in general?  I’m just trying to figure out if the grass really isn’t greener on the other side of the fence.

NOTE: I understand that I have to work with people.  I totally accept that, and I really enjoy working with a team of developers.  My dream job is one where I work with a team of 3 to 4 programmers.  Another team would be responsible for gathering requirements them handing them off to us.

I am of the opinion that his job sounds great.  He gets to code AND be involved with the sales process AND have significant say-so in project estimates AND hear feedback directly from customers.  That, my friends, is a great recipe for being promotable and less likely to be laid off.  True, it would be nice if there were at least one layer of tech support between the customers and the developers, but in a small development shop it is not unusual for the developers to BE the tech support.

His message reminds me of my article Repeat After Me – I Am Not In The Software Business.  Pi Guy doesn’t appear to have the “I am an artiste attitude,” but he certainly does seem to be blind to the incredible opportunities that come along with being involved in the business side of the house.  Due to the huge (and often fragile) egos that inhabit our industry, no developer on earth wants to admit that writing the code is the easiest part of what we do, but it is.  Developers who are able to add value beyond coding by performing functions that translate the business needs into a technical context and back again are the ones who will remain employed in the near future.

Pi Guy, I say you should embrace the non-coding parts of your job.  I’ve been out here for 11 years, and trust me – the grass appears to be greenest on YOUR side this time.