The Human Resources of Software Companies

In the corporate environment, managers often refer to employees as “resources”. I believe that referring to people in this way is dehumanizing, and it irritates me. (“Bodies,” “heads,” “headcount,” and “hands” are some other ways managers refer to employees. These terms are marginally less irritating because they at least acknowledge that employees are living beings.)

I’m not one to take offense easily at casual, expedient, or conventional language that happens to be politically incorrect. The fact is that good managers think deeply about the acquisition, maintenance, improvement, and removal of the company’s resources and assets. They think deeply about how to extract maximum value from those resources and assets. When considering the human activities of a company, they may focus their planning and thinking on the quantities of skills and behaviors required to get a job done. Such managers may, for the sake of expediency, think and even talk about employees as the “human resources” to be hired, managed, trained or removed. They may think about how to extract maximum value from their employees. This is a useful, productive way of thinking, and there is nothing wrong with it.

I am irritated because hearing people referred to as “resources” reminds me of bad managers. Unfortunately, too many managers are so lazy as to assume that they need not think deeply about the hiring, management, training, or removal of their employees. Too many incompetent managers assume that employees can be acquired, exploited, maintained, improved, or removed in exactly the same way as equipment and other hard assets. Bad managers fail to distinguish properly between human and non-human “resources,” and this failure is reflected in their policies, communications, decisions, and actions, with destructive consequences.

In understanding the failure of this distinction, it is useful to consider how human and non-human resources are alike, how they differ, and what this means for resource managers.

Companies invest in ownership of facilities or equipment and in human resources (the salaries and benefits of employees). Unlike manufacturing companies, software companies invest more money in their employees than they do in any facilities or equipment. One would expect that employees are software companies’ most valued resources. Yet, this is not always reflected in their managerial policies, communications, or decisions. One would think that the “human resources” function at a software company is as important as the chief operating role in a manufacturing firm. Yet, this is not the case.

Factory managers are trained and funded for the care and maintenance of their machinery. They may derive benefit in upgrading or improving their machinery, to maintain or increase its value, instead of replacing it. Unfortunately, software managers are not necessarily trained or funded for the care and maintenance of their employees. Indeed, Microsoft and other software companies have been criticized for chewing software engineers up and spitting them out. To the extent this criticism is warranted, it reflects a tragic ignorance of the fact that people can be “upgraded” and “improved” in ways that machines cannot. People can be trained, and properly-trained people have greater value to the company. And the amazing thing is that many “human resources” are self-motivated to increase their value to the company, through training and other forms of self development.

A factory manager seeking to improve a machine’s productivity quickly reaches diminishing returns on his investment. Meanwhile, as Ware Myers noted in his 1998 article, Why Software Developers Refuse to Improve, the most productive software engineer in an organization may be 20 times more productive than the least. Yet he or she is almost never paid 20 times as much. What this means is that investments in various kinds of employee development have enormous potential returns.

A key management function in any company must be to eliminate the destruction of value. A machine that overheats, explodes, or consistently produces defective products should be repaired or, if irreparable, replaced. Similarly, a software engineer who consistently introduces defects or limitations to the product, or who poisons the work environment, should be trained or, if absolutely necessary, terminated. Yet, software managers are rarely trained to recognize or correct the destruction of value by employees. And they are rarely trained to remove chronic destroyers of value.

The best a machine can do is produce a high-quality product. But the best software engineer not only produces high-quality products, he or she seeks creative ways to produce higher-quality and more valuable products. Machines cannot repair or improve other machines, but some software engineering leaders can train or motivate other engineers to improve the quality and value of their work. When management stifles such creativity or leadership, it is not only a grave injustice to those leaders, it is detrimental to the company as a whole. Managers should encourage and reward such leadership and find ways to direct it productively.

The punishment of calculated risks, especially those resulting in failure, is the key symptom of an environment that stifles creativity. And corporate complacency, systemic satisfaction with the status quo, is the key symptom of an environment that stifles leadership.

A corporation that treats its employees like machines, to be bought and overworked until they break, handicaps itself, and no self-respecting capitalist should finance it.

Tags: Business, Philosophy

Updated at: 21 February 2017 1:02 AM