Published on 2007-06-12 by John Collins. Please follow me on Twitter for more:
When I hear a manager describe a programmer as a "resource" I get very concerned. Sadly the belief that programmers are interchangeable units on a software conveyor belt is still widespread in the business management community, and I honestly believe that this fundamentally wrong assumption is a large contributing factor of many projects failing.
A programmer is a trained professional, working in a talent-driven field, who is entitled to take pride in a good project delivered on time and to expect some appreciation from management for such. Managers who see this programmer as an interchangeable part that can easily be replaced, often find themselves in the position of needing to replace skilled programmers who move on due to a perceived lack of appreciation causing poor morale. The downtime and cost of replacing the programmer costs time and money, which in turn has a serious impact on the quality of the software being produced and the reduced likelihood of deadlines being met.
All of these issues and other related ones: low staff morale, late deliveries, poor quality software, high staff turnover, poor successor management, dissatisfied customers, communication bottlenecks; can all be attributed to management failure to understand the very nature of what drives their business, the "resource" in question the computer programmer.
Martin Fowler describes the merits of the anti-resource mentality brilliantly in the following section of his article on Agile Methods:
I wish that more managers would read and consider the points raised in this article. Speaking as a programmer, I find the term "resource" being applied to me offensive.