Since the last global Scrum Gathering I worked together with a couple of Scrum trainers on principles to scale Agility in the enterprise (German, we are working on an English translation). We reached a point where we want to share our current results. In this blog entry I am going to take a closer look at our thoughts on global optimization. Stefan Roock already discussed Enlightened Customers (German). Andreas Schliep discussed the part on satisfied employees (German).
One piece of caution: I translated the original German text on the fly without consulting back with the others. It’s likely that we will work on the English translation and continue the word-smithing.
When scaling agile a separation of the whole product into (hopefully loosely coupled) component is mandatory. Purely local optimization of the components leads normally to sub-optimization on the level of the whole value stream. Therefore you need to ensure that always take the whole value chain into consideration.
Agility in a larger company means that there exists more than one team. Teams either work in parallel on totally different products or – what the case more often than not – on the same product. These are part of the whole value stream in the company.
Theoretically every team could find local optimizations that improve the own team. Unfortunately in complex organizations that does not lead to optimizing the whole value stream.
Local optimizations can be found surprisingly – and scaring to me all the time – in large organizations all over the place. For example take a story that Cem Kaner shares in his videos for the BBST course series that he once worked for a company where the testers were rewarded for finding more bugs. At first this might not seem to be sub-optimization. But in the same company there existed a second sub-optimization that makes the case more prevalent: the developers were rewarded for fixing more bugs.
In the end in that company there was no longer software developed any further although both departments clearly produced optimal results – according to their individual measures.
What was missing was the consideration of the whole value stream. In a football game (football in the European sense, not the American one) my team won’t be any better if I demand to have all players running as fast as possible for the whole 90 minutes. In the end, the goal to score a goal with the ball has an important role to play whether Germany or Spain wins the World Championship.
In general this raises the question how to watch out for the whole value stream. We derived three sub-considerations on this:
- transparency on all levels
- prefer in-person interactions
- create flow and rhythm
Transparency on all levels
All participants can inspect all information they need to make meaningful decisions for optimizing the overall situation. This includes especially objectives, facts, decisions and the current progress. To achieve that it’s not enough to collect this information and make it available statically. Dynamic exchange of relevant information is one of the key factors for continuous improvement.
For empirical process control to work transparency is important. Transparency is important so that self-organization can unfold and establish. Only when all employees have access to mandatory information on a daily basis are they enabled to make optimal decisions – and to speak to others if they don’t agree with their decisions.
You cannot create transparency only by providing all information for everyone. Depending on how effective that individuals filter out information that is meaningful for them, you might create an information overload. That is why dynamical exchange on the provided information is at least as important than the information itself. Through exchange with colleagues we find out whether we have a common view, and where hidden assumptions leak into our evaluation.
Transparency comes in two flavors: a comfortable flavor, and an uncomfortable one. The uncomfortable means that employees will notice clearly if they do harm to the organization. The comfortable flavor enables leaders and managers in the organization to accept more decentralized structures without risking the organization as a whole. Since all participants have access to all necessary information, they can also make good decisions that do not lead to local optimization, but instead improve the organization as a whole.
Prefer in-person interactions
Direct in-person interactions provides the highest information bandwidth to exchange knowledge, skills, objectives, needs, and concerns. Oftentimes implicit information and assumptions reveal themselves in direct interactions. In-person interactions are important within a single team, between several teams, and with the remainder of the organization as well.
In Tacit and Explicit Knowledge, Harry Collins describes the connection between tacit and explicit knowledge. He also identifies a set of ways to transfer knowledge. According to Collins knowledge can be transferred through writing, a translation of written words from one language into another, but also through coaching rules, for example as we use them when we learn to ride a bike. Beyond that a collection of knowledge is embedded in our cultural background. We cannot transfer knowledge about a dishwasher by dropping one down in the jungle. The jungle folk would need to invent the concepts of dish, electricity, and fluent water to make any meaning out of it.
In order to create transparency and good decisions, personal bilateral interactions are necessary. I remember a project I was part on a couple of years ago between an office in Germany and another one in Malaysia. We had an one-hour meeting on a daily basis in order to coordinate work between the two subsidiaries. Over time, though, we found out that something seemed to be wrong. During the teleconference we talked about things we wanted to do – and yet we were displeased by the other office (vice versa). Two weeks later the project managers in each office were able to switch from telephone to video conferencing for this meeting. We had a totally different meeting at once. We could see each other live. We could also see when someone didn’t get a particular sentence on the other side. Those meetings became dramatically more effective since we didn’t need to have long discussions about obvious things, and we could concentrate on the things that we disagreed with.
In the early years of this century, Alistair Cockburn published a lot more on the effectiveness of communication channels. In his work he raises the importance of in-person contact and bidirectional communication channels. Of course these principles apply to small as well as large teams, and their interactions internally, between each other, as well as within the whole organization.
Create flow and rhythm
Flow and rhythm across the whole value stream are an important pre-condition for hyperperforming teams. These teams flourish based upon clear objective, intensive synchronization, and fast (or eliminated) hand-offs.
Through the regularity of the Sprint a rhythm is created in Scrum. We meet daily to coordinate together. Every two weeks we sit together to plan the next two weeks and inspect the results of the past two weeks. These regularly appointments lead to regular synchronization.
In a scaled environment we need to extend this regularity to the whole value stream. The teams work in their own rhythms, but they have interfaces to the larger organization. That’s why they need to interact with other teams regularly.
In large organizations I can create flow and rhythm through regular retrospectives across multiple teams, maybe through a product release cadence, and exchanges within so called communities of practice. In practice releases with collective retrospectives create synchronization on product and process level. With exchanges among specialists, I can create a common view for example on the system architecture. This leads to fewer conflicts between multiple teams.
Why is global optimization so important?
For me, one of the key reasons that large organizations develop software slowly does not come from more complex or complicated products. Instead many local optimizations slow down the whole development, and therefore the whole value creation process. Since there are more potential local optimizations in larger organization, when introducing agility in these companies setting the focus on global optimization is very important. In the end, we don’t create more value faster when, for example, the test department finds many bugs quickly. The whole company can improve more if it finds ways to prevent as many of these bugs the next time to start with.
Global optimization helps us keep that common objective in mind that makes all of us faster. Transparency and direct interactions are the key drivers for this. We can make decisions more easily in a decentralized way. We also need to consider the role of the managers in agile organizations to achieve this. We also considered this important area. Christoph Mathis will be dealing with the topic of supportive leadership.