Tuesday, July 30, 2013

Collaborative office space

In preparation for some changes in our office layout, I was interested to do a little research on various ideas on the topic.

Caves and Common

In Agile Software Development (2nd edition) chapter 3 (and 3.1), Alistair Cockburn describes a possible office layout - with the team room (programming room) having a central cluster of tables where pairs sit facing the center, with some more private areas on the side of the room. This is known as "Caves and Common". There's research backing this up in the book, rephrasing the Allen Curve (communication exponentially drops with distance) as the "school bus rule".
That's the typical agile team room (blogged by Martin Fowler).
This is sometimes also called a War Room.
Another blog that argues for this setup with lots of references: The Ultimate Software Development Office Layout

Inward facing U-Shape

Another setup. Well, it probably goes with an open space for multiple teams. Cool idea of joining a whiteboard and special projector. Each team member can share their screens on the team board with a single button press.


U-Pod

Martin Fowler blogged about another option of a U shaped space, where people face out side. While it is easier to roll over towards each other, it is harder to find a place for a team board. And avoid the corners, bad for pairing.
This is sometimes referred to as "The Bullpen".


Half Height Cubicles

Richard Cheng recommends half height cubicles. His slides show some additional options, considerations and aspects (I think he's missing the point of avoiding the corner made by Martin Fowler). In context of his slideshare, I think this is evangelized as an improvement to the previous single person cubicles. 

The Bionic Office

Right... Cool, perfect for focus and personal effectiveness, but totally optimized for working alone, inhibiting communication and collaboration.
After the first wow effect, agile teams optimize for team results rather than individual performance.

Overviews

Dafydd Rees (the programmer) shares his experience with different arrangements covering more or less similar setups.
InfoQ cites Mike Cohn on Workspaces for Effective Agility - not so much about the physical layout, but some aspects to take care of.

My Conclusion

There are many variants, and some would be more effective than others depending on context, individuals, team size, company culture and office constraints. You'd want to consider:
  • Ease of communication
  • Ability to focus (reduce distractions)
  • Team ownership of the space (use of information radiators)
  • Adaptability when needs change
Oh, and don't sit in an L shaped corner if you're ever going to pair...

What's your experience with various office setups?  

Update:
A short clip case studying the Stanford design school, and their concept of the impact of the work environment on learning, engagement and teamwork.

Wednesday, July 10, 2013

Can you copy a culture? The NUMMI story

In 2010 I came across a brilliant radio show of This American Life - episode 403: NUMMI.
It tells a story that's taught in business schools, of a joint venture by General Motors and Toyota - in 1984 these competitors decided to build cars together, each for their own reasons. NUMMI is the name of the factory, it stands for "New United Motor Manufacturing Inc".



Act one tells the miraculous story of this GM factory in California - it was considered to have the worst work force, always striking, struggling against management, with no work discipline what-so-ever: drinking on the job, drugs, gambling. Then, Toyota stepped in and transformed this plant into a Japanese style plant, using the Toyota Production System (TPS) principles. The real miracle is that it worked - and that 85% of the work force was the same. This a truly inspiring story of human potential and how systems can be designed to bring the best or worst of of people.

Act two is a different story. GM was for decades losing ground to Toyota. It had every reason to want to learn whatever they could from NUMMI and improve their quality across their other plants. This didn't happen - at least not fast enough. In 2010 GM went bankrupt. This part reveals some of the reasons and dynamics that led to the tragic outcome.

I recommend investing an hour to listen to it. Act one tells you how to get it right, and it is really emotionally moving - the interviews with employees who went through the transition reveal NUMMI deeply changed the lives of many. It also describes some of the key aspects of the TPS and how it was successfully brought to the US.  Act two  is a handbook for nearly everything that can go wrong when you try to change an enterprise.

What I like about this radio show is that it demonstrates so well that the Toyota Production System is not a "business process", or "best practice" you can see and replicate. It is a culture, with it's own values. It is not something you can just perform, it is rather something you can choose to become.

Agile transformation often suffer from similar difficulties - you can follow the rituals, but if you don't get the underlying values and mindset, you just end up creating "cargo cults", or simply resistance.


I'd like to thank Elliot Holar who shared this episode with me soon after it was aired - aside from this specific episode, I became quite a fan of This American Life. They rock. Thanks, e.


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

Helpfulness

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. 

Respect

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.

Thanks

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 :)
    Expand

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.





Monday, May 13, 2013

LEAN is not a way to lose weight. Or is it?

When I was first introduced with the principles of Lean thinking, my coach started off by making it clear we are not talking about a way to lose weight. A few years later, I would like to revisit and challenge that statement. Having learned more about the Kanban principles since, I think there are clear similarities.

Since the eating process is generally defined by our biology, I'll focus on flow

The starting point is late 2011, when I realized that unless I seriously change something I will continue accumulating weight. During my adult life I was always somewhat overweight, but at that point my weight was already a cause of grief and low self esteem. 

Establishing Pull

We often eat for all kinds of reasons: schedule, habit, availability, social circumstances, boredom. None of those is directly related to a biological need: first comes one of those reasons, next we eat. A Push system. The result is Fat, the biological equivalent of Inventory. This is where we store over-production. 

The natural Pull system is the Hunger mechanism. Our body needs more energy, so our minds signal "eat now". 
I don't know how it is for others, but I find it hard to free myself from all the social and psychological layers hiding and tempering with the basic hunger mechanism, so I needed to establish an alternative pull system.

To create pull, I needed to adjust the calorie intake to be just enough for the energy I spend. Since I didn't plan to rely on hunger, I needed a forecast of the energy demand, and a way to adjust the estimation.

Smartphones are great. A calorie calculator app provided an easy way to estimate a daily calorie budget, to visualize my calorie intake and my weight reduction rate.   

Keeping within budget meant I have an explicit policy. I would need to plan what I eat, and choose between alternatives in a conscious way.   

Seek Perfection

Once the first signs of success started to show, and some eating habits were established, I was ready to change further aspects of my diet. Here are a couple of examples.

While tracking my calorie consumption against a budget, I noticed it was much harder for me to keep to the plan on weekends and holidays. I realized that some habits are harder to change, but they surfaced only after I got the work days under control. For example, I didn't really have to take a serving of every single dish on the table at family dinners. It is not really an insult to the host.  

At some point I started adding sport to my schedule. It serves a few purposes contributing to value:  
  • Increasing the spent energy (while keeping the intake) gets rid of fat
  • More muscle mass burns more energy, not just during exercise 
  • Sport is another way to support the value of sustaining myself - a stronger body is valuable to me not only because it burns more calories

What Helped

Two things that supported this journey. 
  1. Intention - I realized being overweight wasn't acceptable to me anymore while preparing to hold a workshop about Christopher Avery's Responsibility Process. One of the things he teaches is getting clarity on what I want. This was a strong motivator for me.
  2. Visibility - I happened to get my first smartphone at the same time, on which I zealously logged everything I ate for a whole year. This made me very aware of the impact of each type and amount of food on my calorie-budget
I managed to lose 18 kg (around 40 pounds) within a year. 
I feel much better, can run faster and longer, and I'm proud of my achievement.

I can't say I decided to lose weight by applying lean principles, but I'm quite sure those principles were there to support me. Elements such as sustainable pace, explicit policies, visualization, continuous improvement, and discipline are common to both.