Alexandre Cuva

Wednesday, January 22, 2014

Bye bye Snake year, Welcome Horse Year

8:00 am January 2014 at the 19th floor of a building, drinking an espresso, with lounge music hiding the sound of the motorcycle in Saigon street. Since I met more than a year ago Saigon, I fall in love of Vietnam.

It is not so much time I left Vietnam, just 1 a month, but I wanted to share my 2013 retrospective. It is already more than 6 months I started as CIO of Smartlink SA. A swiss Company base in Geneva, working around the new Mobile Payment technologies.
I remembered 6 months ago when I was hired, I had plenty of dreams about Agile, Lean, working around an innovative management. Did all this happen?  6 months, it's a short time to do a lot of things.

I wanted to apply some Large Scale Agile practice from Dean Leffingwell, that I meet on a train between Antwerp and Brussels after DARE 2013. The idea behind Dean framework is that we propose a framework to use in a huge company. I don't adhere to using such Framework, it makes me feel we try to apply a complicate solution in a complex world. But there are some really interesting ideas that I adhere, a company should not apply Agile, but Lean and Agile together makes more sense. Who knows me, I  leave with the Lean values, my morning and days are around lean values. How could I do more with less waste. I wanted to use Dean Framework to transform that layer of waste business people, trying to sale their grandma and not thinking about rational values. At time I meet an awesome person in Paris, even my Business Director feels it was an awesome person. I hope he will join our team one day. I feel we could do some great stuff together. That person would have been the perfect actor to be my first Scrum Product Manager, he would apply Agile in the best manner, evangelize the business and create awesome products with the PO in charge to work with him. But nothing the business puts in place another Business person, who maybe wanted to create great product with non trusted behavior. I still work with him, he's not a bad person, he even liked the way we work back in Vietnam, having a review each 2 weeks. It fails because we have to work on other more important project and then he was left on the side.

In August we had finished our first awesome product. I remember someone telling me measure the time to market of all the business request and measure the waist, to learn how to improve. I still measure the time. It is now 5 months, the product is out, but no customer really using it. I think, the problem behind this, we don't have really a Product Manager who feels the product his is life and he need to find customer ready to use it. I am such there is a potential market outside, really interested, but they don't know the product exists.

In August, we start to work on a major Mobile Project, we are nearing the end now, after months of fighting learning to leave between us the customer working in a Lean / Agile way and Waterfall provider. We learn a lot this last 5 month, we pass from Scrum to Nano Scrum and  ScrumBan. We had a first project part, where we tried to do Scrum with this Waterfall provider, they learn from us a lot, they were even happy to work with an Agile Company. But when all was fine, we saw again and again the Waterfall ghost coming from nowhere and making our life a nightmare. But has I said to my teammates, we are Agile and we have the capacity to learn to adapt ourself fast so we can work with them. We learn from our failure fast and were able to move from the chaos to the complexity at each failure.

Today, we are nearing the end of the project, in a few days, the Tet Festival is here and my teammate will join their family, I will be with my wife to enjoy the Chinese New Year. I eager the year of the Horse will bring more Lean/Agile adventure.

There is so much thing to share with all of you. I would like to thank some people that I met during this last year:

  • François Beauregard for his complexity mentoring and the time he took to learn me the way to pronounce in Quebekois the words. 
  • Gael Luisier for pushing me to share my experience with all of you.
  • Dean Leffingwell, for sharing his Agile experience
  • James Grenning's, for sharing his TDD experience in Lausanne during one of our Scrum Beer
And all the other's like Jurgen Appelo, Vasco Duarte, Chris Kruppa, Peter Stevens, the Beagle Team...

Thank's all, I had an awesome Snake Year. Be the Horse year be a more awesome year,

Monday, October 7, 2013

My new agile adventure in Vietnam Part 3

Part 2

Monday 17th June 2013
That's it, this afternoon we will fly to Vietnam, to meet my teams. I'm coming with our Business Development Director (BD). A few last thing to do in the office and let's go to the Airport. Around 3:15 pm, our flight take-off to Dubai.
Midnight we land in Dubai, 1:00 am we are at the Marina to drink and eat something.
First time in Dubai, thanks to our BD, I have a fast Dubai visit in Car and a Diner at the Marina.

Then return to the Airport, wait at the Lounge and finally take-off to Saigon. We finally arrived exhausted in Saigon, but happy.

It's not my first time in Ho Chi Minh City (Saigon), but first learn to BD how to cross the street in Vietnam. It is not an usual way for most of the foreigners. The first time you are quite frightened, all this car and motorcycle everywhere and no one stop to let you pass. In Europe, you wait the green light and then you cross the street. Here you wait the green light and no one will stop to let you pass. :(
In Asia, you cross the street, not running, walk, never stop, so the driver knows how to avoid you. If you stop, go backward, it's the beginning of an accident. In Europe, you do the same, you are dead. Driver are not ready to avoid you, they will try to stop in front of you :)

Ho Chi Minh, here we are...
First time for BD in Vietnam, so much thing to see, I become a tourist guide. Thanks to friend Than who presented me HCMC last year. We take a cab, visit the oldest HCMC Pagoda (Buddhist Temple), the Notre Damme Church, the Old Post Office, the luxury shop and Ho Chi Minh place.


A small break at the Nguyen Coffee place, for an Ice Saigon coffee and then we run at the Saigon Hub for my Scrum Coffee session with Agile Vietnam


Tomorrow we will fight to Da Nang.

Tuesday, September 3, 2013

My new agile adventure in Vietnam Part 2

Part 1 <-> Part 3

I had the main ideas on how to put in place the IT's in this new company. Who will not jump on the occasion to put in place all he always wanted to see.

Some of you may ask why I decided to have my teams in Vietnam, why not somewhere more near Europe, like Eastern Europe or some Latin countries. The first time I came in Vietnam, I was invited by the Agile Vietnam Community to present subjects for the HCMC Agile Tour 2012. I had so much great moment. I talk with foreigners and Vietnam people. I loved the Vietnam culture and the most important one I meet a company with a business model as I like. The CEO believes in Agile and he his one of the major agile promotion company. They give free training to the University in two big cities. They are mostly the main Sponsor on all the Agile / Lean event. It's easy all their customers need to work with Scrum. The customer brings the Product Owner, they bring the team and the Scrum Master.
As a Product Owner you don't have just a team of project and that's it. As a Product Owner it's your team, you participate with them at all the team building, you part of the team. You are not someone, a stranger.

Before leaving for Vietnam, I needed to put in place diverse remote tools to promote communication between the teams and me. As a Product Owner I need to be near the team, even if we have thousand kilometers between us and the time zone.  I decided to put some tools I like and I used for many years and also because their business model was interesting for small teams :
  • JIRA + Agile JIRA: To follow the Epics and Stories
  • Confluence: The wiki
  • Bitbucket: the GIT Server
  • Crucible: the review tool, a must if you want to participate with the team in the review of the code
Within JIRA I create different project :
  • Program Management: A Kanban board, I follow the Epics, from their open, confirmed, selected, in progress, In Review, Ready to Release, Close
  • Beagle Scrum Team: A Scrum Board for the Beagle team, only Epics in Progress, In Review appear here.
So here we are, ready to leave for the Vietnam...

Before leaving, I had a first Sprint in remote. I still remember that first day. I was so exited and in the same time anxious. My wife pushes me out of the bed, I could not sleep. It was my first true experience as Product Owner with a team in Vietnam.

6:00 am
That's it, GotoMeeting is on, I hear some sound in the back, I think they are like me. Who will be the PO, he is cool ? How the team will be ? 
After some time of thinking and knowing the team better, I found out that they join the best people for my team. They know I am an Agile Coach, I was an XP Programmer.

The rest of the time I presented the vision of the Product as much I can, it is true I didn't know as much I know now. I present the Epics and the User Story I think they will work on the first Sprint. 
I put also a technical task: put in place the commit stage in the continuous delivery.

To continue...


Wednesday, August 21, 2013

My new agile adventure in Vietnam

Part 2

Since already 2 months I have been working in Vietnam with a Scrum Team. It is not only a short project, it is a huge project where I will be the main actor in the implementation of Agile practices, culture Hacking, Lean, Kanban and a lot more that I will have the chance to put in place.

So one of my Agile friends told me I should post on my Blog what's happened here.

So here I am Gael I start....

Once upon the time, there was a Freelance Agile Coach, who received a request from another friend : Alex I am working to create a new great Financial Company and I would like to have you to be part of this fantastic journey. Here the product... Are you In ? Of course that Product make sense to me I believe we can create a great company together with the two others. But in one condition, I want to manage my team in my way and have the Scrum teams in Vietnam.

My first job was to think about how we will manage Scrum teams in Vietnam and having most of the end customers back in Europe. Early in June I went to DARE 2013, great event about anything and Culture Haking with a lot of great people to meet. So there I meet Dean Leffingwell, author of two great books "Agile Software Requirements" and "Scaling Software Agility". So Dean presented a subject about the Scaling Software Agility. That was the subject I needed.

Dean in is presented, show us how to use Lean and Agile together and it makes sense. There are parts that Lean is great and make more sense than Scrum. Dean explains in Big company you have 3 phases:

  • 1st Layer "Portfolio Management", it is around Lean and Kanban
  • 2nd Layer "Program Management", some Lean, some Scrum and a Road Map around the features
  • 3rd Layer "Scrum Teams"
It depends then on the size the company.

That's it, I had the main ideas, ok my company is small, but it is highly distributed to the different office around the world and having a Scrum Product Manager for each office and a Scrum Master per team. It makes sense to me. The 1st Layer is too ambitious, but the 2 others are a good start.

To continue... 


Monday, November 12, 2012

Agile Tour Vietnam - Ho Chi Minh 2012

Just return from the Agile Tour 2012 Vietnam Ho Chi Minh. It was a fantastic experience, I meet some awesome peoples from the audience and speakers.

The Start key note we had Ken Schwaber (One of the founder of Scrum, for who don't know him :)), in remote because unfortunately for us, Ken decided for 1 year to stay home and not take plane. I wish him all the best for his 1 year no travel.


Then the sessions started and I went to see a local speaker Duong Trong Tan (Academic Head, FPT University). And his presentation about Agile Education in Vietnam. It was an interesting topics, I wish we have such topics in Switzerland or Europe. I tink Jean-Pierre from the HES Sierre would be happy to listen on such topics. Tan presented what's happens in Vietnam this last month, and then presented what are the different options to improve Learning. Most of them where learning tools we already use in Agile (Coding Dojo, Agile Workshop, Serious Game...)

It was then my turn, I presented a Management 3.0 Introduction with the Vietnam culture in background (http://www.slideshare.net/GToronto/management-30-excellence-agile-hcmc). I explain in the working the actual environment, most people where not happy and we need to change, so we can improve performance and company with improvement in humans. I show them that Vietnamese peoples had a special power, they where self-organized people, when you see how people drive in the street. It is an example of Complex Adaptive System (CAD). Then I presented what should learn a Leader to be a great Manager with Agile teams, with example from Jurgen Appelo Management 3.0 training.
 
In the afternoon I facilitate a Coding Dojo C# and show to the audience, good practice about TDD, pair programming and tools like SpecFlow one of the best tools for BDD in .NET. This first session was quite hard. But with the help of my interpret (Duc Nguyen) we where able to get a few pair to work on the software. One of the greatest team was a pair of Java Developers who for the first time they tried C#.  I had different feedback from the session:

  • I don't like to write C# code with a Swiss-French keyboard
  • From this dojo, I learn one thing, I need to learn TDD now and not tomorrow.
  • ...
I propose next year I come with a French Keyboard, it will be a lot more funny than the Swiss keyboard. Who will die first, the keyboard or the pair ?

The second day I present my workshop Dice4Agile. A workshop where audience learn how to estimate sprint point, measure velocity, prepare a Release plan and then play the sprints, by preparing before each sprints their next 3 sprints content. It is a great opportunity for the teams to learn to self-organize and found solution their self.

I then went to see Kiro Harada (Lean and Toyota Production System Expert), he present a subject about eXtreme FD. It was quite interesting to see Agile with Electronic components. I feel completely useless in the training but amazing about the expertise from the audience.

And finally I had my last session, Energize People, I presented the Moving Motivator a game from the Management 3.0 training I give. The people like it a lot, it show how a Manager or any other person can learn the 10 Intrinsic desires from their employees, colleague or himself.

I used the same game with one of the volunteer who had a question about her future. In the second par I used a Team spirit game to elevate energy for all the participant. I think they never laugh so much in their working life.

We had a Open Session for the closing session, with Daniel Teng (First CSC of China)

I would like to thanks all the team from Agile Vietnam, the Vietnamese and other countries audience, all the sponsor for awesome Agile Tour 2012 we had in Ho Chi Minh (Saigon).

See you all at the Agile Tour 2013 Vietnam the 8th-9th nov 2013 

Monday, July 23, 2012

Causal Loop Diagram

What is the Causal Loop Diagram (CLD) ? I m actually working in my Management 3.0 training that I will give this autumn in Europe and maybe in North Africa. So I decided that while I prepare my training, I will give you some premise on my training contents.

Ohh by the way, I give my training in French, English and Italian :)

The wiki definition is :
"A causal loop diagram (CLD) is a causal diagram that aids in visualizing how interrelated variables affect one another. The diagram consists of a set of nodes representing the variables connected together. The relationships between these variables, represented by arrows, can be labelled as positive or negative."
It is a great tool, to understand how a system work. A simple positive example could be a banking account and the interest rate :


Now if we use the same model to understand how a project is working, we come out with a complex system where people and system work together to adapt to a changing environment, it is what we call a network of people who interact together for their own purpose and produce values that stakeholders consumes values


Jurgen Appelo in his blog present the Law of Requisite Variety calls also the Ashby’s Law :
“If a system is to be stable the number of states of its control mechanism must be greater than or equal to the number of states in the system being controlled.”
In other words, in order to survive a system must have an internal model that reflects the variety it encounters in the world outside.

I like this model, I think most manager should think more about that, before thinking project like a linear recipe where all the project should work. Software project are very complex and should be resolve with complex thinking.

It let me thinking about an example I had a few moths ago on a big European company. I was hired to train them to understand Agile, Scrum and how to work as a self-organized team.
I ask the manager, if there was some training for the management too ? They told me there was something call "Black Belt" and all the manager needed to keep project statics on how long it took to make each component. 
I laugh on my head, great they try to explain the teams how to work on a network of people and in the other hand they try to resolve complexity by linear formula. 
After a few month, they told me they where maybe interesting about my Management 3.0 training. Great they understand really fast. They are smart in this part of the world.

If you like to have more info, please go to Jurgen Appelo blog "It Takes Complexity to Handle Complexity", there is plenty of other intersting link about the subject.

Le cocombre Agile: Stoos Satellite Geneva 11/07 Debrief

Our first Stoos Satellite Geneva :

Le cocombre Agile: Stoos Satellite Geneva 11/07 Debrief: Enfin, notre première rencontre Stoos a eu lieu à Genève !  En voici un rapide debrief. Je ne souhaite pas relater ici dans les détails...

It is open to all, not only IT Manager, we are going to open a Meetup group soon. I let you know here when it is ready.

Tuesday, March 6, 2012

Agile-Geneva, NidAgile camp

Agile Genève | Un site du réseau Agile Swiss:

Hi All,
All the team from Agile-Geneva, is please to announce you today, we have found a date for our next XPDay Swiss meeting call @NidAgile. So please save 15th and 16th June for our next XPDay Swiss meeting. More will come soon.

Monday, February 20, 2012

Vaadin and Groovy Test 5

Moving from the test, the implementation and the re-factoring we get the following results
package ch.ge.vaadin

import org.junit.Test
import org.junit.Before
import org.junit.After
import com.vaadin.ui.Button
import static org.mockito.Mockito.*

class VaadinCalculatorTest {

    private VaadinCalculator calculator
    
    @Before void before() {
        calculator = new VaadinCalculator()
        calculator.init()
    }
    
    @After void after() {
        calculator.close()
    }
    
    @Test void shouldDisplay2IfIPressButton2() {
        def event = mock(Button.ClickEvent)
        def button = mock(Button)
        
        when(button.getCaption()).thenReturn("2")
        when(event.button).thenReturn(button)

        calculator.buttonClick(event)

        assert calculator.stored == 0.0
        assert calculator.current == 2.0
    }

    @Test void shouldDisplay2IfIPressButton2AndPlus() {
        def event = mock(Button.ClickEvent)
        def button = mock(Button)

        when(button.getCaption()).thenReturn("2")
        when(event.button).thenReturn(button)

        calculator.buttonClick(event)

        when(button.getCaption()).thenReturn("+")
        calculator.buttonClick(event)

        assert calculator.current == 0.0
        assert calculator.stored == 2.0

    }

    @Test void shouldDisplay4IfIPressButton2AndPlusAnd4() {
        def event = mock(Button.ClickEvent)
        def button = mock(Button)

        when(button.getCaption()).thenReturn("2")
        when(event.button).thenReturn(button)

        calculator.buttonClick(event)

        when(button.getCaption()).thenReturn("+")
        calculator.buttonClick(event)

        when(button.getCaption()).thenReturn("4")
        calculator.buttonClick(event)

        assert calculator.current == 4.0
        assert calculator.stored == 2.0

    }

    @Test void shouldDisplay6IfIPressButton2AndPlusAnd4AndEqual() {
        def event = mock(Button.ClickEvent)
        def button = mock(Button)

        when(button.getCaption()).thenReturn("2")
        when(event.button).thenReturn(button)

        calculator.buttonClick(event)

        when(button.getCaption()).thenReturn("+")
        calculator.buttonClick(event)

        when(button.getCaption()).thenReturn("4")
        calculator.buttonClick(event)

        when(button.getCaption()).thenReturn("=")
        calculator.buttonClick(event)

        assert calculator.current == 0.0
        assert calculator.stored == 6.0
    }

}

Wednesday, February 15, 2012

Groovy Spock and Maven 3.0

Here you can found a new version of HelloSpockPom for Maven 3.0. With Maven 3.0, you don't need anymore the Spock-maven plugin. And so you can use the last artifacts like bellow
<?xml version="1.0"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">

 <modelVersion>4.0.0</modelVersion>
 <groupId>hello</groupId>
 <artifactId>spock</artifactId>
 <version>1.0</version>
 <packaging>jar</packaging>
 <name>Hello Spock</name>

 <build>
  <plugins>
   <plugin>
    <groupId>org.codehaus.gmaven</groupId>
    <artifactId>gmaven-plugin</artifactId>
    <version>1.3</version>
    <configuration>
     <providerSelection>1.8</providerSelection>
     <source/>
    </configuration>
    <executions>
     <execution>
      <goals>
       <goal>testCompile</goal>
       <goal>compile</goal>
      </goals>
     </execution>
    </executions>
    <dependencies>
     <dependency>
      <groupId>org.codehaus.gmaven.runtime</groupId>
      <artifactId>gmaven-runtime-1.8</artifactId>
      <version>1.4</version>
      <exclusions>
       <exclusion>
        <groupId>org.codehaus.groovy</groupId>
        <artifactId>groovy-all</artifactId>
       </exclusion>
      </exclusions>
     </dependency>
     <dependency>
      <groupId>org.codehaus.groovy</groupId>
      <artifactId>groovy-all</artifactId>
      <version>1.8.5</version>
     </dependency>
    </dependencies>
   </plugin>
  </plugins>
 </build>

 <dependencies>
  <dependency>
   <groupId>org.spockframework</groupId>
   <artifactId>spock-core</artifactId>
   <version>0.5-groovy-1.8</version>
   <scope>test</scope>
   <exclusions>
    <exclusion>
     <groupId>org.codehaus.groovy</groupId>
     <artifactId>groovy-all</artifactId>
    </exclusion>
   </exclusions>
  </dependency>
  <dependency>
   <groupId>org.codehaus.groovy</groupId>
   <artifactId>groovy-all</artifactId>
   <version>1.8.5</version>
  </dependency>
 </dependencies>
</project>

Monday, February 6, 2012

Vaadin and Groovy Test 4

TDD for Story 1
Now we have wrote the TA for the first Story, we can start on the TDD.
I create a class call VaadinCalculatorTest
package ch.ge.vaadin

import org.junit.Test
import org.junit.Before
import org.junit.After
import com.vaadin.ui.Button
import static org.mockito.Mockito.*

class VaadinCalculatorTest {

    private VaadinCalculator calculator
    
    @Before void before() {
        calculator = new VaadinCalculator()
        calculator.init()
    }
    
    @After void after() {
        calculator.close()
    }
    
    @Test void shouldDisplay2IfIPressButton2() {
        def event = mock(Button.ClickEvent)
        def button = mock(Button)
        
        when(button.getCaption()).thenReturn(VaadinCalculator.TWO)
        when(event.button).thenReturn(button)

        calculator.buttonClick(event)

        assert calculator.result == VaadinCalculator.TWO

    }

}

The first thing, we need to verify it's if press button "2", it's what we pressed. It's quite similar to our VaadinCalculatorSpec. If we run now, the compilation  work but the test fail. We need to implement the VaadinCalculator so the test run green.

Thursday, February 2, 2012

Vaadin and Groovy Test 3

CalculatorSpec.groovy
In Vaadin, an Application represents the sum of all the components organized in Windows, Layouts and having a theme applied. The central class representing an application is the com.vaadin.Application class.
His responsibilities include the following:

  • Managing windows
  • Callbacks during the lifecycle of the application
  • Setting themes
It is the main servlet of your application, where all the different screen will be call. The method init(), will start the application.

On our groovy class, we need first  launch the future application, lets call it the VaadinCalculator and add the two spock methods setup() and cleanup().

Vaadin and Groovy Test 2

Yesterday we created our first Vaadin application with Maven. Today as a true Agile Developer we will try to work with Vaadin with our testing tools.

Work on Acceptance Test
We will work on a simple calculator, with 9 buttons for the digits, 4 buttons for the operator (/, *, -, +) and an enter button, to display the result.
The first stories would be :

  • As a User, when I push the button 2, +, 4, I expect have a result of 6
  • As a User, I expect to see a classic calculator with the numbers in a grid of 3 x 3

Wednesday, February 1, 2012

Vaadin and Groovy Test


I had the chance to see a presentation of Vaadin with Nicolas Fränkel, who also write an interesting book "Learning Vaadin". Vaadin is a new Java web framework for making applications look great and perform well, making your users happy. He promises to make your user interfaces attractive and usable while easing your development effort and boosting your productivity.
Vaadin change the way you write web application by thinking application and events process. That's a great news, write a Swing application or a web application will be the same. No more changing the way to write you app. So I grab a book edition and run on my computer to try Vaddin.


Creating a Maven Project
Before starting our Vaadin project you need to create a Maven project with the Vaadin Maven archetype as explain on Using Vaadin with Maven

mvn archetype:generate
-DarchetypeGroupId=com.vaadin
-DarchetypeArtifactId=vaadin-archetype-clean
-DarchetypeVersion=LATEST
-DgroupId=your.company 
-DartifactId=project-name
-Dversion=1.0
-Dpackaging=war

Running the Application
Your project should be ready now and you can launch a testing application with mvn jetty:run and then open your browser under http://localhost:8080/.

The pom has everything ready to work on your Vaadin application.

Monday, March 29, 2010

Scrum Master vs Iteration Manager

Today I was at Swiss XP Days 2010,  quite intersting as always. I follow an interesting session about Iteration Manager from Petra Skapa.
I read from different blogs the same question, is the Scrum Master and the Iteration Manager are the same?  I would say no and yes at the time. On Scrum Methodology we have a role for this and it is call Scrum Master. But on other Agile Methodology like XP Programming we don't have a specific role. Most of the time the role of Scrum Master is taken from a team leader or someone who embrace the Agile methodology and would like to share his willing with the others.This one is the person. Ok the Iteration Manager could be the project manager but I would not recommend it, I would prefer someone near the developer team and not someone near the management.