Monday, July 20, 2009

Companies are Addicted to Profit Like Smokers are Addicted to Nicotine?

What I believe and what I'm discussing are two very different things. I absolutely can't agree more with pretty much everything Jim says in Define success....

My worry is that if an organization views its projects as successful, the argument that the success isn't sustainable may not be compelling. If so far, using its current methods, the organization has been making money, and as far as its managers can see, will continue to do so in the near future, how do you convince those managers that it needs to change?

It's even more difficult than convincing a smoker that smoking will kill him eventually, and that he should stop—at least in a logical sense. An organization isn't an individual, whose best interests are intrinsically aligned with the longevity of his body. An organization is a collection of individuals, who can leave at nearly any time. If the organization's methods aren't sustainable—if it won't make it through the next 50 years—how many employees really care, as long as they are currently able to cash their paychecks?

It reminds me of Alan Greenspan's testimony about the economic meltdown: "Those of us who have looked to the self-interest of lending institutions to protect shareholder's equity—myself especially—are in a state of shocked disbelief."

Yes, it's a shocker. It turns out that not everyone in an organization cares about its longevity, as long as they get their cash and escape before it implodes.

But let's assume better of employees of software companies, especially since most I've encountered really do seem to care a lot more than that.

It's still hard to convince people to change when the current model is "succeeding."

In organizations where meeting yearly financial targets takes higher priority than continuous improvement, the continuous-improvement conversation can end up working like this variation of being too busy sawing to sharpen the blade:

Lumberjack: Say boss, this blade is getting dull. It's getting slower for me to cut down the trees. I don't think we're going to make our quota.

Supervisor: You have a point. How long do you think it will take for you to sharpen the blade?

Lumberjack: I'm not sure. Since I've been working here, we've never sharpened the blades, so it's difficult to estimate how long it would take, because I'm out of practice. Plus, the blades are pretty dull, so it probably would take longer than usual anyway.

Supervisor: Hmmm. I'm not sure we'll be able to make our quota if we don't know how long it will take. We can't risk that. At our current rate of cutting, we can still make the quota if we hire in a few contractor lumberjacks. We'll do that.

It's not necessarily that the members of the organization don't want to improve—they may just think they don't have time given their current constraints.

And as far as the greater organization is concerned, they still made their quota. As far as it's concerned, everything is hunky-dory.

So, I'm back to the question. If the organization thinks the project was a success, but some people do not—some people think that success will be unsustainable in the long run—how do those people convince the rest of the organization that change is needed now?


  1. I think there's only one possibility of convincing the organization. You've got to be so passionate about it that you're willing to walk into a manager's office and describe the situation and the proposed solution. And if that manager doesn't hear you, then you've got to walk into his boss's office and describe the situation and the proposed solution, and so on, as far up the chain as you can. If no one listens then change won't ever happen.

    If you look at figures throughout history that have created change and you see that they lay it all out on the line. They're so passionate about it, that most people think they're crazy, but they don't care. They know they're right, and they're willing to bet the farm on it.

    If you're in an organization like this, then your only shot is to be open, be vocal about it (professionally, as I'm sure you will be), and be repetitive about it.

    If it's not received, then leave. You're a incredibly talented software craftsman. There's scores of companies out there that are headed in a much better direction who would die to have a talented developer like you.

    No sense going down with a sinking ship.

  2. If all of those people don't listen, then the organization will definitely fail in the long run. What's worse is when they listen, agree, decide to do what you say, then change their minds after the fact, leaving you wondering what the hell just happened.

  3. The much larger problem, IMO, is companies that don't take a deliberate look in the rearview at projects (at all).

    ... and tell that lumberjack's boss not to worry about the cost-benefit analysis of blade sharpening. It's time for a harvester

  4. Eeek, probably a bit out of my depth here, but I'll give a try. Some thoughts:

    1) There's a thin line between being perceived as passionate about your work and being arrogant. Jims advice on going over your bosses head to communicate an idea, is in my opinion, not a good idea. It creates resentment, and potentially can limit your career progression.

    2) To sell an idea to an organization, its much easier to get it accepted if you can outline the benefits of executing that idea up front. So for example consider the lumberjack case in the original post. Instead of saying "Hey, if we dont sharpen our blades, we'll miss our quota", consider "Hey, if we sharpen our blades, we'll not only meet our quota, but exceed it by x percent!". Management types love to hear solutions, not problems.

    3) Finally, if you want to sell an idea to management, not only has it got to be spun in such a way that it will benefit the business, but you have to outline up front what metrics you're going to gather from making that change. Consider the situation where a team of developers want faster machines, because its taking too long to compile their code. Just saying "We need faster machines, its taking too long!" wont work. You have to sell it like this: (lets assume for example that the team is practicing scrum).

    "If we get faster machines, the time taken to compile and test our code will go down. We reckon that it could go down by x%. The time we save can be spent on more revenue generating work for the business. Therefore we should see an increase in our velocity in successive sprints, and this is what we'll set out to measure"