Agile Zone is brought to you in partnership with:

Jurgen Appelo calls himself a creative networker. But sometimes he's a writer, speaker, trainer, entrepreneur, illustrator, manager, blogger, reader, dreamer, leader, freethinker, or… Dutch guy. Since 2008 Jurgen writes a popular blog at www.noop.nl, covering the creative economy, agile management, and personal development. He is the author of the book Management 3.0, which describes the role of the manager in agile organizations. And he wrote the little book How to Change the World, which describes a supermodel for change management. Jurgen is CEO of the business network Happy Melly, and co-founder of the Agile Lean Europe network and the Stoos Network. He is also a speaker who is regularly invited to talk at business seminars and conferences around the world. After studying Software Engineering at the Delft University of Technology, and earning his Master’s degree in 1994, Jurgen Appelo has busied himself starting up and leading a variety of Dutch businesses, always in the position of team leader, manager, or executive. Jurgen has experience in leading a horde of 100 software developers, development managers, project managers, business consultants, service managers, and kangaroos, some of which he hired accidentally. Nowadays he works full-time managing the Happy Melly ecosystem, developing innovative courseware, books, and other types of original content. But sometimes Jurgen puts it all aside to spend time on his ever-growing collection of science fiction and fantasy literature, which he stacks in a self-designed book case. It is 4 meters high. Jurgen lives in Rotterdam (The Netherlands) -- and in Brussels (Belgium) -- with his partner Raoul. He has two kids, and an imaginary hamster called George. Jurgen has posted 145 posts at DZone. You can read more from them at their website. View Full User Profile

Optimize the Whole = Measure at All Levels

03.30.2010
| 937 views |
  • submit to reddit
We know that measuring (and awarding) the wrong things in a system leads to nasty side-effects. And we know that self-organization allows a system to optimize for itself. In systems theory these concepts are known as the Sub-optimization Principle:

If each subsystem, regarded separately, is made to operate with maximum efficiency, the system as a whole will not operate with utmost efficiency. - General Systems Theory (Lars Skyttner)


The answer to this problem, and one of the basic principles of lean software development, is to always optimize the whole. Peter Drucker once said: “what gets measured gets managed,” and an alternative saying is: “what you measure is what you get (WYMIWYG).” Logically it follows that, in order to get an optimized whole, we have to measure the whole. What you measure (and constrain) has to cover everything, from start to finish, from top to bottom, or else the unmeasured and unconstrained parts in the system will self-organize toward sub-optimal results.

Many times I have struggled with the sub-optimization principle. I have measured overrun on projects at the team level, and subsequently got complaints from some team members that they were not responsible for the overrun, because they only got involved later in the project. I have measured individual skills, and subsequently got complaints that those particular skills had nothing to do with getting products delivered to the customer. Sometimes it seemed my only reliable metric was the steady number of complaints from people about the metrics.

Agile experts strongly believe that team members have to self-organize to optimize the output of the whole team, and not of the individual team members. I agree. But then many agilists suggest to measure only teams, not individuals. That’s where I am of a different opinion.

If this were a correct approach, then the same reasoning would apply to teams within a business unit, and business units within an organization. In every case measurement of (only) the subsystem would lead to sub-optimization at the next higher level. Taken to its extreme there would be one and only one proper metric: “continued survival and success of the whole organization,” which doesn’t look like a particularly useful one to me. (Note: even “profitability” is not a good metric at the organizational level, now that the credit crisis has proved that this metric alone also leads to sub-optimization.)

Evidently, optimize the whole cannot mean that we need to move all metrics to higher organizational levels. After a few recursive steps there wouldn’t be a sensible metric left to use. A more logical approach is to ensure that the combination of our metrics leaves no gaps in our measurements and understanding of the entire system. A metric of individual performance is fine if and only if it is augmented with metrics at the team level. And metrics concerning individual teams are OK if and only if supplemented with metrics for entire business units, and the organization as a whole.

One could even turn this into a fifth agile value:

Global metrics over local metrics.


While there is value in the item on the right, we value the item on the left more. But that doesn’t mean that the item on the right is unimportant…

(image by Pink Sherbet)

This article will be part of the book Management 3.0: Leading Agile Developers, Developing Agile Leaders. You can follow its progress here.

References
Published at DZone with permission of its author, Jurgen Appelo. (source)

(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)

Tags:

Comments

Sindy Loreal replied on Sat, 2012/02/25 - 9:09am

Good analysis of the problem. Unfortunately, you missed the final conclusion: *every* system of metrics for a complex system such as a software development organization will be incomplete. Therefore, coming up with such a system of metrics with the purpose of optimization (that is, using them in a motivational way) invariably leads to dysfunction! (See the book "Measuring and Managing Performance in Organizations".)

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.