What does getting lost on the streets of Buenos Aires have to do with high performance? I could see my destination—a restaurant near Puerto Madero—clearly on the map in my hand, yet every turn I made seemed to take me farther away. It made no sense to me. I began to become frustrated. I always thought of myself as having an excellent sense of direction, yet none of my skills were helping me. What was wrong? I was about to give up and call an Uber.
Then I realized. I had been navigating using the context that I had learned in my childhood in North America, where the sun is in the Southern half of the sky. But I was in the Southern hemisphere, for the first time, where the heuristic must be reversed. So every time I turned left I should have turned right, and vice-versa. Once I realized the correct context, the map suddenly made sense and I quickly reached my destination (and had a delicious meal).
What had happened? I had been operating under assumptions that were not true for my current context. This disconnect happens often in organizations, and it kills performance.
Everyone in your organization should share a vision about the purpose of the organization. I don’t mean the goals—though those are important—but goals change, and I am referring to something more fundamental: an agreement that everyone’s purpose is to learn together. To learn how to deliver better products, more quickly, more safely, and more sustainably. To learn about the customer, the problem domain, and the tools that must be wielded to fill the customer’s needs. To learn.
This common agreement about how we make our decisions is what we call culture. And a culture of learning is paramount for achieving high performance. Seek to become a learning organization.
Your organization delivers software, so it should be obvious that improving your software delivery means improving your organization. But how to improve your software delivery organization? I’m going to tell you how, and you’ll be amazed at its simplicity: To improve an organization’s performance you need to improve all the components of the organization. And, you need to know how to improve each component.
An organization is made of…
An organization is made of three types of ingredients: people, process, and artifacts.
People
People includes you and your staff, the relationships among them and between them and others, and the culture that shapes these relationships. When we talk about “improving people,” we mean developing peoples’ skills and shaping the organizational culture.
Process
Process includes the path that work follows through the organization as value is added at each step along the way to the customer. Improving process focuses on optimizing this flow of value to the customer.
Artifacts
Artifacts are the inputs that flow into the processes, the outputs that result from them, and the tools and technologies utilized in processing.
A model for improvement
The Lean Startup movement inspired a very effective model for rapidly improving in uncertain and risky business situations. By rapidly iterating through successive Build-Measure-Learn cycles, you systematically reduce risk and uncertainty. Each iteration through the cycle examines and eliminates the greatest remaining risk as the organization learns how to reduce its shape, size, and probability. Over time, the business carries less risk and delivers better products and services, with increasing precision (to the right customers), reliability (service quality), and control.
Improving the components of your organization
By applying the Lean model to each component of the organization, we can arrive at a prescription for improving all of them.
Build people
By “build people” we mean improving peoples’ skills and the overall culture. Several methods are effective:
Model new behavior. Leaders adopt, demonstrate, and reward the new behavior. This is the quickest way to change culture.
Exercise the new skills. This is the most effective way to acquire new skills.
Train.
Provide a mentor.
Measure people
The extent to which a person’s skills have delivered the expected results can be measured by:
Review by others.
Test.
Learn what to improve next in people
By “learn” we mean identifying the next area that needs improvement. Two ways are effective:
Conduct retrospectives and blameless postmortems.
Analyze the results of the reviews and the testing (performed in the “Measure” step).
Build process
To build—that is, to improve—process you mercilessly simplify it. For example:
Reduce redundancy, handoffs, and re-work.
Reduce batch sizes and cycle times so less work is in progress but is completed more quickly.
Increase visibility so the current status of all work is obvious.
Empower people to use their judgment.
Shift the drudgery to automated tools.
Process improvement cannot be delivered in isolation, however. The people and the artifacts needed to support the process must be developed in order for the process to have the desired result.
Measure process
To measure the extent to which a process has achieved its desired result, audit the process. Look for evidence that the process was followed and that the desired results were obtained.
Learn what to improve next in process
To identify the next area of process improvement to pursue:
Conduct retrospectives and blameless postmortems.
Analyze the results of the audit performed in the “Measure” step.
Build artifacts
To build (improve) your inputs, tools, and outputs:
Reduce variance.
Increase tolerances.
Raise standards (i.e., decrease margin of error).
Measure artifacts
To measure the extent to which your inputs, tools, and outputs have improved:
Test (ideally automated).
Survey customers, internal and external.
Learn what to improve next about artifacts
To identify the next area of process improvement to pursue:
Conduct retrospectives and blameless postmortems.
Analyze the results of the tests and surveys performed in the “Measure” step.
Applying it
Try the above model for improving your software delivery organization. Like my other clients, you will see your software delivery performance improve dramatically. Contact me if you need help.