Tuesday, June 25, 2013

Absolute Teamwork

I've been interviewing a number of candidates for our team recently. Almost every CV contains some pseudo-mandatory clause about great teamwork skills. I was wondering what teamwork meant for these people. So I asked. Too often, it doesn't sound much like a team.

My reference for the concept "teamwork" in the past year and a half is a team called "the Smurfs".  I was fortunate to have served as their scrum master for a few months when the team was forming after joining two teams together, and held a management role throughout the long project.

Things I love about Smurfs


The team has a distinct culture of asking each other for help and being immediately available to provide help. It's essential for doing peer code reviews, for getting new team members on board and for knowledge sharing. A special role of an "on duty smurf", a fire fighter dealing with customer issues and test failures for a whole sprint, allowing the rest more focus, is  unlikely to have been possible without this helpful spirit. 


The team continuously demonstrated respect for each other. One aspect of it is that being passionate about the work led to passionate discussions. These were not ego driven, "my idea is better than yours" type of discussions, but rather real exchange that actually included listening. I could see it in technical design discussions, and in retrospectives alike.

Experimental Approach

A few examples:

  • When I stepped down from being a scrum master, the team tried to distribute the SM role between team members despite the consistently ominous warnings by non other than Jim "Cope" Coplein. It was a grand failure, many lessons learned, and a quick and successful recovery by identifying their next SM
  • The team kept trying out different new tools to support it's work - dashboards, testing techniques, clever code coverage measurements, experimental debugging techniques 
  • Being in the context of an enterprise level R&D, other teams benefited from the team's knack for improving tooling - many improvements to the main issue tracking system were made based on their feedback, and a whole new tool was introduced that supports code reviews, especially for distributed teams
  • A rich physical task-board (see prezi!) with many cool and useful ideas  
  • Convinced the office management to bring down a wall for us, to have proper space for a daily standaup
  • An evolutionary approach to discover how to deal with different types of work, specifically customer defects (described in my talk I gave at the Agile Practitioners 2013 conference)
  • Acceptance Test Driven Development (ATDD) - the whole way we define our stories was modified based on ideas a few team members brought from an Agile-Testing workshop 
  • Working together - swarming on work, by priority, was yet another experiment early on, that turned into a habit

It all boils down to safety and trust. Without a sense of being trusted, people are less likely to help or ask for help, and to experiment individually and as a team.

Last, but not least: fantastic results!

Besides the dramatic improvement in the response time to customer issues, the improved test coverage (quantity and quality increased), and quality - a new and exciting set of features, nicely balancing highly sophisticated capabilities with a rather straight forward user experience.


I'd like to acknowledge and thank the individuals who demonstrated to me what's teamwork.
The Smurfs team in this project are (in alphabetical order):
Dganit Keidar, Gad Salner, Ichai Luzon, Idan Zohar, Marwan Jaber, Michael Adada, Oded Nehama, Ofir Laviad, Ortal Balter, Rosalind Eidelheit and Yaniv Mualem.

Strongly affiliated and supportive of this team, locally: Assaf Appel who served as the Product Owner, Gadi Benedek, Asaf Broide and Lior Yaffe, together with a good number of people from the administrative staff. From Germany, we enjoyed the further support and collaboration with Andreas Goermer and Oguzhan Oezkut. And speaking of safety and trust, there's a big doubt if things would look the same without Christian Gengenbach, our VP.

The Smurfs continue to their next project in a different format. I'm certain they won't settle for anything less.

Thursday, June 13, 2013

Re: Is it Safe to Fail?

Amr Elssamadisy (@samadisy) recently blogged, asking Is it Safe to Fail?
I strongly agree with his claim (and I paraphrase here) that the "skill of failing" is an essential factor in a team's ability to learn and improve. 
Interestingly, Amr identifies three categories in which this skill is cultivated: culture, individual human dynamics and agile practices:
  1. Leaders create a culture that rewards small failures and the successes that come after them. They celebrate the successes and failures and lead by example.
  2. Individuals understand that failure is a milestone the road to success. They have experienced it multiple times and are not intimidated by it.
  3. Teams use software development practices that make failure SAFE.
While Amr elaborates on the third category, of practices (such as TDD, TDR/BDD), I want to explore a few options on the first category. What could be the elements that support such a culture? It seems to me that the second category emerges out of the other two over time.

Cultivating a Learning Oriented Culture

How can leaders cultivate a learning oriented culture, one that expects such failures?
Here are a few concepts that with proper teaching, coaching and leading by example, can serve as foundations to such work environments.

Responsibility Process - out of the Blame Game

Christopher Avery (@christopheraver) and others developed the Responsibility Process. In a nutshell (seriously, I can go on for weeks about it), this is a psychological model about how human beings deal with problems. Being aware of it, one can acknowledge the tendency to react out of a blaming mindset, and choose to hold on until a better, more effective, state of mind is reached. The model describes a number of distinct mental states that are normal for humans to have, but might not be ideal to be in when trying to take action. Responsibility is the desired mental state - in which one has learning capacity, resourcefulness, eagerness, energy and courage.
The model is a powerful tool for self awareness and mastery, but better yet - it can be a great way for a team familiar with it to have a shared language to make working agreements that support learning, trust and safety.

Nonviolent Communication

NVC is the brain-child of psychologist Marshall B. Rosenberg. It is aimed to show an alternative for the highly judgmental and competitive education most of us had.

During Agile Israel 2013, Bob Marshall explained violence using the acronym FOGS.
Violence is using or triggering one of the following emotions in others, to make them act in a certain way:
  • Fear
  • Obligation
  • Guilt
  • Shame

With this definition in mind, consider that many processes are violent due to their implementation. Why should we care? It might be the wrong way to reach our goals, to meet our needs.
Bob went on to describe NVC as a 4-step process, with a pre-requisite of empathy which is essential for diffusing a conflict situation. Try to understand the other side in an explicit way (or fake it...). The next steps are:

  1. Observation - what are the facts
  2. Feelings "how did it make you feel?" 
  3. Needs - violence originates by needs not met. What needs that are not being met cause those feelings? (or needs that were met, for positive feelings)
  4. Request - "would you be willing to..?"

A First Glance Comparison of the Two

I thought of introducing The Core Protocols as another culture hacking approach, but it suddenly hit me how similar NVC and the Responsibility Process are. I'd like to dwell on it for a moment.

Violence in Rosenberg's world is basically all that the "non-responsible" positions of mind are made to deal with. These are all coping mechanisms against the abundance of violence others emit. But this is poor protection - the aggressive party gets to "win" by triggering Shame or Obligation, forcing someone to action with fear. However, a person reacting out of Responsibility can distinguish between the stimulus (observation) and her own emotional state (feelings) and confront her own wants (needs) before picking a response.
The key difference (based on my very limited knowledge of NVC) is that while Avery's Responsibility is more about one's own state of mind, NVC is about dealing with others while dealing with ones own state of mind and creating an environment that supports the other to reach a Responsible state of mind.

Wait - How does it Relate to Safety?

Assuming the similarities I find between NVC and Responsibility aren't too far off, introducing such concepts (teaching, coaching and continuous practice and demonstration) to any community would raise the levels of trust and safety, and therefore of healthy, effective, honest and open communication. Roughly I'd say Responsibility is a tool for the individual to be more resilient and brave (inherently safer) while NVC is designed to reduce the levels of violence, therefore making it safer.

Thanks, Amr, for raising the topic of safety as an important factor for effective teamwork. It is also an ethical issue - there's little joy at work if you don't feel safe. But if you had to choose between implementing processes and practices that might generate some safety versus changing the culture - what would be more effective and long lasting?

Update: Amr recommended this blog post explaining Tech Safety - I love the concept, though the focus on the word safety might create an impression that it is not about quality, joy and respect for people. It is.

The Joy of Social Networks

In my post about the Agile Israel 2013 conference I mentioned Bob Marshal's keynote, and his principle of "Joy for All". I wanted to link it somewhere, but couldn't find more. So I found myself having the following twitter conversation with him:
  1. Guy Nachimson
    Guy Nachimson ‏@guynachimson18 May

    Did you ever blog of your "joy for all" guiding principle? I can't find reference to it as such
  2. Bob MarshallBob Marshall ‏@flowchainsensei19 May
    I don’t think so, directly. You can find the roots of it in e.g. Rosenberg’s spirituality of NVC
  3. Guy NachimsonGuy Nachimson ‏@guynachimson19 May
    thx for the pointer. Not sure I relate to that as I did at , but I'll give it a shot
  4. Bob MarshallBob Marshall ‏@flowchainsensei19 May
    I’ll take it under advisement for a future blog post :)

Guess what?
Today, Bob posted: Hyper-joyful, quoting Ackoff, Seligman, Deming and Rosenberg to support his debate with the prevailing assumption that work isn't supposed to be fun. It's a call for focusing on Joy at work rather than productivity. A joyful environment underlies hyper-productive teams.
Culture trumps Process, right?

Sunday, June 2, 2013

Pushing Back

"If you want to shut down an organisation, the best way is for people to stop working. The second best way is for everyone to just follow the rules"  - Patricia McLagan

Ever did something just because "this is what management wants", even if you felt it is wasting your time and doesn't serve any purpose?

Jim and Michele McCarthy might say you are violating a core commitment:
"Don't do anything dumb on purpose"
When you know it is dumb, it is your responsibility to push back.
The easiest way might be to go with the flow, do what you're told - but you are draining on your energy and motivation. It is frustrating to do dumb things knowingly. You are also wasting your time, and possibly the time of other people, by repeatedly following a seemingly senseless instruction.

Another way is to... not do it. In some cases it will simply be okay. But in this case, you might be doing a disservice to your organization, by holding back your feedback, and by practicing disobedience in a non transparent way. If you hold a leading role, you are also sending a message to others that it is okay to not follow instructions without being explicit about it. Don't be surprised when people start passively sabotaging your initiatives.

In my opinion, you serve your organization best by pushing back. Apply intelligent disobedience. Don't do a dumb thing on purpose, but go back to the person who might expect you to do it and tell them why you're not going to. This way you might either learn more about why this is needed (and feel less frustrated about doing it) or allow the stakeholder to look for alternative ways that would work for both of you. This is especially valuable if there are many others who obediently follow the same imperfect process. You'll be their hero.
There are many reasons rules stop making sense after a while. Context, tools, markets, culture - these things all change, and even a perfect process might slowly become obsolete. Managers need feedback, though some might not like it or be used to getting it.

If you find yourself saying "yeah, but it's not MY job to do it..." or "why should I be the one.." or "someone ought to" I recommend investing 18 minutes listening to if you see it, you own it by the McCarthys (you can start at 05:45 or so).

The combination of noticing something is worth changing and caring enough about it isn't common enough - don't waste it just because someone else said so.