Springe zum Inhalt

Software development is a complex endeavour, that’s why Agile is very relevant. Agile methods enable us to cope with this complexity. I want to give one explanation why Agile works.

Ashby's Law - Photo by Dave Gray
Credit: Flickr - Dave Gray

This post will also prove that command-and-control is not working to solve a complex problem. I will show this by linking software development to Cybernetics, the science of controlling. The special discipline of Management Cybernetics was introduced by Stafford Beer in 1959 and relates Cybernetics to management. Economist Fredmund Malik references Management Cybernetics in his work. As I mentioned in the previous post, the science for leading agile organisations already exists.

Ashby’s Law

Ashby was a pioneer in cybernetics. Ashby’s Law is also called the Law of Requisit Variety. Understanding Ashby’s Law requires to understand variety. The variety is a measure of a number of distinct states of a system. This measure can be used to exemplify complexity in a system. Ashby’s Law describes the condition for the variety in two systems, that make it possible for one system to control the other.

Simplified, the law leads to the following rule: The higher the variety of the controlling system, the better it is able to cope with the variety of the system under control. If the system that I want to control has three different possible distinct states and the controlling system has only two possible distinct states, then the direct control will be impossible.

Let’s take another simple example to explain this law in our domain. The system that we want to control is an existing legacy software and the controlling system is a programmer that needs to fix a defect. Variety in a software system is higher, if the software system has more lines of code. The more options the programmer knows to change the code, the better are the chances to fix the defect. Or on the side: more simplicity in legacy code leads to better chances to fix the defect.

Imported to note is that we have two possibilities to get to a successful control and therefor a successful software development.

  1. Reduce variety in the system under control, which means simplify the problem that we are facing. It would mean to simplify the software or the scope of the problem.
  2. Create a controlling system with more variety, which means you get a more complex organisation in the project team.

Agile and Ashby’s Law

Let’s apply this to a another example. The system that is under control is a business problem that needs to be solved by creating a piece of software. The system that want’s to control is the project team. What can we do to improve the variety of the project team:

  • Skilled team members - the more tricks they know, the more options they have to contribute to the solution.
  • Collaboration between people to combine the variety of every single person. This increases the total variety of the team.
  • Team members from different function in one project team - a tester may see different options to solve a problem than a programmer.

These are only three things that help the project team. What are the things that reduce the variety of the project team, which we should avoid:

  • Hire less skilled people or don’t train people - well, that’s obvious.
  • Have a single person that commands other team members to execute his ideas. The variety of the whole project team is reduced to the variety of this single person.
  • Less possibilities to collaborate. Team members wont share their thoughts and combine them with others.
  • A fixed organisation with defined roles (Architect, Lead Developer, …). This reduces the options that the team has to re-organize and adapt in the solution process.

This explains quite nicely why so many things in Agile are helping us to get the job done. It also explains, why a command-and-control culture is not helping us to solve a complex problem.

What are the implications for management?

In Agile we make all the things explicit that increase the variety, e.g. self-organised teams that are empowered to make the decisions, no explicit roles in teams and close collaboration. As a manager you create the environment for such an organisation. This organisation is a complex social system and can be very precious, when it’s functioning well. You can compare it to a biotope. Like with a biotope, you cannot mindlessly intervene in the system. Making a change in the system may have destructive results, that you cannot foresee.

Since it seems very difficult to lead such a complex social system, managers usually fall back into old habits. They constrain the individuals, introduce roles, create hierarchies or directly intervene in the solution process. But all this reduces the variety in the development organisation and therefor will create a system that is not able to cope with the complexity. Additionally the complexity of the problem to solve will be reduced by demanding big upfront specification. And then we are back to the waterfall environment.

How can you create and lead an agile organisation, to actually cope with more complex challenges of the enterprise? I will cover this in the following posts.

There is a lot of noise around the management of Agile. A new discipline of Agile Management seems to be necessary and is discussed on conferences, in articles and is the base on new consulting products.

20130908-154255.jpg

Agile as a body of knowledge has its roots in Agile Software Development. For many years the community ignored the managers. Statements that managers aren't needed anymore in agile organisations were not very helpful to adopt new agile methods. Nowadays the management practices are much more in focus by the agile community. We understand that management plays the important role in the change process towards Agile.

What is an Agile Organisation?

The agility of an organisation can be described as the ability of this organisation to adapt to new market conditions. Depending on the products and the market the required agility may differ to actually qualify it as an Agile Organisation. Even with traditional processes a company could achieve some level of agility. Agility of an organisation's business alone is not enough to call it an Agile Organisation.

What I mean with Agile Organisation is the use of agile methods and the compliance to the Agile Manifesto for a group of people within a company. For example a multi-team Scrum organisation that creates one product can be called an Agile Organisation. The management of the Agile Organisation is the focus of this post.

What is Agile Management?

Agile Management is the management practice in the context of an Agile Organisation.

The term Agile Management indicates that there is something special in the management of Agile compared against the management of traditional organisations. While this may be true depending on the context, the knowledge in science of complex social systems and self-managed teams exists already for many year. The agile movement has not invented a new type of management. It rather discovered the knowledge and has incorporated it into the Agile body of knowledge. This means for managers that want to move to Agile - apart from learning the essentials of agile methods - they can re-learn or improve the knowledge about management based on what already exists in science.

There is nothing unique about the management of agile organisation, so I did not recommend to use the term Agile Management. It's because people may anchor on the wrong things: agile people may think that Agile Management is new and they have to teach managers their own - agile - way of management and managers may think that Agile Management is not adoptable in their company or it's a buzz word, that has nothing todo with real management.

My experience is that using the word Agile for everything, like Agile Marketing, Agile World or Agile Management, is not helping us to adopt our body of knowledge. I usually explain the real business benefits and the insights to convince people. Labelling it as Agile often creates immediate resistance.

What is good management?

We had a discussion on our company how an agile manager should behave. We brainstormed several properties of an agile manager, that I cannot fully recall. It was something like: supportive, empower the team, remove impediments, ...
My colleague David from the UK noted, that all these properties will make the manager a good manager (in the context of product development). Even, if no agile methods are used at all, a manager that behaves and leads his people like this, would create a very helpful environment for product development.

This means that we have organisations out there that are not using agile methods but with good management. I met some of these managers. Although they were not heading an agile organisation, they understood very well, what it takes to lead in the context of Agile. One difference is that agile organisations require good management. Agile does not stick in an organisation with bad management.

In the next posts I will continue with the topic "Leading in Agile".

Credits: Photo from Flickr Michael Heiss