This will be a chronological summary of the topics I have encountered and reflected on the past 6 months. I hope this will give you some present perspectives on what has happen for yourself during the second half of 2019.
One interpretation of what agility means is our ability to adapt to new information as it becomes known to us. In other words, it is not our ability to plan that is of essence, it is our ability, AND willingness, to change that plan. One approach to having to change the plan less often is to make smaller plans, i.e. reduce batch size. Some of the benefits from reducing batch size are:
- Reduce Cycle Time
- Less variability in flow
- Less overhead
- Lower risk
- Faster feedback
- More motivation
- Manageable slippage
- Higher efficiency
- No Death Spirals
The main reason why it is difficult to plan software development lies in its difference from manufacturing, namely uncertainty. Or variability caused by uncertainty. In development, and any other area where knowledge workers are involved, we never solve the exact same problem twice. Which inherently means we can’t reduce variability since every solution is unique.
In order to lead a team that is working within this complex domain of software development you need to realize that your job is to prepare the team to learn their way out of problems they have never seen before. Much like trying to solve an escape room.
More so, if you take a high-level view of the organization you can use simple flow theory to figure out ways to improve your system and use powerful metaphors such as a stretch of road.
On this stretch of 100 km long road we have 2 lanes going in the same direction and a speed limit of 50 km/h.
Assuming a car length of 5 m we can at any one time have 40.000 cars on this road. If travelling at the speed limit, each car will need 2 hours to reach the end of the road (cycle time). Thus, we have a maximum throughput of 20.000 cars/h. However, as anyone who has been in a traffic congestion know, at 100% utilization the speed of travel
is much closer to 0 km/h. But for the sake of the example, let’s assume it is 5 km/h when there are 40.000 cars on the road at the same time. This gives each car a cycle time of 20 hours resulting in a throughput of just 2.000 cars/h.
What’s notable here is that the purpose of the cars is to take people from A to B, we are travelling from A to B because it is valuable for us to be at B. There is no value in being in transit. So how can we minimize the cycle time for each individual car? The easiest way to achieve this is to reduce demand for work to a level that will never breach the WIP limit. (Manage the queue)
In order to make sure that we only allow vehicles on the road that can travel at the speed limit, we need shift focus with the estimation process to create uniform pieces of work instead of producing an estimate. To manage the queue and make room for this, a good idea is to use the list below as described in the Opportunity Canvas created by Jeff Patton.
- Problem & Solution Ideas
- Problems: What problems do prospective users and customers have today that your solution addresses? What needs, goals, or jobs-to-be-don should your solution address?
- Solution Ideas: List product, feature or enhancements ideas that solve problems for your target audience.
- Users & Customers
- What type of users and customers have the challenges your solution addresses?
- Look for differences in users’ goals or uses that would affect their use of the product. Separate users and customers into different types based on those differences that make a difference. It’s a bad idea to target “everyone” with your product.
- Solutions Today
- How do users address their problems today?
- List competitive products or work-around approaches your users have for meeting their needs.
- Business Challenges
- How do the customers’ and users’ and their challenges above impact your business? If you don’t solve these problems for your customers and users, will it hurt your business? How?
- How will users use your solution?
- If your target audience has your solution, what will they do differently as a consequence? And, how will that benefit them?
- User Metrics
- What specific user behaviors can you measure that will indicate they try, adopt, and place value in your solution?
- Adoption Strategy
- How will customers and users discover and adopt your solution?
- Business Benefits and Metrics
- What business performance metrics will be affected by the success of this solution? These usually change because of users actually buying and using your solution.
When we have control of the queue, we will enable the teams to focus on achieving a predictable delivery in the short-term, which will make it possible for the organization to achieve predictable deliveries in the mid-term. While also enabling faster decision making on organizational level regarding business priorities.
As a measurement on whether you succeeded in only allowing cars on the road after having gone through the estimation process on a team level, you can use average cycle time.
Cycle Time = Avg. WiP / Daily Throughtput
Daily Throughput = Completed Issues / Working Days
Average WiP = [Open Issues(Start of Sprint) + Open Issues(End of Sprint)] / 2
For this to work you need to be ready to throw most of the incoming requests in the trash so we can properly prioritize. To help with this prioritization it can be useful to apply a simple view such as the 2 categories Value Demand and Failure Demand.
Value Demand is all work that follow the structure – “If we solve problem A, we will enable a realization of business value X”.
Failure Demand is all work that is meant to correct faulty problem solving connected to previous Value Demand work, i.e. bugs. Unintentional side-effects that doesn’t work as intended.
All the above requires change. Successful change starts with a question, which then it grows into more questions, to eventually evolve into solutions. A huge success is when we all start to question the reason for why we do things, and then ask; can’t we do this differently? Art of leadership’s role in change is to supply Vision, Alignment and Motivation. A vision representing the picture when all our current and future imagined challenges are no more by striving for alignment through, e.g. metaphors that represent our challenges and we all believe the improvements discussed in connection to the metaphor, resulting in motivation to act and continue asking questions.
A short test of your mindset:
Person A – Can you give me a status update on the Alpha project.
Person B – No… but how can I help you?
What do you see when you read this? Do you see disobedience? An employee who is refusing a request from a superior?
Or do you see genuine care from Person B by trying to understand why the request is being made to help in solving the real problem?
However, getting to a point where we all ask questions mean that we intend to change individual behaviour, which is the same as changing company culture. To achieve this, we all need to work together to define the boundaries within which we want to and need to operate.
A challenge in the pursuit of such a collaborative way of redefining company culture is Learned Helplessness. This is a state that occurs after a person has repeatedly experienced a stressful situation. They come to believe that they are unable to control or change the situation, so they do not try — even when opportunities for change become available.
Another way to view learned helplessness is through the lens of tribal leadership where 5 stages of being is outlined:
- Life sucks for everyone
- My life sucks
- I am great, everyone else sucks
- We are great
- Life is great in general
Learned helplessness can be connected to stage 1 and 2 behaviour by modelling the mental state with the addition of the words “… AND I can’t do anything about it”. Helping people escape the shackles of these stages is usually done by helping people gain additional perspectives.
This, among other things, suggests that the most important stakeholders for any leadership team is the employees. If we take care of our employees, our employees take care of our customers. Which makes it very difficult to understand whether you, as a leader, is doing a good job. One model to use is one that depicts alignment and autonomy in a pursuit of becoming a highly innovative organization.
This model suggests that if we have aligned autonomy, we will be an innovative organization with a collaborative culture, implying that we will be delivering value to the overall business. Without digging further into the theory and research behind this right now, some work done in this field talks about enabling personal responsibility and leadership and breaking it down into a three-element field system (Smith and Sharma, 2002). The three elements can be seen in the picture below and how they interact.
The aim is to achieve a balance between the three different elements to allow people to be within the overlapping surface in the middle where they essentially “will act”. The individual elements can be measured satisfactory with a 5-point Likert-scale questionnaire consisting of the following statements:
- I have a good idea of how our company is meeting its competitive challenges
- Our team’s goals for the future have been made clear to me
- We all know the best way to go about getting our team’s work done
- I am fully aware of how my contribution will be valued
- Our team has full access to the information we need to get our job done well
- The work our team does is very meaningful to me
- I feel a strong sense of belonging to this organization
- We put in extra effort when we get behind schedule
- The company and I believe in substantially the same values
- I feel the organization can be trusted to have my best interests at heart
- This team has the skills to do the job
- Resources are made available when required for unexpected priority work
- Management is organized for effectiveness
- I am trained to fulfill my role
- Our teamwork is excellent
The following questionnaire will give us the ability to understand where we should be investing more effort, see differences between teams to identify knowledge sharing opportunities and all-in-all validate the work we do.
This provides a good tool for us to quantitatively measure the qualitative outcome of our perceived leadership, which is a key capability of achieving change. When driving change, there are 3 things you need to know; where do we want to go, i.e. desired future state; where are we now, i.e. current reality; what is the first step in the right direction, i.e. how do we begin the transition. If we look at the overall system, we have the following images:
(Current reality: where commitments are perceived by the teams as being made on behalf of them)
(Desired future state: where teams take responsibility for their own commitments and have a strong ownership of the outcome)
The equivalence of the first step of moving in this direction is to actively begin to classify all the grey vehicles on the road. When we find an elephant on the road, we lead it off, since we assumed it was a car.
This is a good time to use the same sentence I used in the beginning; one interpretation of what agility means is our ability to adapt to new information as it becomes known to us.
If we don’t react to our findings it’s like Schrödinger’s cat, where we look in the box and ignore what we see, still claiming both states as true.
We should not only be concerned with the system from a pure delivery perspective, however. We also need to look to the future and an important aspect of that is succession planning. Are we creating the leaders of tomorrow within our organization? Are there clear enough career paths for people that are interested in leadership? Also, are there clear enough career paths for people who are not interested in a leadership position. Can they build a career and stay within their field of expertise, or will they reach a certain point and then be forced to leave to develop further?
But going back to the core of what we are here to do, solve complex problems. It is very easy to feel time pressure and end up in a mode where we implement solutions. This is dangerous and can lead to group-think. In order to combat group-think, we need to encourage understanding of the problems we are facing and facilitate the creative team process by making sure most of the team is involved in most of the conversations connected to a request. This will enforce a sense of purpose, which is the path to ownership and accountability.
In our pursuit of ownership, an important aspect to highlight is that of understanding when it comes to the problems we aim to solve. One hierarchy of information I regularly use is; knowledge, understanding and last wisdom, and I often talk about them in connection to the role of a mentor. Quoting myself –“Mentorship means providing input, advise and perspectives based on experience. In order to be a good mentor you need to acquire knowledge, put it into practice to develop understanding and fail repeatedly to eventually possess wisdom. A good mentor can convey wisdom in a way that makes them seem like prophets”.
These three levels of information are key when we want to create an organization that is good at solving complex problems. We need to make sure the environment is there to enable everyone to reach understanding (from a business point-of-view). This environment will be one that is motivating people to actively engage and participate. Given that we are dealing with knowledge workers trying to solve complex problems, according to Self-Determination Theory we need people driven by intrinsic motivation to achieve high performance. For this to develop, the leadership need to ensure the presence of autonomy, mastery and purpose for everyone in the environment.
Since we are operating in a complex environment, we have the looming presence of uncertainty. The challenge of working with complex problems is that you don’t know what you don’t know. This is the uncertainty I am talking about. The difficulty of planning in an environment where you are dealing with complex problems lies in this fact, that you don’t have all the facts, and that you can’t have all the facts before you act. The operating mode in a complex environment is Probe-Sense-Respond.
Probe means action, that you do something, preferably define an experiment where you have thought about what you believe will happen as a result of the action.
Sensing means you look at the actual results to understand what impact you had and if it was the impact you believed you would have, if you achieved the desired outcome.
Responding to this impact is the last step and likely to be an adjustment to the plan, tweaking your expectations or going in a completely different direction and designing another probe.
In retrospect you can also look at the historical data to see how good you are at predicting the impact you will have with your actions in an attempt at designing “better” probes.
If we go back to a simple version of the road where we assume that we can have 100% utilization while travelling at the allowed speed limit, effectively ignoring the nature of complex problems, we will have the following situation.
If we just for a second accept this deterministic view of planning, we’ll take a look at a situation where we have 30% uncertainty. This picture would be true if we had 0% uncertainty in our plan, below is what 30% would look like.
The question to ask here is, where did those vehicles come from? With a deterministic mindset, it would mean that those vehicles just appeared from nowhere. Which doesn’t make sense. This would suggest that the vehicles have alternative ways to end up on this stretch of road. There must be connecting roads along the way.
This would be a more accurate depiction of the state of our road. The green arrows show where we currently have oversight and understanding of the traffic merging onto the road, the red arrows represent where smaller roads merge onto the road where we lack oversight. The green arrows account for 70% of traffic and the red arrows account for a total of 30% of traffic. With this example we are also saying that we don’t know where the smaller roads merge onto the larger road, since we lack oversight. We are, however, drawing the conclusion that there must be smaller roads contributing to the traffic situation since we are measuring a level of 30% uncertainty. That is, when we take a snapshot of the road, 30% of the vehicles will be red as in the picture above.
To begin to combat this issue we don’t have to know where the vehicles are coming from, we just need to acknowledge that they are in fact red. Now that we know that we have 30% red vehicles on the road we can adjust the number of vehicles that can merge onto the road from the green arrows, where we have oversight. We simply decrease this amount to not exceed 70% of the total capacity, leaving gaps for the vehicles that will merge onto the road further down.
Once again, we don’t have to know where nor when the red vehicles will show up, we just need to make sure that we can accommodate them. In fact, given the nature of complex environments, we can’t know when they will show up before they have done so.
To wrap things up, I was thinking a lot about the nature of complex problems and the importance of accepting that you are operating in a complex environment. When you accept that as a fact, you can begin to ask the right type of questions. Asking questions aimed at the complicated or even simple domain is like asking; how long distance will you run this marathon for? To which the answer is, given that a marathon is 42 km I guess we will have to run 42 km in order to complete it. When in fact, we are interested in knowing when we will arrive at B departing from A. Up until this point, we just assumed that we were running a marathon, because the path laid out for us happened to be 42 km long. The true nature of the task was going from A to B as fast as possible.
This has been a chronological summary of the topics I have encountered and reflected on the past 6 months. A good way to wrap up 2019, move into a higher-level reflection and looking forward to the year to 2020.