System mapping for teams

Hi agile community! I’m in holidays, kids are playing cards, the sun is shining, I finished some gardening and made a huge mug of tea… feel like it’s the perfect timing to write a little article and share with agile community.

This one was requested by French and Polish people, so it will be in English 😉

I wanted to talk a little bit about system mapping (more specifically “causal loop diagramming” tool) and how I use it for teams in workshops.

Where does it come from? What’s the point?

I discovered this tool during Agile France 2017, including the excellent conference Arnaud Gervais. I have I encourage you to see his full slideware on slideshare: https://fr.slideshare.net/EspritAgile/prigrination-dun-coach-agile-explorateur-en-systmique-a-gervais

And here is the link to his blog post: https://blog.goood.pro/2016/10/18/peregrinations-en-systemics/

After this conference and the practice workshop that followed, I was really convinced of the relevance and power of this tool.

I use it in the early phases of agile coaching, when we need to better understand the current situation to identify levers of continuous improvement or transformation (which can then be used as improvement axis for the agile coaching mission if this one is on a “long-term” contract).

I animated it in workshop mode with these different phases:

System mapping workshop

Draw the map

  • Introduction to the “variable” concept
    • A variable is something that can increase or decrease
    • A variable could be measured
    • Examples : % tests coverage, team mood (it can be subjective ! even if we don’t really do it, we could imagine a survey-based system to measure the team mood, it can increase or decrease, so it’s ok to be a “variable”)
  • Identify the “Big Problem
    • “What is the issue you want to work on today?”
    • Make it a “variable”
    • Write it in a post it and stick it in the middle of a (really) big paperboard
  • Optional : the limits of the system or a problem
    • “What is the team territory, things that you own or can directly act on?”
    • Draw a big circle that represents this “territory” (it should have the Big Problem inside, otherwise it means that the team is trying to solve some else’s problem…)
  • Identify the other variables (all that can increase or decrease)
    • “What are the other variables that you feel could be linked to the Big Problem? It doesn’t have to be a direct link at all, a simple feeling that it could be related is enough.
    • Example: stability of priorities, velocity of the team, coverage of functional tests, motivation of the team, number of code reviews…
    • Optional : if think there is not enough variables on the paperboard, you can revive the creativity by broaden the question to second level
      • “Considering not only the Big Problem but any of the variables identifies so far, what are the variables that you feel could be related to any one of them?”
  • Identify the causal links + or –
    • “Draw oriented arrows to link variables that have a direct link.”
    • You can draw “+” arrows : the more A, the more B
    • Or “-“ arrows : the more A, the less B
    • Advice for an easier map interpretation: if you have the choice, try to draw only “+” arrows. Sometimes it’s easier to rephrase a variable in order to have only “+” arrows.
    • Other animation advices to relaunch creativity
      • When there is a variable with no links: “What influences A?” “What does A influences?”
      • When there is a variable with only outgoing links: “What influences A?”
      • When there is a variable with only ingoing links: “What does A influences?”
  • Delay effects
    • Some causal links have (nearly) immediate effects, others have significant delay. For example, “% team trained in test automation tools” has an effect on “team test automation knowledge”, but we know that it will take time and practice to be really efficient…
    • For links with delay effects, add two small strokes on the arrow

Debriefing / interpretation of the map

  • Identify loops (reinforcing or balancing)
    • Step back from the map
    • “Is there any loop you can see?”
    • Qualify the loops (can be highlighted in different colors)
      • If you have a loop with only “+” links or a peer number of “-“ links, it’s a reinforcing loop. Reinforcing loops can be positive cycles or vicious cycles
      • If you have a loop with an odd number of “-“ links, it’s a balancing loop. Balancing loops maintain system stability… but can also be forces of resistance to change!
  • Be careful of delay effects
    • Are they hiding the solution by providing « anti-symptomatic cures » (short terms « solutions » that enhance the problem)?
  • Identify the levers (internal or external to the system)
    • Focus on reinforcing loops
      • If you have virtuous circles (positive reinforcing loops), what are the variable involve that we have to care about so that this virtuous circle remains active?
      • If you have vicious circles (negative reinforcing loops), is there any variable directly inside the loop or indirectly connected that you could act on to try to evolve to transform it to a virtuous circle?
    • Focus on balancing loops
      • “Does this loop enhance desired stability? Or does it represent a resistance to a desired change?”
    • Focus on bottlenecks
      • Some variables are in the center of a lot of links. They may have a lot of influence on the global system.
      • “How could you act on them to have a positive effect on the global system?”
    • “Considering all this discussion, highlight the variables you want and will act on in order to improve the Big Problem and the global system. These are your levers. »

Arrows, arrows everywhere…

During the workshop, we make a first identification of loops and levers, but it is often quite complicated because the map can look like a big can of worms!

So I developed a technique to do a little more post-workshop analysis.

I use this tool: http://kumu.io/ to model the map. First, the map display is often a bit easier to read than on paperboard (has it can minimise arrows crossing).

Then Kumu has the advantage of offering automatic analysis tools for social networks. Concretely, on a given network (here our map), it will identify

  • Critical points: nodes that are bottlenecks, those that are not nearly everything
    • measure « betweenness » in the tool
  • the main internal levers: the nodes that have the most influence on the overall system
    • measure « closeness » in the tool

So I run this analysis and focus on the system variables that have the highest metrics. Kumu does not automatically detect loops (one day maybe …) but considering only the most influential variables we can focus on the loops involving them as they may be the most influential on the whole system.

2018-06-08+17_35_36-CA+•+20171208_GR+_+Basique+•+Kumu_censored

Then as a feedback to the team, I can present the results of the further analysis:

  • critical points considering network metrics
  • main levers considering network metrics
  • most influential loops, which tell a story:

Image7

  • levers that would act positively on the variables of these loops (and thus which represent as many ideas of improvement action for the team)

Image8

Then we can work on actions prioritization with the team according to the target state they are looking for.

It’s a lot of work … is it worth it?

You can use only a small part of this (some causal diagram mapping of a workshop for example). Doing the full exercice is time-consuming… but I think it’s really worth it.

The discussion / sharing part of the vision of the current situation is very powerful.

I always put a lot of caution on the analysis part because it must be understood that if we change even a little the system, the results may be different. But from my experience the identified loops always speak a lot to the teams and allows a systemic lighting on their problems.

It is also a communication tool to activate levers outside the system to explain to a manager for example why the team makes this request and the effect we expects.

On the communication part, there is also this little tool that is nice: https://ncase.me/loopy/

Associated with this other tool: https://www.keepitsimple.fr/licecap-gif-1523 it can allow to create nice gifs (here the influence of the work on the product vision):

gif.gif

But this last tool will be usable only with very simple systems, one can not model the effects delays and one can not save the realization (other than by recording the gif).

To finish some tips:

  • It works well with a problematic (the Big Problem) : be careful to align the participants with the problem
  • Differentiate the two phases: variables and link
  • Challenging the identification of variables: we must be able to appreciate the increase or decrease
  • Encourage positive formulations: poor code quality -> Code quality
  • Do not forget the effects of delays when making the links
  • Allow time for analysis!
  • Prioritize the levers / axes of improvement … because there will be many, I guarantee it !

That’s all folks!

If you wan’t to read a little bit more about system thinking and causal loops diagram, you will find a lot of ressources online 🙂

For example :

 

J’arrête de dire « je n’ai pas le temps »

photo-1506126613408-eca07ce68773La liste des articles que j’aurais envie d’écrire s’allonge et les journées ne sont pas assez longues…

STOP !!!

Je me suis promis de ne plus dire « je n’ai pas le temps ».

Nous avons tous le même temps, c’est en fait une des rares ressource assez équitablement partagée (puisque l’homme ne sait pas encore le manipuler…).

Mon emploi du temps est très largement le résultat de mes choix, et mes priorités. J’ai décidé de les assumer, les regarder en face… et de reprendre la main dessus.

Les contraintes professionnelles ? Oui, c’est une part importante de mon temps. Mais c’est un choix que j’ai fait (un choix que j’ai eu la chance de pouvoir faire).

Les contraintes familiales ? Là aussi, le résultats de mes choix, même si certains ont eu lieu dans le passé, comme le choix d’avoir des enfants.

Et une fois mis de côté le temps réellement nécessaire à ces deux « rôles » (maman et salariée)… il reste du temps ! Le temps qu’on utilise sur les réseaux sociaux, à faire une balade, à assumer des responsabilités associatives, à faire du sport ou tout autre loisir, à préparer un bon petit plat quand on pourrait faire quelque-chose de basique, à regarder une série…

J’ai de la chance. Pour moi ce temps existe. Et si je décide de rester au boulot jusqu’à tard dans la journée (ou de ramener du travail à la maison), rognant ainsi sur mon « temps libre » décrit ci-dessus… C’est aussi un choix.

Ça peut vous paraître très basique, mais pour moi quand je me suis vraiment rendue compte de ça, c’était un peu comme ouvrir les yeux ! J’avais toujours tendance à me sentir « obligée de ». Il s’agit de savoir dire « non », bien sûr, mais soyons honnête : la personne à qui il faut vraiment que j’arrive à dire « non »… c’est moi-même !

Alors j’ai voulu prendre du recul, être plus consciente de mes choix, mes priorités. Plus facile à dire qu’à faire ! Quelles sont mes priorités dans la vie ? Qu’est-ce qui est vraiment important pour moi ? Forcément, ça allait être plus compliqué qu’une liste de quelques bullet points ordonnancées…

Alors plutôt que de chercher la réponse à la grande question sur la vie, l’univers et le reste (en plus on sait très bien que c’est 42 ^^), j’ai finalement opté pour des petites questions que j’essaye de me poser régulièrement pour prioriser en conscience :

  • Combien de temps va me prendre cette activité ?
  • Parmi toutes les activités qui je pourrais faire pour occuper ce temps, est-ce celle dont j’ai le plus envie ?
  • Est-ce que ça doit être fait maintenant ou est-ce que ça peut attendre sans être préjudiciable à quiconque ?
  • Si je devais mourir demain (oui, je sais, ce n’est pas joyeux mais bon…), est-ce que j’aurais des regrets de ne pas l’avoir fait ?

Par exemple : j’aimerais écrire plus d’articles sur ce blog, et les idées ne manquent pas.
Mais en me posant ces questions, j’ai finalement passé plus de temps avec mes enfants.
J’ai aussi préféré travailler graphiquement ces derniers temps (réalisation de supports visuels) plutôt qu’en rédaction, question d’envie.
Et puis aujourd’hui je me suis dit que c’était cette activité que j’avais vraiment envie de faire, et je le fais sereinement car je sais que ce n’est pas au détriment de priorités qui me tiennent plus à cœur.

J’ai vraiment le sentiment de petit à petit reprendre la main sur l’utilisation de mon temps, d’avoir un agenda à mon service, et pas le contraire.

… alors je vais continuer 🙂

Product Team Canvas

Here is a proposition / draft of a canvas for a product team.

The idea is to use it as a conductive thread for initialisation workshops focused on the team (environment, purpose and self-organization).
It doesn’t address detailed product vision, this could be completed by a Lean Canvas or Business Model Canvas.
Some boxes are a little bit redundant between this Product Team Canvas proposition and a BMC for example, but I chose to keep it that way so that each Canvas can be consistant by itself. But it could be adapted of course.

This Canvas could be filled as a draft when the team is formed, and completed/update throughout the duration of the activity.

It is a little loaded, in terms of size I imagine it on a paperboard big enough to put the width of an A4 format in each column.

What do you think about it ?

Product Team Canvas.png

Agile Tour Rennes 2018

Je n’ai malheureusement pu participer que à la première journée… Mais c’était déjà très riche !

Et voici ce que j’en ai retenu, en images 🙂

>

Mais pour moi le plus marquant, ce qui m’apporté le plus de valeur, l’effet « whaou!!! » de cette édition… C’était l’atelier des « Pas Japonais » proposé par Benjamin Cabanne (ancien collègue ! C’est ça aussi les Agile Tour, le plaisir des retrouvailles !)

Je ne peux pas en dire plus. Cet atelier, il faut le vivre ! Et j’espère vraiment avoir l’occasion de l’animer bientôt 😉