One of the key practices of WoW framework is “Separate facts from fiction”. We often tend to mix the two, and in this confusion take decisions which may turn out to be harmful.
The easiest way to take care of this is to start using a new language construct regularly while thinking as well as when we speak. When we think something to be a fact, we should use “I know xxxxx”, immediately followed by questioning ourselves “How do i know it?” The response we get would be in the form “because of yyyyy”. So the complete sentence would be “I know xxxxx because of yyyyy”. Once it comes out in the open, it is so easy to decide whether what we thought as a fact is actually a fact. Quite often it turns out to be just our assumption.
Many a times our mind plays tricks on us and assures us something is a fact, when in reality it is a mere assumption. We believe our mind, and without thinking further go ahead and act as if it is a fact. The changed way of thinking and speaking helps us to go around our mind and see the reality as is.
Here is an example.
Recently on a Saturday, I had to take my personal laptop to a service center for some repairs. I had gone there a couple of times earlier as it was quite close to our previous home, and knew the people there well. After driving all the way, when I reached there I found some other outfit. On enquiring I came to know that the service center had moved very close to our new home. By the time I drove back, it was already closed. Disappointed I returned home and had to wait till Monday because they are closed on Sunday. Some urgent work I had planned to complete on the weekend could not be. I felt so bad about it. All this could have been avoided if I had adopted the new way.
I thought I knew they will be there as before. But actually it was just an assumption. I had their contact number and could have called them. But that option did not occur to me because implicitly I was sure the service center would be there. How I wish I had used the simple language construct and saved myself all the trouble.
Initially we may feel little awkward to use such formal constructs, especially while talking to others. But trust me it is a very powerful way to bring clarity about how our opinions and facts get mixed up. If we are speaking to another person, it is worth spending a few minutes to explain why we will be using this construct to get him/her on the same page.
On the other hand when we believe something to be an assumption, it is so easy to check by saying “I assume xxxxx because of yyyyy”. Saying it to ourselves or preferably to others will make it clear whether our assumption is true or false. If true it is no more an assumption and can be considered as a fact. But more often this will lead to further assumptions which are to be handled in the same way. We may also find the assumptions are a result of our firmly held beliefs which similarly need to be questioned.
Here is an example.
A new colleague at work had promised to complete his work by Friday evening. Based on past experience of dealing with people, I assumed that there is a possibility that he may not have completed his work. So I made alternate arrangements. But he actually had, and not only that but even mailed me to inform that the work is complete and the place where he had kept the document for my review. It was a pleasant surprise. It confirmed that my assumption was a fact. Then I realized that in spite of past experience, I still believed that the new person whom I did not know well would complete it on time. This belief came from my natural inclination to trust people unless proven otherwise. This has its advantages as well as disadvantages. Another person in exactly same situation would have thought and acted quite differently, if he was inclined to distrust people till proven to be trustworthy.
Once we start practicing the new way regularly, we see how our assumptions are influenced by our beliefs, which in turn are shaped by our values and inclinations. Underlying beliefs and values have a strong influence on how we act/react, how we interact, and more importantly how we take our decisions.
After we are comfortable and keep practicing it regularly till it becomes a habit, we can modify it to a more natural way, without of course losing the benefit of questioning. Each person can decide when and how it is to be changed, though sometimes it just happens.
Once we see the power of separating facts from fiction, we realize the risks we carry with unquestioned opinions. There is no time to waste and postpone it.
But next question is when can we practice it? Fortunately life provides so many opportunities. If we notice something happens as expected, but often reality goes against our expectations. That is an opportunity to practice it. Even when things go as expected, it is good to ask ourselves whether there are any factors which were responsible for this and in case those factors are no more there in future to help us. This leads us to see the risks which we tend to neglect otherwise.
If you are curious to know more WoW framework see it at https://wayofworking.org
Once we understand what WoW is, next question that comes to our mind is where do we start? One simple way I have found quite useful is to separate facts from fiction (our opinions) by calling out what we think they are, followed by verifying them. For example.
I Know (fact) and ask ourselves (how do I know)
I (assume / believe / value) and ask why do I have (that opinion)
A real life scenario will make that clear.
Situation: Lack of self-organization
Team unable to take decisions though capable of taking
E.g. who will work on which task?
Team Member-1: Nobody told me which task to work on.
Q: Who is supposed to tell you?
A: I assume scrum master will tell.
Q: Why do you assume so?
A: I believe it is Scrum master’s responsibility.
Q: Have you asked her?
A: No, but I will check, and then ask the right person.
Team Member-2: I am new to this project.
Q: Did you ask other team members?
A: No. I know they also wait for the team leader to tell them what to work on.
Q: What if the team leader is not in office?
A: We wait till he comes.
Q: Don’t you think you could save time if team knew which items who should work on?
A: True. That is what we used to do in our previous project. Team leader would assign tasks in the agile tool.
Q: Have you suggested that in this project?
A: No, I believe this is the way this team works, so I should do the same.
Q: Would you like to suggest it to the team leader?
A: I assume he would not like a junior member of the team do so.
Q: Would you like to try it and see what happens?
A: That’s a good idea. If it works I will make a good impression on the team leader.
Team Leader: I am accountable for the results so can’t take any risk till the team matures.
Q: Do you know whether team is immature, or you are assuming it?
A: I know they are immature.
Q: How do you know?
A: I believe it takes years of experience to become mature, as I have.
Q: Do you think all those who have many more years of experience are more mature than you?
A: Of course not. I know quite a few who are not as good as me.
Q: So length of experience is not the only criteria for maturity?
A: Hmm, I guess so.
Q: How about allowing them to take some decisions which you think they are capable of? This may help them mature more quickly.
A: It may work, it may not. But too much is at stake because my promotion is being considered at present.
Q: So you value looking good more important than being effective?
A: When you put it that way, could be that is what is holding me back. On second thought, I think by helping the team become matured may actually help me show better performance and bag that promotion.
We can enroll our team members / peers to ask us such questions and in turn we can help them by asking such questions. After some time it becomes a habit and we start asking ourselves these questions.
Q: What the heck is WoW?
A: WoW is an acronym or short form for Way of Working.
Q: Okay, so what is Way of Working?
A: Way of working is our repetitive patterns of behavior.
Q: Can you give more details please?
A: Sure, it is a framework I am putting together based on what I have noticed in my life and work all these years. The framework has a core, and guidance to support the use the core.
Q: Can you tell us more about the WoW core?
A: Yes, it starts with what we can readily observe provided we pay attention, like our actions / reactions. Interactions, as well as the emotions we are currently experiencing. We soon start realizing that in a given situation we tend to repeat the same behavior again and again by rote. It so happens because consciously or unconsciously we decided to behave in a given way, and over a period of time it has become a habit or second nature for us. Even to the extent that when we get in a similar situation with different people or in a different context, we start experiencing the same emotions. That is the power of our habits.
Q: Talking about habits and their power on us, why do you think we need them?
A: I believe the nature has endowed us with this wonderful capability to save lot of load on our mind of constantly making decisions. Instead we can make a decision once and save it in our system for automatic use thereafter. It not only frees our mind to focus on more important things but also leads to an increase in our productivity and agility.
But there a flip side to it. We become so comfortable with our habits, both physical and mental, that we don’t realize the world around us is constantly changing and moving away from the one that existed when the habits were formed. Bigger the gap, greater is the need to change the outdated habits. But we are not even aware of this gap.
Q: What do you think is the solution?
A: I have noticed that we are both an observer and the observed at the same time. These two are distinct roles with their own purpose, but often seem to get mixed up. It is the job of the observer in us to critically keep watching not just what is happening around us, but also what is happening within us. If the observer performs its job faithfully, the observed in us would be free to enjoy all the variety in nature and beauty of life as it unfolds. It can completely live in the present moment, fully experiencing the emotions and then be able to move on without any attachment to the past. I feel the great philosopher Jiddu Krishnamurthi was talking about the observer in us when he said “Be choicelessly aware”. The observer should stay away from getting involved in the experiencing and emotions, and resist any temptation to make any hurried decisions before being completely aware of the current reality. Differing the choice till the present is authentically observed, allows the most appropriate decision to emerge on its own.
Q: The role habits play in our lives is clear, but what influences our decisions?
A In WoW everything leads to our opinions. They are our filters through which the reality reaches us. They can take different forms. These could be assumptions which are open to change based on our experience. They could be beliefs with which we form an emotional attachment. That makes it difficult to change the beliefs because we feel challenged and don’t want to give them up easily. The opinions can also be in the form of relative values where we prefer something over something else. For example, some people tend to trust others unless proved otherwise. There are others who start with distrust till proven wrong.
These three types of opinions, assumptions beliefs and values, have a hierarchy. If our assumptions are at variance with our beliefs, our beliefs will override our assumptions while taking a decision.
Q: Taking this “Why” questioning a step further, why on the same subject our opinions are often different from those of others?
A: I think it is because the nature needs diversity for survival. We see such abundance of variety all around us. So each of us is endowed with certain natural inclinations. These inclinations influence what opinions each of us forms and get reinforced with experience.
Q: Enough of concepts and theory. Please explain what is in it for me?
A: Good question J
All of us know that life is uncertain. It can be as simple as finding a traffic jam on way to work, when we are already late. Or it can be as profound as coming to know about someone we knew well and met just yesterday is no more.
Our opinions, which include our assumptions beliefs and values, create a wall behind which we live. The reality outside gets filtered and twisted before it reaches us. We are guided by our perception of reality, while the future is shaped by the reality as it exists. Bigger the gap greater the uncertainty. So the question is how we prepare ourselves to manage these uncertainties.
Best way would be to take steps that can eliminate such uncertainties. Which means that we work on the wall that separates us from reality and try to make it as clear and transparent as possible. Some of things that I find useful are,
- Separate facts from fiction (Opinions) by calling out our assumptions/beliefs/values for verifying their validity, and to encourage others to do same.
- Be aware of our emotions, experience them fully and then move on without attachment.
- Be aware of others’ way of working as well, because it affects us. When we become so aware, we may find many tips which we can see if what works for others might work for us as well.
Q: Oh, so it is not enough for me to be aware of my own working, but I need to be aware of others’ way of working as well?
A: Absolutely. We need to go beyond ourselves because we are all connected. As a matter of fact, systems are everywhere. Each of us can be viewed as system. We work in teams or groups. Each of them is also a system. Those in turn are part of an organization. Which is a system. Our family is a system. Our friend circle is a system. The society we live in is a system, and so on.
We are part of multiple systems, either participating in or interacting with them. So we need to understand how systems work. Some systems are simple like those which follow Newton’s laws, but many are complex especially those involving humans, having their own laws and patterns of behavior. We become prisoners of systems we don’t understand. When that happens, our options get limited. We can’t accurately predict which way the system will go. That is the other cause of uncertainty.
Understanding systems, especially complex human systems, is part of the WoW guidance which with its 7 principles and many generic solution patterns helps us to minimize uncertainties.
Q: I am curious to know more about the WoW guidance. Can you throw some light on it?
A: WoW guidance is a vast subject. But I can certainly mention the 7 WoW principles which are so universal in nature that they can be applied to a vast variety of situations.
- Know and care for real needs (Needs, not wants. Logically know and emotionally care)
- Allow work & information flowing (Be a river, not a pond)
- Maintain the heartbeat (Adjust the system clock to a natural rhythm)
- Make it simple (Remove all the noise and clutter from the system)
- Balance automation & innovation (Use automation to let our attention focus on innovation)
- Use governance with autonomy (Restrict freedom only for protecting real needs of the stakeholders)
- Grasp complex systems principles (Accelerating & balancing loops, delays, and leverage)
With this taken care, time to get back to WoW core and see how the systems perspective can help us to prepare ourselves better for the uncertainties of life. Once we know that we are part of multiple systems, either participating in or interacting with them, we realize that we have the power to choose which system(s) we want to be part of, and which systems we don’t want to be part of. This realization gives us tremendous power to be in control of our lives.
Q: Can we do anything more as individuals?
A: I would like to mention one important point. We are always advised to take a stand and stick to it, which often leads to a blind faith, and there can be others with similar blind faith for the other side of the issue. People taking such rigid positions has led to so much violence in the world. Why not try to sit on the fence and keep seeing on both sides. This liberates us and we are free to take a decision on its own merit based on the situation we are in.
Q: You talked of preparation to minimize uncertainties, but do we also need to prepare ourselves for things when they go wrong?
A: Oh yes. That reminds me of Murphy’s Law which says “Anything that can go wrong will go wrong, and at the worst possible time”. Is that why at work a new urgency always comes on Friday afternoon when we are getting ready to leave for the weekend?
We can deal better with the unexpected by preparing ourselves with the following,
Details are part of the WoW guidance.
Q: Just last one question. Any quick suggestion for how do we start practicing WoW in our teams?
A: Yes. Every working day if we notice, we have series of small successes and failures. But what we do with them? Nothing much. If it appears to us as a success, we pat ourselves on our back and move on. But that moment has hidden possibilities to prepare ourselves for future by asking ourselves the question, “What made us successful?” The answer will provide us the factors which may change or vanish in future thus creating a risk of failure. Once we see this, we can start preparing ourselves to manage even when those factors are absent.
Similarly with every failure, however small, rather than just feeling bad about it and giving excuses or finding faults with others, we can ask “Why did we fail, and how much does it matter?” This will help us to get away from the negative emotions of the moment and start thinking logically about what we can learn from it and improve for future.
Try it out and see if it helps.
As I am putting together the WoW framework and one of its early practitioners, let me share my perspectives and experiences while using it.
To begin with I started closely observing various situations I passed through during the day, starting right from the time I got up in the morning, and continuing till I went to sleep at night. Initially it was very difficult to be an observer, while simultaneously being intimately part of the reality that was unfolding. But by constantly reminding myself that I am also an observer, slowly I started getting it. It was a very different and interesting experience to be in two roles at the same time. But it was also motivating when I started seeing things I was blind to earlier.
I have always found “Why?” to be a very powerful question to reveal the hidden connections. I started doing that with everything I was observing. For example, when I found that I tend to repeat same behavior in a given situation again and again, I asked myself why possibly I may be doing so. After some time I realized that without my being aware, I seem to have decided to choose one of the many behavior options in that situation. Over time it had become a habit and I had even stopped thinking about it.
So next question was “Why did I do that?” Probably at that time it was a right choice. But I had never tried to look at it again to see whether it was still a valid choice. My mind just kept giving same instructions based on what had worked so far.
I noticed that what I observed with my actions also applied to my interactions with others. It was just a copy of earlier behavior in a similar situation. My mind had gone to sleep and was just mechanically repeating its instructions.
One day I had a startling experience. I met a person who had a great resemblance with someone I know well, and for some reason dislike him. Surprisingly I felt the same dislike for the person I had just met for the first time. Something in me established a non-existent connection and reproduced the same emotion. When it became clear what was happening, I could now keep it aside and deal with the new acquaintance without any bias. As it turned out, he was a nice person and we had a good relationship thereafter.
As I started understanding the decisions behind the actions & interactions, the next “Why” was about the decisions themselves? Soon it started becoming clear that our assumptions beliefs and values (which collectively I like to call as opinions), are the source of everything else. They are the key to understanding our visible behavior. Let me give a few real life examples.
Yesterday I had gone to a path lab to get blood reports. The sample was taken previous night. But yesterday evening I was told that the report is not yet received. Some waiting and further questioning revealed that the person at the report desk assumed it was yesterday’s sample and kept looking at reports for the day only, while it was lying there all along in another bunch of reports. Surprisingly even though I had mentioned it, the assumption that it was report for the same day was so strong that her mind had blocked out date of sample.
This example clearly shows the power of our assumptions. But even more interestingly it highlights the need to understand not just our ways of working, but also be watchful for others’ way of working that directly impacts us.
Another example that I come across again and again shows us the power of our beliefs. Majority of us believe that those who are senior to us and / or have more years of experience are more knowledgeable and mature. This belief is so strongly ingrained, especially with us Indians, that we never even question it though the stark reality sometimes is quite the opposite. Add to this the value attached to respecting the elders, and we have a deadly cocktail. I enjoy watching the TV serials for this same reason. They are a reflection of our social and cultural ethos. One such current serial on Sony TV recently had an episode where an elderly person behaved during a marriage ceremony which resulted in completely spoiling relationship between the two families. But not a word was said just because he could not be questioned being an elder. How unfortunate that we never even think of reviewing such beliefs and values.
It is so important to know our opinions, and see how they are influencing our decisions, which in turn lead to our repeated behaviors. Unless we do that there is no hope of having any permanent change for better. From time to time, we may decide to change our actions & interactions, but often they turn out to be like New Year resolutions. For a couple of days our enthusiasm will keep it going, but soon the old habits bring us back to square one.
I will keep coming back with more insights and more examples about the WoW approach for our life and work. Stay tuned.
I find it a lot easier to share my thoughts through a real life example.
All of us have travelled by train sometime or the other. Let us visualize two rail stations A & B 100 kms away from each other. A train leaves station A exactly every two hours travelling at a speed of 50 Kms / Hr, reaching station B after exactly 2 hours. (Sounds like Tokyo subway?).
This is Scrum with 2 week sprints, start and end on predefined days, making sure that those who got in at station A reach station B on time. Very disciplined predictable and dependable for those who can book in advance, reach station A on or before time, and wait till the next scheduled train to arrive.
Life is not so simple.
How about those travelers living much before station A, or between station A and B? They have to make their own arrangements to reach station A.
How about those who want to get off after station B? They have to make their own arrangement to travel from station B to their destination.
How about those who want to get off between station A and B? They have to first wait till station B, feeling bad that they can’t get off as they pass their destination, and then make their own arrangement to travel back with resultant delay.
How about those who could only decide at the last moment and have a critical urgency to reach their destination on time? They obviously had no time to make an advance reservation.
Is there a solution?
How about a train that keeps going round and round, and people can dock-on and dock-off from their respective places? That’s Kanban.
Sounds chaotic? Yes it is. Anybody could just board at their own sweet will and inconvenience others who are already in. So we need some discipline; and some planning; and some visibility into the past present and the future. And an automated system for planning and sharing information to all concerned helps.
Such a system is Agile, or more specifically Holistic Agile, which to start with must clearly know for each person, or a group of persons, where they want to get off and when. That helps to start backward planning. The train’s capacity to carry the passengers is known. What is required is the available capacity for additional persons to get on board without inconvenience to anybody. For this we need a rule that no standing is allowed. A person can get in if and only if there is a vacant seat. Heard of WIP limit from Kanban? This will of course mean some empty seats from time to time. But a slack is always better than people stacking on top of each other. Those inside could move about interacting and helping others onboard.
For capacity planning we could consider stops every hour (or every 50 Kms away), and plan capacity for this duration. Something like virtual mini-sprints of a week each. Within these every 10 Kms or so away, the system needs to know number of vacant seats. Even better if information of seat availability in each compartment is being continuously monitored by the system. Such information would be greatly useful to those who are responsible to decide how many and which people should be allowed to get in.
For a start this is good enough. In subsequent posts we will try to apply this specifically software development supported by good agile tools.
Most people say they are doing Agile when they are actually doing Scrum. This is because Scrum is the most widely used agile method; with a good reason. Scrum provides a complete framework that includes roles, ceremonies and artifacts. Over last 20 odd years of its existence, it has matured and scaled to large projects.
However Scrum does not provide sufficient guidance to the teams about how to manage their work within a sprint. There is no guidance on when to start work on which story / task. It does not provide guidance on how to keep the work moving smoothly without interruptions.
It mainly focuses on capacity utilization and relies heavily on burn-down chart to anticipate the risk of spill-overs. But there are cases where in spite of available capacity there is just not enough time for quality work before the due date. Hence there is a need to look beyond Scrum for help on these challenges.
Scrum is not the only agile method. There are others like Kanban and Lean. Kanban came from manufacturing, especially Japanese auto industry, and was pioneered in software development 10 years back.
Kanban is a light-weight method and is commonly used where the 2-3 week batch mode of Scrum doesn’t fit very well. Such situations include support activities, projects in maintenance mode, or anywhere the requirements come in at random and with a short completion time.
So a common approach is to choose between either Scrum or Kanban, but not both together. However there is an area of Scrum, single iteration or sprint, within which the Kanban principles can be considered for improving the execution effectiveness.
Expected benefits of introducing Kanban within a sprint are,
• Improved Agility –Measured as turn-around time (Elapsed time from the start to finish)
• Higher Productivity – Average velocity per person per week
• Better Quality – Reduced defects and rework
Kanban relies on pull mechanism to decide when to start an activity, and has just three simple principles.
• Limit the work in progress – Complete the work-in-hand before taking up the next task.
• Observe and manage the queues – Long queues introduce an inherent delay to every item. Lengthening queues indicate a capacity imbalance.
• Identify and remove the bottlenecks – Worst bottleneck decides the system throughput. Removing it reveals the next worst.
How Kanban principles help each improvement area:
Limit WIP: Pull system allows JIT re-prioritization (Agility). Uninterrupted attention reduces setup time (Productivity). Focused attention helps do a thorough job reducing defects and rework (Quality).
Manage Queues: Short queue reduces waiting time for all items in the queue (Agility). Reduced waiting time minimizes spill-overs (Productivity). Reduced waiting time provides more testing time before the due date (Quality).
Resolve bottlenecks: Removing bottlenecks Improves flow throughout the system (Agility). Improved flow results in higher capacity utilization (Productivity). Absence of a bottleneck means no need to compete for getting beyond it in hurry (Quality).
For best results it helps to follow a step-by-step implementation. The suggested steps are,
Set up the board to clearly visualize the work:
By default a board normally contains just three states – To Do / In Progress / Done. But the total span of a team’s work typically contains multiple stages. Visualizing them on a board as different columns helps to clearly see the flow. Further breaking the stages in pairs of doing & waiting clearly separates WIP and Queues.
Put in place data discipline:
The team will take some time to ensure that the data in the tool is in sync the with ground reality. But it is important to achieve this discipline to get reliable data for measurement and analysis.
Modify board design to facilitate measurements:
Initial measurements on live data will reveal areas of high variability. The board design would be modified through setting up swim lanes and filters to reduce this variability.
Baseline the current agility / productivity / quality:
Before we can measure the improvements, the current level needs to be captured.
Agility would be measured as the elapsed time between given points in the flow. Agile tools like JIRA provide powerful reports for cycle times and cumulative flow.
When doing Scrum, the productivity and quality measures would be in place to baseline the current levels.
Keep measuring and improving:
After the successful completion of first 4 phases, the teams can start reaping the benefits. Areas of improvement and the extent of benefits achieved will vary from project to project. There is no out of the box solution; but there are available pointers to indicate possible areas of improvement. Continuous improvement needs to become an iterative activity, with a short feedback loop.
Scrum is the most widely used and powerful framework. Its power can be further enhanced by understanding and applying a few Kanban principles. The best place to start is within each sprint.
There is a misconception that agile is just about processes, and primarily for software development. This is a narrow view and as long as we see it that way, we deprive ourselves of the real benefits of Agile.
Agile is much more than that. It is an approach and a way of working (Agile Method). It is a way of thinking and a state of mind (Agile Mind). In short,
Agile = Agile Method + Agile Mind
Even in software development, it is not limited to a few processes but can be applied to all processes. In fact once the Agile is used fully for software development, it will start being used in all our walks of life. After all, it is one life and can’t be compartmentalized.
In next few weeks, let us explore this line of thought in detail.
I saw a news item yesterday about freight train movement between Mumbai and Delhi. It has only one stop at Vadodara in the total distance of around 1400 Km. The track ahead is kept free to ensure “Sustained pace”. This reminded me of my childhood days spent in a railway town. The primary mode of travel for us was the trains, and I still remember the poor goods train waiting patiently in a loop line while a mail train thundered by.
Over all these years, both the throughput and velocity of freight trains have substantially increased. The freight train mentioned in the news is two KM long and carries substantially greater weight from origin to destination. It also moves in an “Expedite” mode in preference to other trains. The terms sustained pace and expedite that came to my mind shifted my attention to agile software development, and I started thinking whether the way we use “Velocity” is correct. Isn’t size delivered per sprint a measure of throughput rather than velocity? I looked up the definition of velocity and found that it is “The rate and direction of the change in the position of an object”. It is closer to speed than throughput.
That shifted my attention back to trains. A passenger train which stops at every station and an express train stopping at only the major stations may carry more or less same number of passengers (throughput), but they cover the same distance in substantially different times (velocity). A passenger train might attain, for a brief period, speed similar to an express train. But its average speed is much lower because of, not only the waiting time at the stations, but more so because of the frequent acceleration and deceleration involved.
This explains why there is so much importance given in agile for a team to take up only a few items at a time, and take up additional items only when those in hand are fully “Done”. Unlike the trains which follow physical laws, agile teams made up of humans have an additional challenge. Once our attention is diverted to something else, it takes time and effort to switch it back to what we were doing earlier. In addition the information we used might have also become stale in the meantime. So if the agile teams want to achieve high velocity and maintain it, they should be aware and manage the number of items being worked on at a time.
I also remembered that when I was waiting in a passenger train for an express / mail train to pass, sometimes the wait was quite short while at other times it was considerably longer. This was because of the dependency on the time at which the higher priority train would pass. And we had no information when that would happen. Agile encourages transparency. A perfectly flat transparent glass allows a viewer to see on the other side very clearly. Similarly, all those involved in any work should have the information, without filtering or distortion, when they need it. Agile processes and tools provide high degree of transparency, and it is for us to make sure that it remains so.
Another way to minimize the harmful effects of dependency is with enhanced and effective collaboration. When cross-functional team members work on the same item, speed and quality with which it gets completed is phenomenal. Hand-offs are the worst enemy of velocity.
In earlier days, there were single tracks between two stations. This resulted in only unidirectional movement at a time. The other train had to wait at the station. Presently with parallel tracks in both directions this is not an issue. Hence in agile we should think of velocity (a vector) and not just speed (a scalar). Rework moves in the opposite direction to the normal work and slows it down considerably.
There is a saying “Words make the world”. We should not mix throughput and velocity or use one in place of another. Commonly used words package lot of information and meaning with it. More importantly, the words also package the emotions. A mere mention of such a word starts the train of thoughts and images associated with it, and recreates the emotions involved as if they are being experienced now. Wrongly using the velocity when we actually mean throughput deprives us of the immense benefits mentioned above that can make our work simpler and life easier.
Recently I across a job description for the Scrum master role. It started with the mandatory sentence “Scrum master serves and protects the team”. But beyond that followed a long list of activities, mostly of administrative nature, which had virtually no relation to the serve and protect part. This made me start thinking. Here is how I would like rephrase the job description.
A Scrum master must be acutely aware:
• Aware of Agile, not just Scrum
• Aware of the power of agile tool that the team uses, both in terms of how it can help or harm; and
• Aware of the potential of his team members and inhibitions harbored by them
Why does he need to be holistically aware of agile and not just limited to Scrum?
Scrum is a good framework but it is just one way of doing agile. There are others, and those can further enrich the team’s capabilities and make their life easier.
There are agile principles which can guide him when in doubt. For example the one called “Simplicity” is so beautifully defined as “The art of maximizing the amount of work not done”, which can serve him in a vast range of situations.
Why is the agile tool so important?
Initially agile was tentatively tried out for simple cases, hence the manual information sharing and face to face interactions were good enough. But as it has matured over the years, now it is being confidently practiced for much more complex situation, for example bigger projects in offshore development mode.
In such situations using a good agile tool is a must. Otherwise there is an excessive overhead to keep everybody in sync.
A good tool also can capture lot of useful data through the transactions it handles, and provide rich reports based on the data provided it is reliable. This means all the relevant data is in the tool and not outside it.
Secondly, if the tool has to automatically capture the time related information, such information must enter the tool as soon as it happens. It takes discipline to do so, and the Scrum master must take care of it.
The tool provides benefit because it automates lot of manual work. But such automation has its cost and introduce certain degree of rigidity. The Scrum master must understand these aspects and guide all concerned, including the team, in a right direction.
Why do people matter?
People bring unique potential and valuable diversity. But this also introduces its own challenges.
One is the assumptions and beliefs held by the people, which sometimes can severely restrict or distort use of agile.
Secondly neither processes nor tools have any emotions, but people do. This requires very careful handling. The Scrum master should appreciate and accordingly serve and protect the team.
[Note: The term “serves and protects” can sometimes be confusing and open to multiple interpretations. If in doubt, look at a mother who doesn’t feel it below her dignity to do whatever it takes to look after her child’s interests. She doesn’t think twice when the child is threatened by an external or internal challenge and rushes to its rescue. And she leads by example. She truly personifies the role of a Scrum master.]
In short to be effective a Scrum master must grasp the essence of his role and love being one. Otherwise any amount of knowledge or training won’t help much. He should really understand agile in its totality, know the details of the tools used, and empathize with people he deals with both within and outside the team.
The three principle entities in any software development structure are, releases products and teams. I have seen a wide range of permutations and combinations, from very straightforward to quite complex. A simple and flexible process architecture is outlined below, to deal with range of such situations.
Product is the central entity. Any software system worth its salt is not a single homogeneous product, but actually a product suite which contains multiple product lines. Each of these product lines have their individual backlogs to work from, and hence each can be considered as a separate project for the purpose of this discussion.
On one side, each project needs one or more teams to do the actual work and take the project to its next stable state. Currently I am dealing with an interesting situation, not uncommon these days, where most of the teams are specialized in their own area, while few others are generic cross-functional teams.
On the other side, stories from multiple projects need to be complete before a given release. So this is a many-to-many situation on both sides of a project. If we are able to come with a simple process architecture for this complex situation, hopefully it can be equally applicable to situations that involve one-to-many or even one-to-one relationships. Key to this solution lies in making the main three entities loosely coupled.
We are using agile approach for software development. Hence it needs a shift in the way we look at Scrum Kanban and Lean. Rather than treating them as independent methodologies, we are looking at them as just tools which we can use in combination as needed. Something like when we have a hammer spanner and Screw driver, we use a hammer to hit something in, and then tighten with a screw driver while holding it with a spanner. Once we are clear about the specific benefits & limitations of each tool, we use them just in the right way.
Each project has its own backlog, and the epics and stories are defined at the project level. Agile provides us a way to achieve incremental stability through sprints. The teams work on these user stories to complete the sprints. Releases depend on timely completion of these stories, which is managed through sprints. Scrum works for the projects. Team doesn’t need its own sprints. It can easily pull only the relevant stories from multiple projects on a single Kanban board. In the same way, each release manager can design his own Kanban board which at a single place shows him all the relevant information.
Stories have their own lifecycle, which may extend on each side of a sprint. We need a way for the teams to visualize their current work status as well as progress, for the entire span of their involvement. Each team may have different span depending on the functional compositional of their team. For example, architects may be involved primarily in the grooming activity, product owner & business analysts in grooming certification and acceptance, while the developers (including testers) primarily in the development and certification stage. Being able to visualize their work would help not only in having everybody interested on the same page, but would also provide early warning signals on the risks developing.
The holistic view, focus on customer value, and constant attention to avoiding waste provided by Lean fits well into this picture.
Since we are not using Scrum kanban or Lean alone by itself, there will be interesting challenges that will surface and so will have to be handled. More to follow; stay tuned.