
A car is a wonderful tool. It can get you from one place to another quite effortlessly (well, assuming the two places are within reasonable distance). For most of us, cars are cost-effective and convenient. They serve their purpose amazingly well, at least until some higher form of transportation emerges.
There’s a lot to consider when you buy a car: its size, its fuel consumption, its popularity, maybe its color, and certainly its cost. But there’s one thing we take for granted when we go buy a car. No matter what car we are looking at, we are quite sure it will be able to serve its main purpose: to transport us from one place to another.
Unfortunately, when not used correctly, this allegedly innocent tool can actually be a dangerous weapon. If you drive recklessly, ignoring the road conditions, other drivers, and common sense, there’s a fairly good chance you will not only hurt yourself but also others around you. But even if you drive safely, but your car is poorly maintained, you can lose your brakes or have one of your tires explode. If this happens when you’re driving 80 mph it can get very nasty.
To use a car correctly and safely you need more than a driving license. You need a lot of common sense, and a great deal of restraint. You need to know the limitations of this tool, but you also need to know your limitations as a driver. You need to have respect for other people using the road and for life in general. To be able to actually get from one place to another using a car you need a great deal of maturity.
None of us thinks about it when we buy a car. A mature person doesn’t need to, because he already has what it takes to be a good driver. For him this is natural. The tragedy is that immature drivers – the ones that should really think twice before using a car — are not mature enough to understand the problem they have to begin with. They probably won’t acknowledge their problem even when something awful happens.
About a month ago I wrote about the inability of tools, processes, techniques, and standards such as ISO, RUP, SCRUM, XP, Agile, UML, TDD, and others to deliver the promise they carry: to improve software development. Each of these tools has its pros and cons. Each of them can help you deliver great products. Unfortunately, each of them can also be misused.
And here lies the irony. A mature organization, with a culture of openness, honesty, and introspection, is able to wisely use almost any good idea out there to improve the way people within it create software. When the same tools are being used by immature organizations, however, they are bound to cause more harm than good.
Burn-down charts with fantasy estimates, cover-up reviews, detailed UML diagrams that carry no useful insight about the internals of the product, and high coverage of degenerated unit tests — can all be more dangerous than doing nothing. They create the illusion of control — of a well managed project — while in fact, they are merely a facade for nothing more than plain old chaos.
For an immature organization, this is just perfect. As long as things are perceived to be in control, they are. And when eventually something disastrous happens, you will always be able blame the tool or, even better, that people using it. Because immature organizations don’t have the ability to look inside themselves and realize that no matter what tools they use, it is the organizational culture which is ill. A mature organization would have this ability, but then again, a mature organization will not find itself struggling with these problems to begin with.
What none of these tools offers is a way for immature organizations to grow and become better. Experienced people with a lot of common sense, wisdom, and intuition, conceived these tools. But these tools were all designed to be used by exactly such people, just like a car is designed to be used by mature drivers. For people to achieve this degree of maturity, they have to operate in a supportive culture – a culture that makes them room to grow in.
People in a mature organization know that. People in an immature organization cannot possibly begin to understand where the problem is. They will always try new tools, methodologies, and techniques, which work perfectly well for smarter organizations. Most of them will keep blaming the tools they use (and some of their people) for their failures.
***
See also part II: Grow Up, Will Ya!
Share this post:These icons link to social bookmarking sites where readers can share and discover new web pages.