Sunday, March 9, 2014

Shu-Ha-Ri Applied

Shu-Ha-Ri  Applied

edited: 2014-03-10 - grammar issues

The Issue

Shu-Ha-Ri and the Dreyfus model are very helpful tools I have used to help understand the point of view of a person I am working with and guide me in how I coach them. I am seeing a use of these models that concerns me and appears to hurt our ability to change more than help. These models are quite helpful at the individual level for a specific skill. Shu-Ha-Ri seems to always be described, in its initial context, as a relationship between teacher and student. Applying it beyond that without potentially significant changes appears to be an abuse of the model.

I intend this article for experienced coaches, change agents and change organizations and think that other individuals and groups with a global, enterprise or other large scope will find benefit in thinking about this subject. This article is focused on when these models are applied to a software organization moving towards Agile and Lean.

More background

Articles, such as this one by Rachel Davies have implied the models are wrong to apply for forcing someone to do agile practices. I tend to agree with Rachel on this issue and would like to expand on where I see the problem. The biggest issue I seen is when applied in a larger scope of people, team or organization, they seem to be misleading and guide us to treat knowledgeable people as overall beginners. The danger here should be obvious, smart people treated as beginners will be put off at best and likely fight against us.

Interestingly, when I read Alistair Cockburn's article, where he introduced Shu-Ha-Ri, he applied this to training courses. These can be targeted at individuals at a specific level. Books and articles as well can easily target and let people know who the intended audience is. Many people have no problem reading beginner material or attending a introduction class to start understanding a new skill or topic. These are all targeted usages of the models that allow the individual to choose to be a part of.

Jeff Sutherland also uses shu-ha-ri in guiding Scrum implementations. Notice that this is also a shu targeted at the Scrum Master. In the shu state, the ScrumMaster sets up the process, helps the team get to a sustainable pace with known velocity and uses the
Retrospective to introduce change that improves velocity. I disagree with the velocity target but I will use it as an example goal. In this description the scrum master is looking at the team, though the article seems to mix abstraction levels between Scrum Master level and team level. Sutherland could have said the Scrum Master doesn't allow them to vary the process but he does not. He does not say the Scrum Master tells the team to do practice X. Instead the Scrum Master guides towards achieving goal Y via retrospection. He might recommend a practice to help achieve goal Y if the whole team cannot identify a possible practice to improve the current situation but the Scrum Master does not dictate the practice.

Looking for guidance in helping an organization change

I think Sutherland starts to imply a difference in applying the shu-ha-ri idea in a larger context beyond the individual, we target goals and outcomes to a less mature group and guide them towards that. This is not the same as you do exactly the one practice taught by the teacher. I believe it is a bit more than simply a goal. I like the way Don Reinertsen states a similar idea, "decentralized control with decision rules". See the video LSSC12 : Decentralizing Control: How Aligned Initiative Conquers … 

Based on my experience organizations fight back against the absolute one way given by a enterprise or global level group. They often do so with the right intention. The group fighting back knows their context and see weaknesses in the one practice for beginners. Having the organization work at the shu level as a directive is where we lose supporters. We are not talking about people new to software development, shu in Aikido is someone completely new. It is a rare circumstance that we are talking about people that have not delivered software in the past. Agile and Lean are not the goals or at least should not be. They are mechanisms to help us think about the situation and see it more clearly. If we are guiding a team or organization we should be guiding them towards the goal. Let's assume for example, in the rest of this post, that the goal is delivering value more often to our customers and other stakeholders.

What does team level maturity look like 

I think I have jumped a bit far ahead and assumed we are ok with the idea that there are no shu level teams and organizations where the teacher gives them the one rule, way or practice to follow. So let's back up and look at what is implied by a team or organization being shu level at their primary tasks.

If the shu fits we are in big trouble

Maybe a shu level team is one that all members are at the shu level. Can they be at the shu level for their primary tasks of delivering software? Maybe, but this would be for such a short stage that by the time someone is invited in to help they have already left the shu state. If they stay at this state for any time at all they will no longer exist because the organization, product or team would fail in a way to bring a drastic change to the team or it would cease to exist. This seems like such a bad state to be in that it would be rare and could not last long. We really should not assume all teams are at this level and dictating the one way is not likely to fix this team. The team has to be changed in a more drastic way.

This state does not match my experiences. I have seen a team that really could not deliver but the organization caught this mistake relatively quickly and fixed the problem. I say team but it was an organizational problem where people were hiding the real state to protect themselves and it failed relatively quickly. In this state, they also did not ask for help. It was not until they had failed and realized the problem that they asked for help. They also realized most of their issues and it was clear they were not a shu team. When they admitted the failure the true level of people who were being silenced by the system came out and they new how to fix their issues with very minimal encouragement and guidance.

Maybe a shu level team is a team where all team members are at the shu level for a specific new practice. Would that make them a shu level team? Meaning, a team which we treat as beginners because they do not know a practice we believe would make them more effective. I am thinking of practices like TDD and Uncle Bob's idea of a foreman. My experience matches more with Jason Gorman's. It just will not work to impose these practices. In my experience teams will meet any metric you impose to verify it and will actually make themselves even less effective. If we want to call them a shu level team we will have very little success. I am proposing they are not a shu level team. They are likely far from a Ri level team but they are not shu. They have some experience and success at delivering software and we do damage by treating them as beginners. They are likely shu at TDD and they likely need to be challenged to improve their capability to deliver. In my opinion, this is different than being a shu level team.

Maybe a shu level team is a team with so few ri/ha team members that they cannot successfully guide the shu level members and keep them from doing more harm than good. This seems more likely than the first example of all shu level members. This team actually has an advantage and solves the problem faster than the mythical all shu members team above. The few ri/ha team members make this visible quickly out of fear of their own failure if nothing else. I have seen this team get the problem fixed relatively quickly.

For me the real issue is having a shu level team or organization is never what we need to solve. That shu level team or organization gets eaten alive by the market, internal or external, or they fix the beginner problem so quickly that we would never be asked to come in and help. If you think your organization is at the shu level ask a few questions about it. Do people know where they, the team or organization, is not very effective, at least in some areas? So far I have not seen any organization where people could not answer this question to some degree. Enough people to know that change was necessary at a minimum. All of these organizations are currently delivering software. I would put them at the compotent state in the Dreyfus model at least. They need and benefit from someone looking at what they are doing and reminding them of the goals. The need and benefit from someone pointing them to solutions they have not tried and influencing them to think about them. The need and benefit from someone guiding them in practices they do not have experience implementing. They usually need to choose those practices based on the goal discussion first. 

At this point I may not have convinced you that shu level organizations and teams are not who we are asked to work with. If I have not convinced you; then please keep testing to see if the one way is causing more good than bad and is change truly sticking. 

Ha!

If I have at least convinced you that it is possible there are no important shu level teams and organizations, or at least you are not working with or for one, let's continue. Ri level organizations and teams are probably very rare and frankly unimportant. If you are competing against one you will not likely be in business long, unless of course you have the cash to buy them in which case you probably should. So let's not even worry about that.

Most of teams and organizations are at the ha level or Competent level. These are the ones that see the need for improvement. They likely have asked you to help them by using Scrum, Kanban, Lean, XP or some other change to make the more effective. Likely, they have even asked you to teach the one true way. There are ha level organizations it seems to me. Interestingly, they often even state in contradiction to their request to you, to teach
the one way and be consistent across all teams in the organization, that they do not want be prescriptive. What would lead them to say this? Maybe it is the fact that they see multiple activities and in many cases teams and groups with a poor vision of the goals behaving in a way that they want to put structure on. They often see that being prescriptive is not likely to work and yet they ask for it anyway. They have not seen how to achieve similar goals in different ways while dealing with conflicts between groups that deliver together. These are ha level teams and organizations that need to be aligned to a goal before any of these ways will make sense.  Once they have that, then they can be guided to practices and may even be willing to try a practice they are at a shu level to see if it helps.

We, as coaches and change agents, need to help them understand the goal and make that clear from top to bottom. Once we do that we can help them see with some minimal guidelines where they could improve to meet the goal. They will also see when they have a goal that is different and start pushing back on the system that is giving conflicting goals. Interestingly, until they see this conflict teams and organizations do not push back openly in a way that can get the conflict resolved. It is usually not politically safe to do so. They push back in a politically safe way that continues towards their conflicting goal while meeting a metric, in number but not value, that is meant to show direction towards a goal they are not trying to achieve.

When we start treating people like they are successful and knowledgeable, by asking their input on how to achieve the goal, we will find a better way to achieve these goals. We will often be asked how can that be done and give us the opportunity to introduce a new practice that helps them. They are more likely to be open to the new idea sooner if they have asked for help achieving the goal. They are more likely to spend the effort it takes to learn the practice than simply fake the metric. They are even likely to help choose a metric that helps them determine if they are getting better. The first XP team I worked on was this way. We had the opportunity to try something and we started seeking ways to do it even better. We learned metrics that helped guide us. We started to understand weaknesses and strengths of our own metrics. Teams that were forced to do the XP practices did not get the same benefits. Their builds were often broken, their test coverage went up in unimportant areas but met the targets. 

Most organizations will not allow Uncle Bob's foreman to control the code, it would have appeared significantly slower. They are still a ha level organization hiring more and more developers to fix a problem more developers will make worse. However, it probably would require a foreman to check everything in this forced 'treat the team as shu level' environment. Treating the team and organization as though they are a ha level team and they will start to see the trusts and reciprocate by helping the organization see the problems and find practices that help improve them.

Summing it up

When a team or organization has experience at their primary tasks it is wrong and dangerous to treat them as beginners. It is wrong because they are not. They need some time to choose the practice that moves them closer to a goal and learn that practice they are beginner at. They also need to see the goal in the bigger context. 

I really doubt you are working with or for a shu level organization or team. Is it possible, that we as change agents and organizations, due to our own level of HAness, are treating teams and organizations as if they are shu when they are not? Should we make sure we
are not teaching the one way because it is easier than dealing with people and helping them understand the goal? I know I need to think about this more often based on my past mistakes.

As always, I am seeking your feedback more than agreement. Please leave your comments and help me improve.

Friday, February 7, 2014

Who gets value

I was in a discussion earlier this week about user stories and one of my colleagues states that 'as a' was about the actor and I had an immediate allergic reaction to that statement. 'As a' should point to who is getting value no matter who or if they are anyone else is performing a specific action. As a user of many products, way to many organizations think I am actually interested in entering data or performing some action and have not thought about my need.


Give me something for nothing


Let me start with an example.
In order to respond quickly to my friendsAs a Facebook userI want to be notified when someone comments on my status

This story is hoping to benefit the person whose status is being commented on. The person acting in this case is a friend leaving a comment. The person getting value did not have to take an action to get this value. 

However, what if it is not what they wanted...


I don't want to use your form or enter data


Sometimes getting value does require the user to take some action. Most of the time the user does not want to act or wants to do as little as possible to get the value. Let me give another example on the same situation.
In order to avoid silly interruptionsAs a Facebook userI do not want notifications from certain people

In this case it is likely that this user will need to take action. Actions is not what they want however, it rarely is. They want to avoid getting certain notifications.

Challenge


It is my experience that focusing on the actor often leads to solving the wrong problem or solving the problem in a poor way. Reminder: The user rarely wants to enter data. 

How many of your stories are thinking about the actor? Try rewriting your story to think about who the primary beneficiary is and see if that leads to a better solution.


It is also value not format


The format we are talking about is not very important. The important thing is are we thinking about who gets value, whose problem are we solving and are we solving it in a way that is simple and straight forward.


Sunday, January 26, 2014

Starting with Teams Requires Fixing the System

Being a part of Agile transformations since 2001 I have listened to and participated in several discussions about teams vs system changes. However, I am not sure these two things in and of themselves are different. If you start with teams, as most Scrum and XP transformations do, it is a system change in many organizations. Teams don't just magically happen because you put people together and tell them to self organize many changes to the system must take place.

Teams that stay together will be an early system change for an agile development environment to succeed. Quite often, this means financing has to change. Financing happens for projects and long term teams that last for the lifetime of a product or service is a system change that is likely to be met with resistance. Budgets are made to support x number of people for y number of months to deliver scope z. An organization must ask how is it going to maintain that software? How are we going to adapt that software to changing needs of it's customers? Who is likely to be most effective at maintaining that software, those who created or the junior maintenance team?

Teams that are cross functional are required in order to complete work every two weeks or less and is likely to run into several system issues. Teams in many organizations are dependent on design decisions from people outside the team, such as technical leads and architects in a global architecture team. Their ability to make decisions are slowed by late reviews and feedback leading to incomplete work each iteration. Teams in many organizations rely on a long lists of specialists such as architects, technical leads, database specialists and official build and deployments teams just to lists a few. The system will have to change to allow the team to do builds at will and deploy them to different environments. An organization will need to trust teams to build the software in a consistent manner? They will need to overcome the resistance of those teams currently doing that effort trying to protect the perceived loss of responsibility and the fear of losing their jobs. They will need to solve the problem of global architecture concerns and shared direction among teams that deploy into common environments while allowing the team to learn and adjust to the needs of the customer. All very difficult system changes.

After cross functional team are created it becomes clear that further improvement will require reducing the frequency that specialists are needed. This will again require a system change that requires overcoming fear of losing control and influence from those specialists. The benefits are good for everyone as each person gains a broader set of skill the organization becomes more agile. However, this apparent loss of control and influence is difficult to overcome in most organizations.

Teams that are focused on value versus projects focused on fixed budget and scope is another system change that is required in many organizations. Traditional systems are setup to expect a fixed budget and scope setup in advance. Agile says fix the teams and the budget and adjusts the scope to adapt to current needs and learning. The system will fight against and undermine the team making good decisions if it is not changed. An organization must honestly ask itself, with my fixed budget and scope projects in the past, did I get the things I wanted, needed or even originally planned? If not why? How long did we spend in discovery and analysis? When did we learn the most information that disagreed with our original assumptions? What do we do that really does have a fixed dates, such as compliance requirements, and how much of our work consists of these true fixed dates? Is software changes the only way to meet those fixed dates? This type of openness and honesty is also a system change in most organizations.

Teams that deliver as often as possible versus those who hand over testing at the end with n cycles of bug fixes is also a system change. Most organizations do not believe it is possible to deliver quality software quickly. Their experience likely backs up the assumption that software is very buggy early on. They may never have experienced a team that is focused on high quality rapid delivery, a team that is automating most or all normal checks of the system freeing time to dig deeper into possible limits of the system, a team that is collaborating so closely that all parts of the organization know what is being delivered and understand each direction change. They have experienced miscommunication, lack of trust and finger pointing between product, project management, development, testing, marketing and sales to look for who is to blame for the latest failed project. My experience says this trust is very difficult to overcome and will hinder teams until they can get quite a few wins under them. Wins that the system is, unintentionally, fighting against.

Teams are a system change in most organizations. Teams are not an evolutionary system change that you get in a Kanban environment, instead they are a chosen from the beginning system change that will bring fear and disruption. Don't fool yourself that you can start with teams and wait on system changes later. Creating teams will point out and magnify each of the systemic issues before teams become effective at delivering quality software. Start dealing with these issues before you create teams or you will likely lose many of the people who have the most knowledge and experience about the system and can help you fix those issues.

Saturday, October 26, 2013

Formative Organizations - Introduction

Update: removed Deming comment that was out of context.


Formative Organizations

Building a Foundation on Integrity, Delivery and Learning

The Problem

There are many articles, like this one in Forbes, talking about the life of organizations becoming shorter in one dimension or another. Does this idea of creative destruction have to be outside an organization? How might we increase our organizations likelihood of adapt to an unknown future? It seems like a worth while

The Direction

We are taking this idea of flexible foundations and starting to build user interfaces that are not bound to what we know today. That is, we are not designing to only handle resolutions and browsers that exist now but to scale, both up and down in size and capability, as they change. We are starting to create distributed architectures that can take advantage of cloud computing to grow and shrink our infrastructure to meet changing needs. Our organizations, however, are stuck in a rigid unbending system that hinders us from adapting, growing and developing to meet the fast changing market we are in.

I don’t think this requires a great new framework to scale Lean or Agile. As Arlo Belshee, @arlobelshee, tweeted recently, “These days I wouldn't say don't scale. I'd say make shipping easy, then solve the few remaining problems.” We don’t need to scale agile, we need to make our organizations scale. However, let's not fool ourselves that the solution is simply a technical one. The solution starts with people! We can use frameworks but we should be very careful with them and not bind ourselves and our thinking to them. Tight coupling to frameworks makes code difficult to change. Tight coupling to agile frameworks makes organizations difficult to change.

After starting the book Lean Solutions, I have not completed it yet, I also think Arlo has stated an incomplete view of the problem. It is not simply shipping, though shipping is clearly the early part of the value chain, it is a full circle of customer need or want, known or unknown, possible solution by someone, learning and supporting the customer and other 'stakeholders' and continuing to solve the changing needs in the future. Supporting this full cycle is what I would like to be apart of refining.

The Formative Organization Idea 

Set a vision and create a goal to deliver that vision fast with integrity, learning and adaptability.

Merriam-Webster gives the second meaning of formative as an adjective as:

capable of alteration by growth and development; also :  producing new cells and tissues” Merriam-Webster

The basic idea is creating the ability to grow and improve leading to new ideas and solutions that improve and/or replace the existing ones. To do this I think we can combine several sets of overlapping principles and practices that allow an organization to give people the view they need to adjust what they are doing to support this full cycle. Obviously, my idea is not completely unique and dreamed up by me, not even a significant portion of it. 

The primary source of principles and practices for creating Formative Organizations 

  1. The Antimatter Principle"Attend to folks' needs." Bob Marshall, @flowchainsensei
  2. Lean Startup - Eric Ries
  3. Continuous Delivery - Jez Humble, David Farley
  4. DevOps - Gene Kim, Kevin Behr, George Spafford 
Combining these principles and practices appear to start us heading down a path towards a more complete system view. A view of this cycle often referred to as creative destruction.

I am not sure the implementation of these ideas have fully dealt with all areas though I think the principles might. They clearly show how we bring together customers, idea people, delivery people, support and operations people and a few of the roles like risk and compliance. The idea of a formative organization must bring all roles together to understand the current vision and goals and knowing when that vision and goal should change.

Integrity

I put the Antimatter principle first on the list of guiding principles to indicate the importance of people. This idea that we all must think about others and how we affect others and work together to move that positive for everyone. I think the agile idea of cross functional teams is headed in the right direction. Many implementations are limited in application. All people must be involved and have their needs considered. 

Delivery

Many agile teams limit the idea of cross functional teams to business, development and testing. Though small teams need time to focus, a real need, quite often others need to be involved often. I think that the other 3 sources of principles support this idea of broadening the basic agile cross functional team to include all value adding people; business, customer, development, facilities, finance, HR, operations, testing, etc. 

This may be more of a group than a team if you use size to determine the idea of team but somehow this larger cross functional organization of people are required to meet that full cycle and each must know and learn how they effect the others.

Learning and Adaptability

Learning must happen along several different paths. The first is understanding how we all fit together and affect each other. It is a focus on how we move a vision and goal forward and allow it to change as needs change and as abilities to meet those needs grow. If we do not have this down all other learning is likely to hurt us more than it helps us.

Once we know how we affect others we can continue to learn how we deliver as often as possible. Of course the primary goal of having the ability to deliver often is continued learning about how we affect others. Specialized skill learning is very valuable and a must if we are going to deliver our solutions often. We must remember that most of the specialized skill training information we use to learn from does not take into consideration our primary learning of how we affect others. Part of specialized learning is learning how to apply it in a beneficial way. This is almost always adaptive in nature. This adaptive process depends on the integrity side. We must be transparent about what we know, what we project is likely with this new learning and what we have no idea about. 

This process of continuous learning is the driver of continuous improvement. It is also the driver of vision and goal changes. As we all learn we start to see a better future together and adapt to that future.

Conclusion

Early on I mentioned a single vision and goal but I do think the larger an organization gets the more uselessly generic that is likely to become. It is likely multiple cross functional groups are will develop. This may be simply changing the structure of silos versus removing them. Frankly, I'm not sure if this is good, bad, indifferent, more risky or less risky but it is the direction I am exploring.

Each of the sources of principles I have listed are people focused. It seems this cannot be said and strived for enough. We must be realistic that this is the hardest part. It is easier to focus on process, methods and practices and likely always will be. I just have trouble seeing how a process that is not focused and understanding peoples needs is likely to meet them. 

I have some hope that this is more than just a bigger idea of cross functional teams and self-organization but I also have some doubts about that. I am theorizing that if we can have a broader focused set of people we can increase our ability to alter and develop our organizations that creates new cells faster than old ones die.

Please leave me your thoughts and ideas for improving this? Is it worth continuing to pursue?



Friday, October 4, 2013

Is The Product Owner Role Hiding a Bigger Issue

Is the Product Owner/On Site Customer role in Scrum and XP potentially hiding a bigger inventory problem? My thought on this started with a blog post from @duarte_vasco. (please stop and read this to gain context) It also fits with several experiences I have had. But first let me show an example that actually makes the problem visible.

At a company I was working with they could not agree on a single product owner type role. This caused them to create a product owner team for each scrum team. These product owner teams had people from the business, IT and user experience groups from the organization. Of course for many with a Scrum or XP background this clearly brings to the forefront the likelihood of several issues cropping up, multiple priorities given to the team, slowness in agreement on direction, stories that are really small requirements documents, etc. Not surprisingly, that is the case. However, that problem is very visible! The visibility has lead to discussions on how to improve that. I am not completely confident they will create a solution that is significantly better on their first attempt to fix the issue but as long as they keep making it visible they have a chance to.

Other teams I have worked with had this same process happening in the background. The product owner role hid the issue though. Months of work were happening in the background trying to define features, get funding, get buy-in, etc.

The problem is not with the Product Owner role. The problem is we are creating a role without focusing on the real goal, how do we improve the organization's ability to deliver more quickly, understand customer needs and adapt more quickly to market demands.

Friday, February 1, 2013

Moving Visibility and Measurement Up the Ladder

More visibility up the organization ladder

A couple of the benefits Agile has given us is adding visibility into team work and moving us away from individual measurements, as our primary way of measuring progress, issues, etc. For example we replaced individual tasks estimates with team velocity for forecasting completion. This visibility into the teams work and measurements of that works helps change a teams focus to how do we improve our ability to deliver value to our customer as often as possible. Measures of a team are not enough to help most organizations transform and learn how to deliver value more often. What we need to solve this issue are visibility to how the organization/system works and measurements that help management see where the system has issues so they can make these visible to the the teams to help guide them to make good team adjustment. This is where I see a great benefit in concepts, principles and practices from Kanban, system thinking, theory of constraints and Lean.

Agile visibility

Scrum/XP/iterative planning help a team visualize many aspects of their work. By looking at trends and collaborating closely teams can make incredible improvements. This type of working can also improve communication up and down the business hierarchy. However, many problems are outside the teams control and though the impact of those problems are made visible the exact cause and full understanding of them are not made visible. Management needs visibility and measurements to help them see where the system is causing organization and team problems.

Another issue is a team improving, yet not understanding their impact on other teams. Sometimes a team improving can slow other parts of the system down hurting the ability of the organization to deliver value sooner. It is also possible that management does not understand the impact a 'lower value' product has on a higher value product. Due to the 'lower value' of the product on its own a lower level investment in the product may actually slow down a higher value product. Management needs visibility and measures that help them improve how they manage the system. It is a change for much of management from managing people to managing workflow (paraphrase @alshalloway or @agilemanager??? sorry could not find the original tweet on this idea).

This visibility will also help teams understand what they need to do differently as well. If I do X it hurts team Y. How can we deliver and reduce the burden on other teams. How might we help other teams such that the organization can deliver value sooner.

System visibility

Kanban, system thinking, theory of constraints, and Lean ideas are a good way to see this higher level.

A Scrum team may see that their velocity is inconsistent which indicates a problem. Maybe that problem is something the team can fix, unavailable product owner, missing/weak skill set, no automated safety net, etc. However, when these are not the issues they may not know the full cause and more importantly managers do not have a good view to the cause of the issue. Add a visualization of the workflow across teams with WIP limits and now management can see that a team is waiting on another team. They can see a team is producing work that another team cannot integrate with until much later causing a lot of rework and defects for both teams.

Scrum teams may be effectively delivering each iteration/sprint but they cannot always see the effect of their work on others. If managers and teams are looking at the cycle time of work that goes across multiple teams they can make decisions to improve how the organization delivers.

Conclusion

Too often managers are pushing teams to improve some metric that is outside their control. This causes frustration and gaming the metric. Scrum gave the team transparency but the work of the manager needs to be made transparent as well. @agilemanager recently tweeted "I'd like to end focus on process and refocus on management (training).  is a management method not a process" Agile/Scrum/XP have visualization mechanisms and measurements that help teams see issues they control and effects of things outside their control and Kanban adds visualizations and measurements that help managers see what is the cause of the problems outside the teams control. I would also like us to move away from focusing on process to focusing on managing the work and finding the best way to deliver value. Lets move past just making team work transparent and measuring teams and make workflow and system issues visible to everyone and use the measurement trends to move us towards a common goal.

Monday, January 28, 2013

Collaboration Not Compromise Or Control

Why aren't we seeing the value we expect from our agile implementation?

Many of the agile implementations I have seen struggle with achieving the value they set out to achieve. One of the big reasons is we replace collaboration with compromise, control or some combination of them. Collaboration Not Compromise or Control could be another way of stating the agile value of People and Interactions over Process and Tools, I am not sure, this is a work in process in my mind. I believe collaboration is that 'thing' we are striving for that will give us the best chance at achieving the outcomes we are seeking. This wording comes from thoughts and ideas I have been reading from @alshalloway, @flowchainsensei, @drunkcod and others. Being that this is work in process please help me work this out and smooth the flow of this idea.

Most would agree control is not collaboration (I think)

Control is violence against the individual. It assumes the worst in others and seeks to minimize the effects of the persons expected 'badness' by limiting the individual as much as possible. @flowchainsensei has a great set of blog post on the ideas of non-violent communication at http://flowchainsensei.wordpress.com/.

Sometimes command and control can have some good outcomes but they are becoming fewer as complexity continues to grow. I believe it is also wrong to look only at one outcome and not its effects on people. Outcomes must be good to and for individuals if they are going to be sustainable. 

Compromise is (usually) not collaboration either 

Compromise is often the majority acting violently against the majority. A recent tweet by @drunkcod made the statement "Compromise is Latin for 'everyone loses'". We usually want compromise when we are not in control so that we get some say in how things are done. Compromise also means you give in to my ideas.  Compromise is someone giving in to someone else or someone else's ideas. Compromise is violence imposed on another person with the use of nice words. Putting it in another way, compromise is control via manipulating others to go along with you.

Control and compromise are not the same thing but quite often lead to the same poor results and are usually bad for people, individuals.

So what is collaboration?

I think collaboration can be explained in a couple of examples. I take the first example from an @alshalloway tweet, which occurred during a conversation about coming up with a set of practices that fit your context, "I've been saying this for a long long time. XP, Scrum, Lean, Kanban, hybrid (5>2)". If a team has the experience from all of these methods they are likely to be able to find a process that fits their needs and context. This is the type of collaboration we need, not only creating the right system to work in but also making other decisions. It is not compromise, though potentially someone with a strict we must do these practices this way may think it is.

The second example of collaboration comes from a common goal and set of principles. Collaboration is difficult to come to by when we only understand a set of practices. In the midst of the same conversation which turned to fixing dogmatic implementations of Scrum, @alshalloway made the statement "we don't (fix them) -they fix themselvs once they understnd what they need 2do. following practices not as good as understandin(g)".

It also requires the idea that we are going to make some prediction about the expected outcome of a certain set of actions and then adjust when we are wrong. When we are only implementing a set of practices, a few things hinder us from collaborating. The first is we are closed to other ideas. Secondly, everything that is not practice X looks like compromise to us. Thirdly, we have trouble looking at the outcomes critically and leaving open the fact that the practice we believe in is part of the problem.

Conclusion

Collaboration is where we can achieve good things. Don't get me wrong, it does not guarantee good things but enhances the possibility of good things happening. Collaboration is also a much better place to be in as a team member.  Collaboration requires me to give up control. It avoids violence by being open to learning from others, taking all ideas, experiences and knowledge and turning the combination into something better. It avoids the violence of control as well.

Thoughts?