After spending ten years doing what he describes as "learning what mistakes to avoid by making them" in software management, Jurgen Appelo is contributing to the greater software world with his new book, Management 3.0: Leading Agile Developers, Developing Agile Leaders.
I interviewed Jurgen to find out about the back story: The experiences, values, and motivations that shaped his thoughts on management and software development.
Matt Heusser: You seem to draw inspiration from many sources, but two of your primary sources are the Agile Development literature and complexity theory. How did you come to be interested in complexity theory, and what does that have to do with software development?
Jurgen Appelo: It would be great if I had a funny anecdote about this. But unfortunately I have none, because I have a very bad memory, and I cannot recall exactly when or how I got interested in complexity theory. However, I do remember that At Home in the Universe by Stuart Kauffman was one of the most inspiring books I have ever read. Kauffman described that complex adaptive systems are composed of interdependent parts that tend to cooperate with each other, without any top-down management. They create structure without having received a plan. To me this sounded very much like the preferred approach in Agile software development: Software developers cooperate, even though they all have their own careers and their own agendas. But through cooperation in teams, without top-down management, they are able to build solutions that transcend the goals of the individual developers. It is emergence through self-organization, just as Kauffman described. The connection of Agile development to complexity science was also confirmed by Jim Highsmith in his book Adaptive Software Development, the first Agile book I ever read. And so my appetite for complexity science grew stronger, and I read another 20 or so books about it. Some people get addicted to CSI, chocolate, or Michael Jackson. I developed an addiction to understanding complex systems. And I came to understand there is a lot that people don't know about them. With the terms "self-organizing teams" and "emergent design" the Agile community has barely scratched the surface of what complexity science has to offer.
Matt: If I can follow up, what does complexity theory have to do with leading developers and developing leaders—the title of your book?
Appelo: Complexity theory shows that self-organization can lead to anything. Self-organization is like gravity. It's not intrinsically good or bad. It's just there. Which is useful knowledge when you jump off a plane. Likewise, the owners of a business must understand that self-organization is always there. They don't want to plummet to oblivion. They want self-organization to lead to something that's good for them. That's why some boundaries and goals are needed to steer an organization in the right direction. Managers have the responsibility of defining direction and constraints, on behalf of the owners of the business. However, most of what managers do these days is not in line with complexity theory. Complex adaptive systems like beehives, immune systems, brains, cities, and economies are all developed bottom-up, and never constructed top-down. And thus, when we understand that software businesses are complex adaptive systems, we know that managers have a responsibility to grow their teams and organizations. Teams are not controlled, they are self-organized. And organizations are not hierarchies, they are networks. That's why people in an organization need to lead their colleagues, and not control them. And it's why leadership must be developed and not imposed.
Matt: One of your main concepts in the book is this idea of "Management 3.0." Can you tell us a little bit about what you view as management versions one and two, and how management version three is different?
Jurgen: The official story is that Management 1.0 is the command-and-control style of management that we still find everywhere around us. It assumes that managers find themselves at "higher" positions than their "subordinates." But a countless number of studies has shown that this style of management leads to dysfunctional organizations. Management 2.0 is my name for the many hundreds, if not thousands, of hypes and fads that we've seen pass by over the last few decades to make the command-and-control style of management work a little better. Business Process Engineering, Six Sigma, the Theory of Constraints, Good to Great, etc. are all fine ideas. But they try to add these ideas to the Management 1.0 architecture, which is clearly broken. And that won't work. I believe the basic architecture of the organization needs to be redesigned, from scratch. We need true Agile organizations. We need to admit they are primarily networks, not hierarchies. Authorization from shareholders to workers may flow through a hierarchy. But everything else, like communication, status, power, etc., flows through the network. It is a view of an organization as a complex adaptive system, instead of a machine. I call that Management 3.0. It takes Microsoft usually three versions of a product to turn it into something usable. The same might be the case with management. And that is the official story of the Management 3.0 name. The unofficial explanation is that I needed a name for a management book that would sell well among software developers.
Matt: Can you tell us a little bit more about these fads—do you think they ever worked, or do you think they worked in theory but failed when companies tried to implement them in a command-and-control way? And what is the alternative to command-and-control? I mean, we can sit in a circle and sing Kum-bah-yah, but it won't get the work done—we need some coordination of activities, right?
Jurgen: The fads were useful because they could cover up or mend some of the broken assumptions of Management 1.0. But in the end the cracks will always shine through. That's why we must think of the system as a network, not as a hierarchy. There is no master neuron to coordinate activities in the human brain. There is no master pacemaker cell to coordinate the beating of a heart. There is no master economist to plan and control a free economy. And birds seem to be able to coordinate flying and landing, without an expensive flight control center. Many teams are perfectly capable of coordinating many activities among themselves. However, that doesn't mean that managers have no role to play. On the contrary, there are plenty of things to do for managers in an Agile organization. Just not the things they have been doing under Management 1.0.
Matt: You say in the book that your first ten years or so in management involved learning what not to do by failing—would you say that is accurate? And, if so, can you give us some examples of those "not to do"s?
Jurgen: Oh, I did my share of bossing people around. I introduced metrics for the wrong things. I tried Agile practices that weren't really Agile. I evaluated people with standard HR forms. And I built applications that no true Agile person would admit to be responsible for. But I think I needed all these mistakes to understand why many things didn't work as I had hoped for. It helped me to accept the hard truth, which is that you cannot fully control a complex adaptive system. Anyone who says he can is either ignorant or lying. Unfortunately, it is the dominant way of thinking among many people. Politicians in particular. The attempts by governments to "prevent financial crises from ever happening again" is a sad example of it.
Matt: Well, that does sound like the typical laundry list of templates, metrics and processes. It seems like a common pitfall, and I admire that you're taking a swing at it. If you had to come up with one technique to help people avoid that pitfall, what would you suggest?
Jurgen: Read! It is amazing how few people actually read. All the knowledge and experience is out there, ready to be consumed. But most people simply don't read. For example, I have participated in heated debates about employee evaluations and year-end bonuses, and everyone-and-their-mother-in-law had strong opinions about these topics (especially when it's about money). But usually none of the participants have a clue what scientific research has to say about such topics. Year after year I saw the same arguments going back and forth, from people who were debating endlessly in blissful ignorance.
Matt: Early in the book you make the claim that complexity (too many interdependent things, working together) makes it impossible to predict outcomes with certainty. What does that say about COCOMO II, function points, and any other 'model' that looks at a number of inputs and 'predicts' the schedule? More importantly, does that mean that accurate estimating and scheduling is impossible? If it is, how should we respond?
Jurgen: My car navigation system also does estimations. Last year it told me it would take me 10 hours and 57 minutes to drive from Rotterdam, The Netherlands to Bled, Slovenia. Of course, this was nonsense. There were car accidents, traffic jams, road works, and extra breaks I needed to make to buy oil for my car engine, and a fluorescent safety shirt from customs at the Austrian border. (Anyone want it? I never used it.) It took me a total of 17 hours to get to my destination. Calculations are OK to get very rough estimates. If my car navigation says a trip takes 31 minutes, then I know there's a 99% chance the real time to my destination is between 30 and 60 minutes. It's the same with calculation models for software projects. And that still doesn't take into account the really bad things that could happen. Like my car totally breaking down. Or a whole software team quitting their jobs. How should we respond to uncertainty? Expect the unexpected! Don't let your career depend on your estimates. And have an extra credit card on stand-by.
Matt: So if we have this complex, adapting, self-organizing system—these self-managed work teams—what role is left for management? Under Management 3.0, what is it that managers...do, exactly?
Jurgen: My Management 3.0 model recognizes six main responsibilities for managers:
1.. Energize People: People are the most important parts of an organization, and managers must do all they can to keep people active, creative, and motivated.
2.. Empower Teams: Teams can self-organize, and this requires empowerment, authorization, and trust from management.
3.. Align Constraints: Self-organization can lead to anything, and it’s therefore necessary to protect people and shared resources, and to give people a clear purpose and defined goals.
4.. Develop Competence: Teams cannot achieve these goals if team members aren’t capable enough, and managers must therefore contribute to the development of competence.
5.. Grow Structure: Many teams operate within the context of a complex organization, and thus it is important to consider structures that enhance communication.
6.. Improve Everything: People, teams, and organizations need to improve continuously to defer failure for as long as possible.
Everything that a manager does, should satisfy one or more of these "views" on management. For example, if managers actively facilitate Communities of Practice (informal groups of employees dealing with certain topics) then this practice fits nicely in at least three views of my model (Develop Competence, Define Structure, and Improve Everything). Bringing your team a box of Belgian chocolates is also nice, though it would probably satisfy only one of the six views (Energize People). And quite literally, too.
Matt: Imagine for a moment the poor manager or senior contributor, stuck at a company whose management grew up with command-and-control. If anything, they've seen the fads of Management 2.0 fail time and time again. Could you suggest one thing to that person, or perhaps a small handful, to do in order to influence change? Specifically, to help the organization more toward this complex, adaptive way of working? What would you recommend?
Jurgen: No, I'm afraid I can't. Because complexity science tells me that A) solutions are context-dependent; and B) simple answers are usually wrong. And so, the way I was able to change my organization might not be the way you can change yours. And it probably takes a lot of little things, instead of one big thing. The only advice I can give is: learn... Learn about multiple methods, multiple practices, multiple case studies. And not only about software development, but also about communicating your thoughts, marketing your ideas, and networking with people. We don't expect a software developer to deliver quality products by learning just 2 or 3 tricks. Why should we expect this from managers? This is probably the hardest message in my book: the solution to manage a business is not simple, because the world outside is complex. It takes a complex system to deal with a complex environment. Of course, this message might disappoint people who prefer simple suggestions. That's why I described it in the last chapter, hoping that most people would never get that far.
Matt: Thank you for participating. Where can we go to learn more about you and your ideas?
Jurgen: I have a blog at NOOP.NL , where I write 2 or 3 times per week, and a ridiculously active Twitter stream (@jurgenappelo ), where I write 20 or 30 times per day. Information about my book is available at Management30.com, and it will be available on January 9, 2011. I am also invited to speak at a lot of conferences around the globe. So I hope to chat again with you soon. Thanks for listening!