lundi 22 septembre 2014

A remote retrospective Story

a bit of context...

I'm working as a remote ScrumMaster since approximatively 2 years with the same team. This team is a full remote team even if most of the times we are doing our sprint planning together IRL. I went with my product owner to setup a new team in Vietnam six months ago. This new team is a bit different because, compared to "mine", all team members of the new team are working together on the same office.

It was quiet challenging because it was planned to make both teams working on the same project and same code base.

Now, 6 months and a product release together later, we decided to make a retrospective with the two teams. The goal was to find out what was working and what was not regarding the collaboration with the two teams.

So I was responsible to setup this retrospective.

the setup

I wanted to port my usual local retrospective format based on sticky note with a whiteboard using good/bad/questions/suggestions areas.

My needs : 
- a good communication tool.
- a good virtual white board.

We were used to use Google Hangout so we sticked with it as our communication channel. The only problem is the 10 slots limitation that i will have to deal with.

After some googling, i found that google drawing could be my virtual white board. I got some inspiration from here :

So we did end up with this kind of setup and a drawing is better than a long speech :

Due to the quality of the internet connection of the green team and to the google hangout limitation, we decided to use the green team scrumMaster as a proxy of the other teams member and to use only one google hangout slot for the green team.

The plan

Here is what I did :
- the week before : 
  • fix the date, not so easy to find a slot which everybody.

- few days before : 
  • had setup of the google drawing white board, made some try.
  • talked to the product owner to explain how it will work.
  • talked to the other scrumMaster to explain how it will work.

- the day before :
  • sent an email to all participants to remind the goal and scope of the retrospective and to ask them to start to think about that.
  • talked again with the other ScrumMaster. As he acted as team's proxy, we discussed together to try to prepare that as better as we can.
- the D day :
  • verified that everybody was able to join the shared google drawing.
  • just dot it!

Here is the result :

It was fun to hear when everybody was filling the white board "hey, who has stoled my sticky?" ;-)

the retro of the retro

Bad :

  • Hangout Limitation (max 10 slots)
  • The scrumMaster of the green team was the proxy of the whole teams. It was ok because he was already used to do that for others meeting we already had. Anyway It would have been better to have the whole green team at the same "level"

good :

  • It worked well! Using Google drawing as a virtual shared white board was really successful : simple and efficient.
  • It's now decided to do that one time per release.

Notes : 

  • the virtual retrospective was no longer than the local retrospective i was used to do locally.
  • There was more preparation from me compared to a local retrospective.
  • I had to allocate more time than initially planned to allow everybody to fill the google drawing.

mercredi 2 avril 2014

Home working in IT - 2 years later

It has been a long time since i have written my last post. I'm now back to write a new one because i still have a lot of questions around my way of life and the home working. 

It looks like home working raise a lot of questions and really start to be trendy. perhaps one the new ways of working...

There is already an article where i gave my first impression about the home working after few months here :

I'll try to take a step back and to give some insight about me and the home working with nearly two years experience.

So i'm sure there are already a lot of questions thanks to the previous post : 
  • Do i still work in underwear or am i now at the next level and now working nude and do i stop to shave me to look like a bear?
  • What am I doing now?
  • Do I travel a lot?
  • Am I out of my local world and am i only living connected?
  • Do I improve my english within the past two years?
  • Am I still happy to work like that?

Code in underwear?

To answer it quickly : no and no, i always work dressed. Even if ok, it's possible that i checked mails or did few things before taking a shower and being dressed. Why is it stable? Simply because I have to drive kids at school before starting to work. As it's not sure to go to school in underwear is acceptable, i don't want to take any risk. More seriously, in my head, it's a good way to split things. before being dressed ans washed, I don't have start my "working day" but after it's the case.

An interesting story about writing my previous post "Yes, I code in underwear @home" is that i was not hoping to find myself associated at the first place on google search results when you're searching for "code underwear home" : . I don't know if it's a good or bad thing. Let's say it's "interesting" ;-).

About the shaving, even if i participated to the Movember last year which was already a challenge to not divorce, I'm still trying to not look like a bear. 

What am i doing now?

I'm still working for the same customer within the same team. Topics and team members changed a bit. I would say everything is still the same and everything has changed. Let me try to explain that. The big context is still the same : I'm working from home for the same customer with great guys and still doing crazy stuff. Appart from that, everything changed, not exactly the same guys and doing projects after projects which are all totally different.

I've got now two hats. On the one hand, I'm the "official" remote ScrumMaster of the team. I would never have think what a remote ScrumMaster could have been and what it could have done before working in this context. This topic can be a full post. It's not the goal of this one. On the other hand i'm a still team member of the team.

Do I travel a lot?

As i'm working for a remote company, a good question could be "does it imply a lot of travel?"

I'm working within a distributed team but with one particularity (which make the whole thing possible in our context in my opinion) : we are doing local sprint planning each 3 weeks which mean meeting each other IRL. Most of the time, it's about one day in Lille or in London which does not make a lot of difference thanks to the Channel. So these days,  i'm out for the whole day. I'm leaving home a bit early and return in the evening not so late. It has not a big impact with my family. 

In addition to that, four times per year we are doing the sprint planning where my customer is, in Switzerland. In this case, it's about a short and "extreme" week in there where we are doing sprint planning, conference, hackaton, runs in the mountain, meetings where it's easier to be in the same room, drinking beer (where it's easier to be in the same room too even if we tried some "friday beer hangout").

In my opinion, it's really a good balance between the possibility to be very available and flexible when i'm working from home for my family and the fact that i let my wife managing the family when i'm not there (It's really my vision, you can disagree or have others).

Am I still connected to my local (IT) world?

I think it easy to be disconnected from your "local (IT) world" when working at home without any interest in it because of you're not part of it... So you can start to loose friends and colleagues near you which is not good!

So, to fight against that, i'm still part of the Ch'ti JUG, the local Java User group where we organize meetup about Java and its very large ecosystem which is still cool. We recently organized a Devoxx4Kids session which is about sharing our passion for programming with kids. It was awesome to see the happiness on the kid's faces when programming a Nao or a mindstorm.

In addition to that, I'm giving scrum course at the university by helping student in their project as a Scrum coach (I hate this title!).

It's my way to keep in touch with my local world.

Do I improve my english within the past two years?

I'm really the worst person to judge it. I would say yes even if it's sure i don't have a "good english". I've got a pragmatic english to make things working every day. That's it. Appart from that, i'm still interesting in learning new words thanks to my native speaker colleague, especially insults or expression of everyday life!

Am I still happy to work like that?

To make it short : What! Already two years! 

Thanks to this way of working, i'm now a running and trail running addict. It's so easy to be able to run at lunch from my home/office. 

It's still so cool to be so efficient at work and to be so available for your kids.

Even if there is still a difference between the personal life and the working life, I've got now more international friends rather than international colleagues.

On the family side, it's still interesting to see that rules like when the door is closed, i'm working and it's possible that i will not respond if you knock on the door are still in place and still working fine. It's interesting to see that the kids have fully understand this way of working. They are able to talk about my office and my bedroom like two different things whereas it's the same room in my house ;-)

I think nobody can say if he will be able to work from home until he's doing it. It works for me and it's cool.

mardi 25 juin 2013

cassandra-unit is out : CQL3 script support and spring integration

I'm pleased to announce the release of cassandra-unit

Just as a reminder, cassandra-unit is a library to help you to start and load different type of dataset into an embedded Cassandra instance. Basically, the goal is to simplify the implementation of your unit tests in java.

There are 2 main new features in this release :
  • the support of CQL3 script as a standard cassandra-unit dataset.
  • the spring extension of cassandra-unit.

CQL3 support : embracing the new datamodel face of Cassandra

As you may know (or not ;-)) , the 1.2 version of Cassandra was released with major changes and a new remote protocol : binary CQL protocol. The main idea is with with new protocol is to get rid of some limitation with the Thrift protocol.

So with this new protocol come : 
So, as a first step this new release of cassandra-unit provide the ability to use CQL3 script as dataset to load data into your cassandra instance (embedded or not).

It implied internally some big modifications using the java-driver instead of Hector for the CQL3 part.

here is an example of use : 
simple.cql : 

CQLScriptLoadTest.cql : 

thanks marcinszymaniuk for your contribution!

Spring extension 

The other interesting feature provided in this release is the spring integration. I mean the ability to to use cassandra-unit with the Spring TestContest framework based on annotation.

As documented here, there was 3 ways to integrate cassandra-unit in your tests :
  • the native approach
  • using the AbstractCassandraUnitTestCase or AbstractCassandraUnitCQLTestCase
  • using JUnit4 @Rule
The cassandra-unit-spring integration provide a new way to integrate cassandra-unit in your unit tests.

The documentation about the spring integration is here

Here is a small example : 

simple.cql : : 

Thanks Olivier for your contribution!

cassandra-unit is available through maven public repo and source code is available on github and the project is licensed under LGPL V3.0

mardi 14 mai 2013

The Next Step

Avez-vous déjà assisté à une réunion où plein de belles décisions sont prises. La réunion a débordée un peu... les participants sont pressés et fatigués... La réunion se termine... Chacun repart de son côté et retourne a ses occupations puis.... puis... puis... plouf:

Rien ne se passe. 

J'ai déjà assisté à quelques de ces reunions... Si toi aussi tu te sens concerné tu peux lire la suite de l'article sinon... heu... tu peux aussi lire le suite de l'article :-)

Une seule solution pour te sauver :

L'idée derrière le next step est de ne pas attendre après avoir décidé quelque chose pour commencer sa mise oeuvre. 

Il faut battre le fer tant qu'il est encore chaud!
Il faut amorcer la pompe!
Il faut mettre la machine en route!
Il faut passer la première!

C'est marrant de voir que plein d'expressions sont "Next Step"!

A minima, il s'agit juste de définir la prochaine étape après une décision : quoi/qui/quand. Il n'est pas nécéssaire que cette prochaine étape soit conséquente. Plus elle est petite moins elle prendra de temps. Une fois de plus l'idée est d'amorcer le travail.

La difficulté du next step est qu'à la fin d'une réunion intense, les participants oublie/n'ont pas forcément envie de penser au next step.

Ok et après je fais quoi?

Si tu as compris, c'est très simple, il faut définir le next step du next step!

Tips :

  • Toujours prévoir un peu de temps à la fin d'une réunion pour définir le next step.
  • Parfois il s'agit s'implement de poser la question (parfois suivi d'un blanc) : "Ok, super, on commence par quoi?".
  • Si le next step peut se faire dans la foulée ou simplement être commencé, c'est encore mieux.
  • Parfois, résumer et reformuler le contenu de ce qui vient d'être d'être décidé et des actions liées suffit au next step.

Ce qui est sympa avec le next step, c'est qu'il est simple à mettre en oeuvre. En revanche, il ne faut pas l'oublier!

Après avoir lu cet article, tu es officiellement "Next Step Certified". Ce qui te donne le droit d'utiliser et de former au Next Step! Quel chanceux tu fais!

lundi 22 octobre 2012

Yes, I code in underwear @home

As requested by my foreign colleagues/friends, Here is a translation of this article in English with a bonus at the end.

I'm currently on a long mission to a foreign customer that I do at home. This is usually called the "home working".

To reassure the sensitive souls, I do not really code in underwear, it's a picture. I could code in underwear :-)

I had not necessarily planned to write an article about this way of working but whenever I talk about the subject with friends or acquaintances, they feel curious and full of questions. I think that if it so interested, it means that i have to share my experience.

Here are the questions that come up most often:
  • It's not hard work alone all the time at home?
  • Me, I'll probably distracted. You can stay focused and be effective?
  • How do you do with the family?
I will try to answer these questions by offering my thin feedback on the subject.

I said I'm working at home today because it is that the mission wants. It was not a desire on my part, it is an just an opportunity.

The beginning

It all began with an email, which read quickly can give something like :
mission, overseas customer, all in English, home working, scrum, team with experimented people, moving every 3 weeks.

I quickly wanted to know more because I was just available and then after some discussion : GO. There is a part of unknown to be accepted, it is like that, that's life. You have to trust.

It's Tuesday I was told that begins on Thursday through skype Thursday morning.

General warning: how I'm going to organize the house: -)

I do not need a lot of thing to work, a piece of chair, a piece table, a laptop, internet and a bit of calm. It is just on this point that I must organize myself a little because at home I'm not alone, there are wife and children. I did not want to disturb or to feel that i disturb and vice versa.

I need a "quiet corner". It is not possible for me to have a room dedicated to serve me office. So I created a corner in my bedroom in front of the window. Hop, the bedroom will be the day my office.

Wednesday will be devoted to me set up an office in my bedroom. And then I get an email with all the access client (vpn, mail, forge, ....). Default: it works, I have access to everything, I have the right to do everything ...No, no, this is not a dream, it is sometimes ;-).

Thursday morning, it's started : "Hello, good morning guys!"

Daily : "We are quite flexible"

I find that I'm part of a fairly large team including members of different nationalities which are working at home like me. Even the ScrumMaster is a freelance working like all others!

Shortly after starting, I talk with another team member. As I discovered how things work, I foolishly talked about the scheduling, "online", time everything. I find myself stupid asking questions starting with "what if" and all the answers were: "we are quite flexible" ... The idea is really to "do the job" and having to take time off to go or if it does not really matter. Everything is based on trust.

That it brings me daily: real flexibility. It is nice to occasionally pick up my first daughter at school, be able to go to an appointment in people / shops / institutions whose only opening hours are 9:00-12:00/14:00-18:00. (finally, it is the things that I enjoy rarely but it's nice to know that you can do).

It is also nice to be able to do some sport start at home and take it easy a real shower in my bathroom. I do not need to take portuguese shower (I never practiced but it exists ;-))

Even more rarely, there is the nice side to occasionally to have Rolland Garros or the London Olympics in a corner of the room.

I work alone at home like a bear?

So yes in the morning and in the afternoon I am physically alone in my office. 

In contrast: 
  • I am virtually overconnected with the team I work with. Skype is the tool I use to communicate in real time either through chat, audio or video.
  • 10:00AM is the hour of our daily scrum meeting. Screen sharing + conf call where I talk to the team.
  • There is a global chat in which each team puts his mood, says what he does in or out of work, this brief provides a sense of community and closeness.
  • We meet every every 3 weeks to complete the sprint (review ans restrospectrive) and restart a sprint (sprint planning, planning poker, ...). These are one or two working days pretty intense because it concentrates all the Scrum rituals but it also gives the opportunity to see, discuss, exchange, joking and to take a real coffee break with real colleagues; -).
This is, to justify the side "I'm not alone when I work at home" but it's true that I do not see real people "IRL" ;-). So why to avoid finishing as a bear coding in my bedroom :
  • I often see friends and colleagues to eat lunch with them.
  • I am part of Ch'ti JUG , which allows me to cross the world and interact with other fans in the region.
  • I go to conferences like Devoxx or Devoxx France to share with passion but also a little further.
  • I try to exile from home on Wednesday for not be shy interfere with wife and children are at home this day. I take this day to work with people who are willing to welcome me (Thanks also to Thibaud and Antoine of Onyme for welcoming me into their office, it was really nice, guys!) or in a friend who joined me in the same home working adventure.
I had to search long enough to find negative side but it was for my feedback to be more objective :
  • The coffee break is not really a coffee break. It is sometimes lacking and sometimes I look at the time, it's noon and I have not felt the need to take a coffee break. It depends.
  • My coffee machine has clearly not taken the load. I had to change :-)
  • I sometimes feel out of step with my friends and former colleagues who mostly work computer services company or with local software editor. Being freelance also participates this offset :-). It's not really a negative but I feel sometimes that I pass for an alien. The problems that we encounter everyday are no longer the same.

Am i more or less productive?

I'm actually quite surprised when I talk about this type of work sometimes when the reaction is "uh, I'd be too tempted to be distracted and do something else." I do not know how to answer that question ... I say that in general, it's the opposite. It's probably because my job is a passion ... Rather it is my wife who set limits to stop me :-) 

I'm clearly more productive at home. I have my tools and calm. The important thing when working at home is that you can choose yourself the conditions that allow it to be productive. We add to that the fact of not having travel time to get to his workplace. We will say minium 1 hour per day back/forth. It is a real gain. 

"Anyway, I'm more productive."

Separating private life / professional life

Not knowing this way of working, I preferred default impose a few rules in the house to separate the things and put barriers: 
  • When I work at home, it's as if I was not at home. I'm not Tony Micelli able to take care of the house.
  • The door to the bedroom / office represents the separation private / professional. When it is closed, do not go without knocking at the door and wait until I say it's OK. It's not that I want to play Boss inaccessible but this is the only way to predict if I'm online, perhaps with the video and I can not answer.

So I applied these default rules within the family. It is rather funny to see how the children have experienced change and have integrated. "Dad, you're working in your office in your bedroom today?". It's also pretty funny to 04:30-05:00PM hear knock-knock and have his children come say hello after school. I began to relax the rules, but it comes from me. Finally let's be clear, I'll never compete with Tony Micelli! 

A short conclusion would be fine here

When people ask me if it's okay, I replied that:

That's terrific!

I think that says it all. I am clearly aware that this way of working may not suit everyone and every business. In my case, it's cool.

One more thing... 

Writing this article triggered a massive release of office pictures of team member. Here is a nice sample of what can be done to work at home (thanks to them to allow me to share that!). I think but i'm not sure that there are one or two fake. It's up to you to find them ;-) :