Beginning in the era of the industrial revolution, managers were trained and encouraged to focus on increasing productivity though increased efficiency. This trend has continued into modern management with techniques such as Total Quality Management that focus on identifying and eliminating waste in a system. It can't be denied that this approach can be very effective when applied to a consistent, repeatable process like a manufacturing assembly line. However, this focus on efficiency is inappropriate and even detrimental when applied to creative, problem solving activities like software development, and unfortunately these lessons learned from manufacturing dominate the way software development is organized and managed. It even influences some of the practices taught under the banner of Agile.
This fallacy, that software development can be organized into consistently repeatable processes, was the assumption of the waterfall methodology. Software development is much more akin to the type of work that goes on in a scientific research lab than the work that goes on in a factory. In an insightful article in the Journal Science, the author makes the argument that industrial management techniques are ineffective when managing knowledge workers such as scientists due to the nature of the work and the nature of the workers.
If we don't focus on efficiency, what should an organization focus on to get the best outcome? I suggest a focus on developer motivation should be the goal. An organization should strive to create an environment that maximizes the developer's creativity and problem solving capacity. One critical insight into the nature of a problem can be worth more than ten-thousand lines of efficiently produced code. A developer who is truly excited and engaged can be worth ten developers who are just efficiently going through the motions.
Fortunately, it's no mystery as to the factors that support creativity and motivation, the hard part is changing long ingrained traditions and ways of thinking. Daniel Pink, in his book Drive, clearly summarizes the scholarly research: in order for people to exhibit high levels of creativity and motivation they need a sense of purpose & community in their work, they need a sense of increasing mastery in their work, and they need a sense of autonomy in their work. All software organization structures, processes, and policies should be evaluated from this perspective.
Would we rather have great ideas and solutions to problems implemented inefficiently, or mediocre ideas and solutions implemented efficiently? Someone might ask: why can't we have both effectiveness and efficiency? I believe that structures, processes, and policies that flow from a focus on efficiency are incompatible with the factors that promote high creativity and motivation. They stifle innovation and undermine motivation and ultimately drive away the people with the greatest ability to create game changing outcomes.
This fallacy, that software development can be organized into consistently repeatable processes, was the assumption of the waterfall methodology. Software development is much more akin to the type of work that goes on in a scientific research lab than the work that goes on in a factory. In an insightful article in the Journal Science, the author makes the argument that industrial management techniques are ineffective when managing knowledge workers such as scientists due to the nature of the work and the nature of the workers.
If we don't focus on efficiency, what should an organization focus on to get the best outcome? I suggest a focus on developer motivation should be the goal. An organization should strive to create an environment that maximizes the developer's creativity and problem solving capacity. One critical insight into the nature of a problem can be worth more than ten-thousand lines of efficiently produced code. A developer who is truly excited and engaged can be worth ten developers who are just efficiently going through the motions.
Fortunately, it's no mystery as to the factors that support creativity and motivation, the hard part is changing long ingrained traditions and ways of thinking. Daniel Pink, in his book Drive, clearly summarizes the scholarly research: in order for people to exhibit high levels of creativity and motivation they need a sense of purpose & community in their work, they need a sense of increasing mastery in their work, and they need a sense of autonomy in their work. All software organization structures, processes, and policies should be evaluated from this perspective.
Would we rather have great ideas and solutions to problems implemented inefficiently, or mediocre ideas and solutions implemented efficiently? Someone might ask: why can't we have both effectiveness and efficiency? I believe that structures, processes, and policies that flow from a focus on efficiency are incompatible with the factors that promote high creativity and motivation. They stifle innovation and undermine motivation and ultimately drive away the people with the greatest ability to create game changing outcomes.
Comments
Post a Comment