Power Distance and Agile Transformation

Many of us have come across a situation where a leader (a senior member of the management or a political leader) has made a mistake or followed a wrong course of action and many of his subordinates, even when they knew it to be wrong, did not correct or confront the leader. Instances like this happen more in some cultures and less in some other cultures. But if you have witnessed a scenario like this, it is a concept called Power Distance at play.

Put simply,  Power Distance is the extent to which power is unequally distributed in a culture or organization. It is also the extent to which a “less powerful” member  accepts the power to be unequally distributed. So in cultures with lower power distance, any difference in power between individuals is not readily accepted and would require a justification. In such cultures, attempts may even be made  to reduce the power distance between individuals. No such justification is required in cultures with a higher power distance.

What does this have to do with Agile Transformation ?

For an Agile Transformation to succeed three outcomes are important – Better Innovation, Higher Throughput and Higher Customer Satisfaction.

Innovation

Small innovations make 80-90% of the companies development portfolio, they are necessary for continuous improvement – making existing products and services better. Most companies will have a process whereby customer feedback is channeled into the development process to make this possible. It really doesn’t matter too much if these are top down or bottom up.

The other 10-20% are the high value innovations, the ones which give the company an edge over the competition, these are the riskier ones. It is these innovations that need to be driven through the front lines with the management giving them support. In cultures with high Power Distance, this is the part that suffers. Opinions that matter are not expressed or discussed. Leaders in these cultures expect employees to follow them unquestioningly, without reason or justification and employees expect the direction of their bosses to supersede everything including organizational welfare.

Throughput

Improvement in throughput is an outcome of removal of waste. Removal of waste can be evolutionary, where the current process is gradually improved or disruptive, where the new process radically changes the approach to fulfilling the same need. Realization of both these approaches need collaboration and leadership across all levels in the organization.

In high power distance cultures people accept hierarchy  and direction as a reality of life. The manager’s position in the power structure and therefore the collaboration grid will ensure that he/she is central to communication with in the team. This will create a bottle neck to collaboration and prevent the team from self-organizing. Also, in such cultures because leadership is derived from positional power, situational and adaptive leadership fails to emerge.

 

All this inevitably affects throughput. In such cultures since failure to improve throughput is viewed as a failure of leadership, you can notice  misrepresentation of data thus preventing any possibility of inspecting and adapting which brings us to the next point.

Customer Satisfaction

One of the key aspects of customer satisfaction is the cultural power distance of the customer. Customers from “high power distance” cultures are more accommodative of deficiencies in service than from “low power distance” cultures. An organization or team with its “high power distance” culture will never be able to satisfy the demands of a “low power distance customer” primarily because it will lack the empowerment to make things happen for the customer in the very short periods of time.

Conclusion

As Peter Drucker once said, “Culture eats strategy for breakfast”. This is true even in the Agile Transformation context.  When an organization wants to develop its capability to be an Agile organization and embarks on the transformation path there are many questions which need to be reflected on like –

  • What is our current culture ?
  • What is our power distance like, are we a High Power Distance or Low Power Distance organization ?
  • What is our National Power Distance ? How does that relate to our organizations power distance ?

Power Distance is a cultural factor which is very often ignored during an Agile Transformation most often with disastrous results because resistance to change due to this factor is difficult to diagnose.

Using a Python script to generate Cumulative Flow Diagrams

Cumulative Flow Diagram is a graphical tool used extensively in Lean and Agile projects. It is used to track project progress, visualize work in progress (WIP) and obtain understanding of issues with the project including bottlenecks & scope changes.

CFD generated using Spyder 2 IDE with matplotlib and numpy modules
CFD generated using Spyder 2 IDE with matplotlib and numpy modules

Burn Up and Burn Down charts are much more commonly used by Agile teams than Cumulative Flow Diagrams (CFD) because they can be easily plotted on a white board using a marker pen. In the case of CFDs, it is not easy to plot it manually on a white board  and so many teams therefore, have to procure software, even when the team is co-located just for the sake of generating plots.

There is a way to plot CFDs using excel described here, but to automate it we need to script it. This article describes a very simple way to generate CFDs using a python script.

The input to this script is hard-coded in the form of arrays for each status, but these can be easily replaced by variables input from a web form.

The Kanban flow for this specific case has Requirements, Development, Testing, Verification and Done indicated by the arrays features_req, features_dev, features_tst, features_vfy and features_dne which contain the values from Week 1 (W1) to Week 12 (W12). The arrays are as below which forms a matrix.


 #Weeks ->     W1,W2,W3,W4,W5,W6,W7,W8,W9,W10,W11, W12
features_req = [1, 1, 4, 3, 1, 1, 0, 0, 0, 0,  0,   0]
features_dev = [0, 1, 2, 2, 3, 2, 2, 1, 1, 0,  0,   0]
features_tst = [0, 0, 0, 1, 1, 2, 2, 2, 1, 2,  0,   0]
features_vfy = [0, 0, 0, 0, 1, 1, 2, 2, 3, 1,  2,   0]
features_dne = [0, 0, 0, 0, 0, 0, 0, 1, 1, 3,  4,   6]


I will describe in detail the data (above) giving examples of the Kanban board for that week.

The Board has just one feature request in the first week.
Kanban Board – Week 1

The status of the board for a week should be read in vertical for that week. e.g. For week 1, there is just one feature request as indicated by the values in the column for W1 (Week 1) -> 1,0,0,0,0.

Kanban Board - Week 2
Kanban Board – Week 2

For Week 2, a new feature request has been made which arrives in the first column (Requirements). The first feature request has now been pulled into the development stage and is been worked on. So the column for W2 (Week 2) has the values -> 1,1,0,0,0

Kanban Board - Week 3
Kanban Board – Week 3

In the third week (Week 3), four feature requests have come into the first column (Requirements), the one request which had come in the last week is moved to Development so that you now have a total of two features in development. So the column W3 has the values -> 4,2,0,0,0.

Kanban Board - Week 12
Kanban Board – Week 12

The last column in the matrix has the values for Week 12 (W12), which is 0,0,0,0,6 and the corresponding Kanban board shows all the items (6) in the Done column.

This basically means that there is one-to-one correspondence between the column for that week and the Kanban board columns. It is straight forward to construct this matrix for your specific use case even to have a similar web form constructed to feed in the data representing the Kanban board.

The script uses python with matplotlib and numpy. The plot was generated using iPython in Spyder2 IDE. The script is as below.

import numpy as np
from matplotlib import pyplot as plt

weeks = np.arange(1,13,1)
#Weeks -> W1,W2,W3,W4,W5,W6,W7,W8,W9,W10,W11, W12
features_req = [1, 1, 4, 3, 1, 1, 0, 0, 0, 0, 0, 0]
features_dev = [0, 1, 2, 2, 3, 2, 2, 1, 1, 0, 0, 0]
features_tst = [0, 0, 0, 1, 1, 2, 2, 2, 1, 2, 0, 0]
features_vfy = [0, 0, 0, 0, 1, 1, 2, 2, 3, 1, 2, 0]
features_dne = [0, 0, 0, 0, 0, 0, 0, 1, 1, 3, 4, 6]
features = np.row_stack((features_dne, features_vfy, features_tst,
features_dev, features_req))

fig, ax = plt.subplots()
ax.stackplot(weeks, features)

# Add relevant y and x labels and text to the plot
plt.title('Cumulative Flow Diagram')
ax.set_ylabel('Features')
ax.set_xlabel('Weeks')
ax.set_xlim(1, 12)
ax.set_ylim(0, 6)

plt.show()

You can download it from here.

Productivity & the fallacy of cent percent utilization – Ask the right question !

In one of the organizations that I worked with, a newly minted Executive wanted to set things right and improve the productivity of his organization. The question posed to his management team was “How can we increase the productivity of resources (employees) ?”  After some discussion, it was decided  to measure “Employee Utilization“. A couple of voices of reason in the room was rapidly silenced. An experienced Project Manager and couple of senior technical staff was quickly commissioned to develop software to make this happen.

A few months later, we had the necessary software developed, tested and ready to deploy. After some fanfare, it was rolled out across the entire department to capture the utilization of resources. Managers were told candidly that they have to ensure that their teams fall in line and input the number of hours worked or face the consequences.

The outcome, however, was very different from expectations. Every one in the organization reported a utilization of at least 10 hours each day and people who did report a utilization of  less than 10 hours were penalized by being assigned to more number of projects to improve their utilization. Very soon, in a matter of weeks, the reports showed everyone in the department to be 100% utilized and since everyone was 100% utilized there was no further scope of improvement. The tool failed in what it intended to achieve and was rapidly decommissioned (without even a whimper).

In the above scenario, the crucial aspects of knowledge work was ignored – thought and collaboration.

Thought

Let us delve a little into the process of thinking which is so important for generating the results of knowledge work. We think in two modes – Focused Thinking and Diffused Thinking. These two modes are mutually exclusive, we cannot be in both focused and diffused modes at the same and also, we cannot be one mode for long.

Focused Thinking is when we think in a very focused manner on the task at hand. A good example is a programmer recollecting the syntax and semantics of a language while writing code. What does not happen in Focused thinking is the generation of new thoughts. New Idea generation and innovation does not happen in Focused Thinking. 

Diffused Thinking  on the other hand, generates new thoughts and therefore new and innovative ideas. This is the reason why sometimes a solution that evades us even when we think very hard about it, suddenly occurs to us when we are sleeping, relaxing or otherwise doing something else not related to that problem. Innovators like Edison developed ways on switching between these modes at will.

It is a basic requirement, just like breathing is required to sustain life, that the brain switch between the focused mode and diffused mode. If this switches do not happen, burn-outs are imminent. This basically means that, without the freedom and environment to think and express thoughts, productivity will be curtailed.

Collaboration

Knowledge workers achieve outcomes by collaboration. Especially in the IT industry, there are a lot of published material on the value of collaboration in the development of better software and how processes to ensure tighter collaboration results in better software.

It follows that, without an environment of collaboration, productivity, innovation and quality of the outcome will be adversely affected.

Measurement of productivity on the basis of utilization (“seat time” or “availability”) results in the following issues and the resulting undesirable outcomes.

  • There is pressure to produce with little thought -This basically means that, most of the work is done with the brain is stuck in the focused mode. Since new thoughts do not happen in focused mode, better ways of obtaining the same outcome does not happen – Innovation suffers. This also affects quality. In disciplines like software engineering, this gives rise to extra ordinary amounts of technical debt, non-optimal solution development and this has a cascading effect on software stability and customer satisfaction.
  • Compliance to an availability criteria is a prime requirement, everything else is subservient to this – This gives some returns initially, but gradually, employees suffer burn-outs. This gives rise to sick leaves and time-offs (including planned time-offs). Over time, the actual drive to deliver value decreases.
  • Pressure to perform at 100% utilization kills collaboration – In cultures where utilization is measured, collaborative activities are considered as productivity loses. However, when collaboration decreases a lot of desirable features otherwise seen in cohesive teams like increased morale, respect,  self-esteem, interpersonal awareness, group pride, loyalty, goal orientation all of which results in a much higher level of performance goes down the drain.

So what does employee utilization has to do with productivity (delivering customer value) ?        Absolutely Nothing!!

So what shall we do to make things better ?

Ask the right question – This is of prime importance.  What we do not ask, we do not attempt to measure; What we do not measure, we do not understand; What we do not understand, we cannot improve. From a customer value perspective, the questions may be What is the outcome that we desire ? What does the customer want ? How will the customer benefit ? How stable is the software ? How happy the customers are using our software ?

The measurements should obviously follow. The employees, since the outcome is being measured, will focus on delivering the desired outcome and since this is aligned with customer value, results in a better customer alignment, more business and better profits.

So ask the right question !

Reciprocity and Servant Leadership

For reciprocity to succeed in an organization, servant leadership is a must. Any other form of leadership may not be as successful.

Wikipedia defines reciprocity as “In response to friendly actions, people are frequently much nicer and much more cooperative than predicted by the self-interest model; conversely, in response to hostile actions they are frequently much more nasty and even brutal.”

The concept is very simple and exists pretty much from the beginning of human civilization – If you are nice to your co-workers, neighbors and others in your society, they are nice to you. If you help – they help you back. It is this, that has enabled us, humans, to survive through the ice age and all other ages since then.

This basically means that, if a company is nice to its workers, then the workers are nice to the customers/clients and the customers/clients will reward the company with more work, which will increase the profits of the company. However, there is a catch – Reciprocity is a social phenomenon –  one that exists between two people. An abstract entity, like a company, can never create the environment required for this social phenomenon to exist.

Since this is a social phenomenon and for this social phenomenon to be leveraged, the company has to be, in some way, personified. Moreover, this is also a local phenomenon something that happens at the team level. Other factors that are in play are team size (the larger the team – the less effective the feelings of mutual obligations are) and how engaged the team members are. So it is apparent that the role of a leader and the existing social environment in the team plays a huge role for this phenomenon to exist in some significant way.

Authoritarian leaders, who micro-manages decision making, who solves problems for their followers are particularly bad in creating this team environment. These leaders seem to think of their teams like children who needs to be controlled and usually there is a heavy governance in place for these teams using spreadsheets and presentations where they can measure the behavior of their teams at a very low level of granularity. I emphasize the word behavior as against performance – because performance is measured on the basis of outcome – Behavior is measured based on what was done, how it was done and when it was done by whom.

The benefit equation in these cases, are heavily tilted towards the leaders. There is typically no thought for the benefits for the follower (employee) in executing the instructions of the leader. In many cases, there may not be any benefit for the follower or the organization and the only person to benefit may be the leader himself. Since the follower does not believe in the value of the task, execution may not be thorough or high quality. The leader, over time, develops a low opinion of his team and this is further reflected in his behavior and the subsequent benefits for his team. This further drives the happiness, motivation and quality of work on a downward spiral in the organization.

Servant leaders believe that, any process is only as effective as the effectiveness of the individuals that constitute the process. The development of individuals is implicit in this belief system and the improvement of any process cannot be done without improving the people. They exhibit the following behaviors –

  • Alignment of the Individuals (Team Members) goals to that of the organization – Team members do what they are passionate about doing, what they see a long term value in doing and the leader helps to align these to the organizational objectives.
  • Coaching and Mentoring – These are important enabling behaviors which help the follower/team member move up in his career.
  • Commitment to build a cohesive & self organized team – There cannot be self organization without cohesiveness and there cannot be cohesiveness without some self organization. The leader should facilitate the emergence of a cohesive team by facilitating the resolution of conflicts and building the over all environment avoiding everything that results in non value added (NVA) work and enterprise environmental factors that saps the energy of the team (e.g: Heavy governance, documentation heavy compliance requirements, process heavy quality checks etc.).
  • Empower the team – Localization of decision making related to execution avoids hand-offs and wait times. This brings about huge gains in the removal of waste from the existing processes and creates a motivated and happy workforce. Nothing kills motivation more than heavy processes with huge wait times.

It’s very clear, in the case of servant leaders, the benefit system is balanced, each deriving value from the other, each positively influencing and getting influenced by the other. If the organization is deriving value due to the contribution of the employee, the employee also derives value. This value, derived by the employee is in his/her ability to gain a higher level of expertise. This is an immense reward, especially in the knowledge worker industry where people take huge pride in their expertise.

Reciprocity, to happen in an organization requires engagement at the team level. It requires the personification of the organization for the team member or employee in the form of a servant leader. It requires an environment where there is a balance in value that the organization as well as the employee realizes from the relationship. Reciprocity, then, goes a long way towards meeting the strategic goals and objectives of an organization.