I really enjoy what I do, and though I work in a chaotic environment, I really do love my job. Being in the Software Development industry has some really nice perks, being a developer in today’s world really is a great thing. Development isn’t easy though, it is quite mentally demanding; clear focus is of paramount importance. Without absolute focus, progress will only be a dream. This fact is a key player as to what makes being in this industry so great.
That is, if you aren’t a monkey.
In the time I’ve spent so far at my current company, I’ve come to understand just how clear the separation is of the two primary developer types. From all of my previous contracting work, I believed that the differences between the two sides of the fence were minimal. Wrong.
There are, fundamentally, two types of developers:
- Monkeys – Developers that work as part of the IT department of a larger company.These developers create software primarily for internal use.
- Superstars – Developers that build software that primarily used externally.These developers typically write software that is sold commercially.
These two groups form the basis of the industry, and how the two are treated. While one could say that “a developer is a developer, right?” – That is not only quite wrong, it’s sadly misinformed. The line between the two is quite clear, at to me, clearer than ever.
The difference between the two largely comes down to how they are treated, and the respect they receive. There is an entire list of small differences, here’s a few:
- Interruptions – Our monkeys tend to receive far more interruptions, providing a constant source of distractions. This causes the developer to achieve less productivity, and thus incur more pressure. The pressure typically comes in the form of increased distractions due to projects being late.
- Creature Comforts – The superstars normally see more perks to make their life better, be it the very nice though oddly shaped Aeron chair (at a mere $900 each), or a retired airplane wing – just to spruce up the place. That’s not to mention simple things like higher end PCs, or decent desks. These are things that our monkeys often have to learn to live without, as the budget is far too tight to allow the extra spending.
- Responsibilities – The monkeys in the industry often have far more projects that they own. This helps to contribute to the increases distractions, as well as further removing the ability to stay focused on a single task. With a dozen or more projects under a single developers ownership, the day-to-day issues of managing them all can be overwhelming.
- Freedom – Superstars are often given a fair bit more freedom, both in what they work on, and in exploring new methods and technologies. This not only adds value for the company by staying on the cutting edge, but also for the developer. By staying on the cutting edge, it increases their marketability.
These are just a few simple examples, there are many, many more.
This is a complex yet simple question. The same applies to the answer, simple in that it can be summed up in 3 letters, yet complex in its ramifications. The answer: ROI.
One of the most basic business metrics, Return on Investment, this is the key to how many managers see the world. With superstars this is an easily defined number; simply compare your net projects to what you are paying the developers for that project. While that won’t give you a complete picture due to other costs involved (such as marketing & support), it does give you a starting point.
The picture with the monkeys is quite different in that there doesn’t exist a clear way to establish ROI for a developer, when there is no profit connected to their work. While we could use estimates, such as the cost of hiring a consultant, though that would be highly inaccurate, and is thus mostly ignored.
This is the issue, if management can’t place a dollar value on the development work currently underway, they simply will not see any business value in giving the developers what they need. It’s just that simple.
I honestly wish there was an answer here, but there isn’t. Management doesn’t seem to grasp the importance of internal development in many companies, and I can’t say I see a change coming. This requires upper-level management to change their mindset when it comes to the nature of creating software, and IT in general.
While it’s simple to sit here and explain what’s different and why, thinking of a way of leveling the playing field far less so. I’ve spent a fair bit of time trying to think of an answer, so far the only one that’s occurred to me is to either move to the other side of the fence, or become a consultant.
This article, in its first draft, also included a few addition personal details that did add to the motivation to write this. Among these, were the details of the computer that I was given when I started my current job. The system was a small Dell PC, 1.3GHz, 256MB RAM, and to complete the package, a 15-inch monitor. There were quite a few other, similarly annoying, details as well. Thankfully, at least some of these have improved (still far from what FogCreek offers though); I’ve opted to remove that section in the interest of fairness.
Originally, I had intended this to be more of a scathing look at working as a monkey, this was changed in hopes of finding a middle ground, so that hopefully this article will generate some useful feedback on the problem, and how best to address it. I would appreciate any constructive comments on this, it’ll be interesting to see if there are any possible solutions (well, I’ll be happy with a step in the right direction).