James Robertson pointed me today to an interesting post by Peter Lindberg about the clash between corporate culture and Extreme Programming. In his post, Lindberg notes that unless an effort is done to incorporate that methodology to the company culture, it will likely fail when implemented. Or, as Robertson puts it, “[a] corporate culture has to be XP enabled before [a company] has any chance of success with it.” Lindberg also cites David Putman about the existence of two types of corporate cultures: emergent cultures, in which developers and management collaborate towards a methodology; and enforced cultures, in which management imposes methodological decisions upon developers. Obviously, as Putman writes, an emergent culture is required for a successful XP adoption.
I think this is valid not only for XP, but for any other methodology a company may decide to adopt. Any change within a corporation will go against the inertia inherent to the company, which means it needs to be understood and accepted by the whole relevant staff to be successfully implemented. I’ve experienced that fact countless times in every company I worked for. I can’t remember how many times I “persuaded” management of the advantages of a given technology or practice to see its implementation boycotted or ignored because management lacked will, vision, or understanding. Of course, if an implementation is to succeed, the company developers must embrace it as well. But that is less of problem since developers are naturally inclined to experiment with and acquire new technologies.
Cultures that deny those facts tend to create environments where innovation is rare and programmers are customarily alienated, which increases turnover and raises production costs. This is a common scenario here in Belo Horizonte, the city in which I live and work. Ironically, the same methodologies that can give companies competitive advantages are often shot down by management staff that is too ignorant or fearful. Even in a market where programmers are easy to find, companies are foundering here because they can’t manage change.
As a programmer, one of my goals is to create opportunities for beneficial changes. If I want to program better and get more satisfaction from my work, I need an adequate environment. To create this environment, I need to change the corporate culture in this direction. It’s a hard task, often unpleasant. Nonetheless, some of the most fulfilling moments in my career were those moments in which I managed to contribute to the improvement of the development process of the company where I was working for then and those changes resulted in a raise in the overall quality of that process.
The facts above highlight a well known problem: the productivity of a company depends largely on the quality and satisfaction of its programmers, which in turn depends on a satisfactory culture, which in turn depends of the adoption, by the hierarchical levels above the programmers, of values sometimes mistakenly perceived as opposite to market realities. This is a complex problem, and its solution can only be achieved by a delicate balance between the different areas of the company. Nonetheless, it’s a solvable problem as many companies have demonstrated. And once solved, it’s one of the keys for the success of any business.