≡ Menu
Pawel Brodzinski on Software Project Management

Local Optimizations Aren’t (Always) Evil

Local Optimizations Aren’t (Always) Evil post image

A message that we hear over and over again is that we should optimize the whole and not the parts as local optimizations often (arguably always) result in making the whole operate less efficiently.

I don’t want to bring up such stupid examples as counting lines of code (Want some? Here it goes!) or counting bugs (Whoa! This window has a dozen glitches. Why don’t I submit dozen tickets?). Listen to John Seddon’s stories for some less obvious examples.

So let’s assume that we should focus on optimizing the whole.

Now, tell this to this line manager who works for a couple thousand-employee organization. How the heck can this poor guy leading five people optimize the whole? Most likely he can’t. Well, of course he may, and should, fight his way up there to make his managers aware of problems he sees and help them to convince their managers, who need to get through to their managers, etc. A couple years later someone, finally, tells the CEO that she has a problem, so she makes the right decisions to optimize the whole.

Except it doesn’t work this way. Most likely the message is ignored on one level or another. It’s actually pretty common that it doesn’t get through past the first level of a hierarchy. So we’re back to square one: our poor leader can’t optimize the whole. He neither has the visibility nor the power to do so.

Should he fall back and sit silent?

Hell no!

He should make a goddamn paradise out of his tiny slice of the organization. He should optimize locally to the point where his team is the most effective team on the planet Earth.

And yes, I am pretty much aware that many of these optimizations mean suboptimizing the whole. Actually, that’s perfect. Yup, I’ve just said it: that’s perfect. It means the guy’s manager needs to act. Set some boundaries or constraints. Point out how the manager harms the rest of the org. Otherwise the boss is just accepting the fact that the overall performance of his teams will drop. Of course he will still have this rock star team, but I guess you don’t get much praise for having a star player and, at the same time, seeing your team relegated to a lower league.

There’s another nice side effect of the situation. These local optimizations, as long as they’re reasonable, are likely to virally spread throughout the organization. It means that the change starts affecting more than just a single team or even a division. It starts changing the whole org. For better or for worse. The role of senior managers is to funnel these changes into the right direction.

After all, when our line manager changes the part of the organization which he can comprehend isn’t it optimizing the whole from his perspective?

So roll up your sleeves and make your part of the company the best freaking team/division/what have you in the freaking world. Make your boss think how to set you constraints in a way that it doesn’t result in suboptimization of the whole.

in: team management

2 comments… add one

  • Alexei Zheglov September 4, 2012, 9:18 pm

    Great post! Another outcome of such local optimizations is learning. A sustained attempt to improve a team or department generates learning, which is priceless. And it will stay with the change agent even if the improvement doesn’t spread to the rest of the organization.

  • Zsolt September 6, 2012, 2:32 am

    I have been in the pursuit of global optimization and tried to figure out why the people around me didn’t got message. Maybe the “global” level is too high as you pointed out. Thanks for that!

    I was thinking about local optimization a lot and I’ve found two categories: the one which works towards the global optimization and the lazy+selfish which is like taking a placebo, but you can talk about it a lot.

    For example, a hot topic here is to solve the TODOs in the code. I’m pretty sure that there will be a slide which will tell us that the number of TODOs went down from 100 to 15, so we improved our code base. Nobody talks about the fact that we put them there instead of doing the work properly. The TODO list elimination is something easy to do and one can talk about it a lot. That is just wrong.

Leave a Comment