Monday, March 23, 2015

Sharing knowledge using videos

In my current job at everis I'm trying to influence the team on using good technical practices, being TDD the first one in my list. In order to do that I gave a short presentation and I've run a couple of Coding Dojos but not many people showed up. I was frustrated, but on the other hand I knew why they couldn't attend: they are too busy.

The final result is that tests are not written, build is not maintained and code is difficult to handle. What else could I do? If one team member wants to learn TDD but he or she cannot attend an scheduled event  I could give them more options to learn that don't require them to read long books or to be present at a room at a certain time. So I thought about recording videos, screencasts.

I tried different free products and did some experimentation myself, and finally found two:

With Open Broadcasting Software you can record your webcam, the application or both, and assign keyboard short-cuts to switch between them. You can broadcast or record, and your recordings can be easily published to YouTube or Vimeo, and you can leave them unlisted, only for a certain group of users. Great!


My main objective was to easily record videos, without post-production, little preparation and a duration between 5 and 10 minutes. Currently I've recorded a couple of videos (in Spanish) just to show TDD in action, and the "possibility" of introducing tests in an existing code base. All the code is written in Java. For some of the videos I've also shared code in github.

I'm not happy with the videos, but better done than perfect.

Getting feedback from my peers I learnt:
  • Seeing the face of the speaker is interesting but not vital. If they have to choose, they prefer seeing the face.
  • The screen resolution has to be lower than your beloved monitor, otherwise it's going to be difficult to see. 800x600 was too big, but very readable. I'm not yet sure about the best resolution.
  • Noise reduction is important. In Mac I did not have to do anything but it took me too long to find out how to remove it in Windows. I had some Dell application to manage that, and I was not aware.
  • It's hard to code and to talk about what you are thinking, at least for me. And the most difficult part is to add emotion to your voice. People will fall asleep.
  • 5 to 10 minutes is the ideal (I think) but it's hard to achieve without post-production if you are building code.
  • A video will never replace the live experience.
The videos, in Spanish,  are:

Using this tools you can also share with your team other practices that work for you. And you don't need to be a guru to share.

Sunday, February 1, 2015

Communication is based on Shared Knowledge

The other day I was speaking with a friend and I eventually used the expression “you've taken the red pill” and he did not understand me. I was assuming that, as long as we speak the same language, we are about the same age and he has seen the movie The Matrix he would understand.
When you ASSUME, you make an ASS of you and ME.
  - Jerry Belson, scriptwriter
He did not remember the part of the movie when Morpheus offers Neo two options: taking a blue pill to stay in a fabricated reality, taking a red pill to escape from that reality into the true one, even though harder and more difficult.

There are phrases in every language that you won't understand, even if you know all the words (are you pulling my leg?). There are shared metaphors (skeleton in the closet, elephant in the room). We also use references to movies, books, TV, … whatever. And the expression will have more content than just the words (go ahead, make my day). Some of them may be understood as part of the language, but some of them are not.

Sometimes you are part of a conversation in a group and they'll start to refer about things they've lived together, and you'll be out of the game.

Sometimes there are terms that are not used with their proper meaning (methodologies, cloud or agility). You may spend an hour discussing with someone and both were meaning different things.

It is not about the language or about the culture; it is just that you don't share the same knowledge. Or the same understanding.


So, if you are in doubt, check for understanding.

Friday, January 2, 2015

2014 review

Last year passed without a blog post, and I'd like to start this year writing, because 2015 is going to be a year of changes. On 9th of January I'm leaving Thomson Reuters, the company where I've worked for 2 years, 4 if I count the years as a contractor, and on 12th I'll start a new job. So it's a good time to make a retrospective of what happened in 2014.

Inside Thomson Reuters

I participated in a change initiative inside Thomson Reuters and it's been a great experience to know about all the difficulties of people distribution, cultures and communication. I had the opportunity to comment and discuss issues about how to evolve Database structure in a living application, and I stumbled upon some good literature about it. This evolutionary database design thing is something I've fought in several occasions in the past, and I'll find time to investigate further.

I've been programming and learning, above all about testing, and levels of testing, and about collaboration and responsibility, the no-coding bits of programming. We practiced a few times mob programming (all the team in a room using a single computer and a projector), and it resulted an energizing and productive exercise.


Speaking



This year I held three sessions of Learning Scrum with LEGO, two in-company and another one with my friends of PMI Barcelona, with José Carlos Gil.

I also had three introductory sessions about Sketchnoting where I've had a lot of people drawing and having fun. I've enjoyed a lot these 30 minute sessions.

Conferences and activities

Saket and Ivana organized in Barcelona an Agile Coach Camp and I was lucky enough to attend. I met there amazing people and I learnt a lot from the experience.

I also attended to the Conferencia Agile-Spain in Barcelona. I wanted to be helping in the organization, but in the end I couldn't, but I was observing how great people made CAS2014 an amazing event. I will remember the ending "keynote" where Pedro Serrahima and Cristobal Colon, with the assistance from Jorge Uriarte were just having a conversation about values and common sense.

Personal

I've tried to focus more on the family, and that's why I reduced my community activities. And I have still a lot to learn. I've also started a coaching process with my friend Gerard Chiva and it's being really interesting. My back was not causing much trouble this year, so I'm happy with my health (fingers crossed!).

Professional

I started participating with La Salle, preparing the subject about Agile Methodologies for one of their on-line masters.

But the most exciting thing was when I started paying attention to the offers I was getting from LinkedIn and I participated in a process that, if successful, would have made all my family to move to another country. After 5 phone interviews and 5 more face-to-face in Dublin, finally I did not get an offer. However, I learnt a lot from the whole experience. The most important part was the conversations we had at home about moving abroad.


That's what opened the possibilities to start something else. And I'll be starting new things this year.

Friday, November 1, 2013

Learning (with) Git

These weeks I'm in a training and  I knew we were going to do a lot of coding exercises and I wanted to be able to share the learning experience with my colleagues when I will be back in Barcelona, so I decided to kill two birds with one stone: I would learn Git.

Git has been around for a while and I had been using scarcely in the past, even I had some code published in GitHub, but when you don't practice, you forget. So I've started small.

I'm working in Windows but I use cygwin to get some Unix-like experience. I installed git in my computer and when I set up my code and initialized a local repository:
cd whereMyCodeIs
git init

A .git folder was created and all my versions would be stored there. I'm not planning on publishing the exercises to any external repository (yet). I created a .gitignore file to exclude from my repository my compilation files. (I struggled without .gitignore in my first repository. Lesson learnt).

Whenever I finished an exercise I would add the code and commit it.
git add .
git commit -m "Exercise 2. Solving the puzzle"

When I want to see which exercises (and commits) I've done so far I do:
git log --oneline

The first think you see the ID of the commit. With it you can retrieve that version, without the risk of losing anything:
git ckeckout 2e81eab

If you want to recover what you were working on:
git checkout master

This way I can review what was studied and modified in every exercise.
If I want to get a list of what files were modified between two exercides I get the commit IDs of the two and I do:
git --no-pager log --name-only --pretty='format:' --full-index 2e81eab..15cf40b

If I want how a particular file was modified between two changes I do:
git --no-pager diff 2e81eab..15cf40b pathToFile/theFileName.java

I know these are very basic commands, but they are helping me in my learning process. I've been following the Atlassian Tutorial.

Even better, read The Junior Developer’s Quick Start Guide to Git.


Thursday, October 17, 2013

2013 Conferencing

This year I wanted to attend to two Agile (un)conferences: Conferencia Agile-Spain (CAS2013) and Agile-Lean Europe (ALE2013). The former because I'm trying to participate in my local community, Agile-Barcelona, and I know there are a lot of amazing people in the Spanish Agile sphere and the latter because, I don't know why, I feel I'm part of that awesome community.

Both experiences have been great, in all senses, and in both events I tried to contribute. I'm a newbie, and I have lot to learn, but I thought I could bring something, not directly related to Agile, but related to our soft-skills, and I managed to give a short talk in both events and both in English. I'm really satisfied with the results.

I'll try to summarize both experiences in one single post.

ALE: Awesomeness
My first contact with the ALE community was in ALE2012, held in Barcelona. It was a life-changing event for me. I thought that that kind of experience could never be improved: I was wrong.

My visit to Bucharest for ALE2013 (#ale13), meeting a lot of new friends from Romania, with a superb organization and excellent keynotes was for me an improvement, not a continuation. I missed a lot of friends from xALEc (Franck, Ivana, Tonino, Kjell, ...), but I met a lot of new ones.

My humble talk was about The Cognitive Power of Comics (video available), trying to connect information visualization, reading habits and communication techniques, with the excuse of the publication of the graphic novel Commitment about project management and decision making (it was a pity not having OlavMaassen in the conference).

I learnt a lot between the sessions and in the conference halls, as always happens in ALE. I enjoyed having a lot of Spanish contributors and I started to love Romania.
ALE is the best moment of the year to renew your energy.

If I have to summarize the conference I get what the kids in ALE said:
"We understood Agile is about having fun, being creative and deliver".


CAS: Conferencia Agile-Spain
CAS2013 (#cas2k13) was my first CAS, even though I already had met a lot of spanish Agilists in the postgrade, other events and Hangouts. It was in Bilbao and was fantastic.

For the CAS I suggested a the short talk Hacking your Body Language and the organizers asked me to give it in English. My session was at the same time other speakers I admire (Jorge Uriarte, Bea Martín and José E. Huerta), and still there were people in my room. And I was really satisfied with the results.

The final challenge came from Vicenç Garcia, an organizer from Agile-Norte who asked three agilists to do “big sketchnoting” (Graphic Recording, Visual Notetaking) of the three keynotes: Antonio de la Torre, Javier Alonso and me.
I was the only one who dared recording the keynote in English, so Antonio did Angel Medinilla  keynote, Javier did Koldo Saratxaga's [2] and I did Tobias Mayer's [vine by Javier] (pictures by Gorka Armentia).
It was the first time for the three of us. I bought my markers the week before the event. We three have completely different styles, and we are learning, but I love these pictures. Thank you, Vicenç!


I had the opportunity to devirtualize a lot of spanish Agilists. I loved a lot of conversations (Teresa, Maica and Ana, specially). I learnt a lot of the group and the people. I had the opportunity ask favours and receive a lot more of what was requested. And again, I learnt in the sessions and between them.

And I enjoyed taking sketchnotes.

I'm really grateful to Gerard Chiva, Daniel Cardiel, José E., Rut, Jaume, Albert, Marc, David and Finner for helping me in the conferences in one way or another. Thank you.

Monday, June 24, 2013

Jazmines

La información que me entra por los ojos es la que más me ayuda a entender y a razonar, pero creo la música me ayuda mucho más a sentir y emocionarme. Y hay otro sentido que tiene mucha más fuerza para evocar: el olfato.

Hay algunos olores, unos pocos, que son capaces de evocar en mí recuerdos y emociones vividas, con mayor efectividad y velocidad que lo podría hacer una imagen o una canción. Y como no somos capaces de almacenar y reproducir fácilmente los olores, a mi me parece algo mágico.

El olor que, de forma automática, revoluciona mi cerebro es el olor a jazmines.

Cuando era un niño pasábamos los veranos en Córdoba, la tierra de mi padre. Nos alojábamos en casa de mis tíos y pasábamos algunos días en Alcolea. En esa casa me sentía feliz. Me sentía muy querido. Por las noches, en alguna ocasión, iba a buscar jazmines con mi tío Pepe porque a mi abuela le encantaba su olor. Y se me ha quedado grabado.

El olor a jazmines me hace pensar en mi tío, en sus bromas, su bigote, su sonrisa, la piscina, el calor, los higos chumbos, mis primas, las bromas por la noche, mirar las estrellas charlando estirado en una hamaca, cuidar a un perro herido, la risita de mi abuela, los flamenquines, una excursión improvisada...

Un olor, mil recuerdos, sentimientos y emociones.

Y hoy, que mi tío nos ha dejado, ese olor me ayuda a pensar en él.
Un beso, tito.

Sunday, March 24, 2013

My road to Sketchnoting

I'm a visual guy, and I love drawing. I've always though that any idea with an image is easier to understand, and that presentation is key. When I came across Mind Mapping as a technique to take notes I run to my bookstore to buy Tony Buzan's Book. I loved the idea of radiant thinking but I found that maps without images were not that powerful.

I was amazed in the Barcelona Leancamp about the notes that a girl was taking. She was drawing! Esther Gons (@wilg) is an artist, of course, but I though I could try something similar. What I needed was some some visual vocabulary.

Dan Roam's The Back of Napkin came to my hands, introducing the idea of communicating using images. The book contains a lot of inspiring ideas, but still lacked guidance about how to draw simple images (and what to draw).

Later I discovered the book Gamestorming (thanks to the Barcelona Meetup), and Visual Facilitation: using drawings in meetings to create and communicate ideas. They suggested that drawing is easy, and that everything can be drawn based on lines, circles an squares. A lot of inspiration again, but not an easy path.

Finally I came across with a great book, Mike Rodhe's The Sketchnote Handbook. What a great book!!! It has a beautiful presentation, it's very easy to read, and the book is presented using the same techniques the author explains. You can see different styles from different authors and you feel confident trying. It's not about art, but about structure.

Now I take notes using drawings in all the meetings, events and conferences I attend. And I try to practice, copy and try new things. I enjoy drawing with my kids simple things, enhancing my vocabulary. I love it!
Now I enjoy meetings, I'm more focused and I try to get the main ideas.

And I love it so much that I bought a copy for my sister.

Sketchnoting is not about beautiful drawings, but about structure, boxes and arrows. Using different typographies also help and the book suggests a lot of things to practice.

One of the best things I've got from the book is the name, a name for the thing: sketchnote, sketchnoting. Now I can find examples, track the Sketchnote Army, find examples in Pinterest, or other good advices.

I've also seen Sunni Brown (Gamesorming book author) using Visual Notetaking, and Doodling to refer to the same concept. It's worth to have a look at her TED Talk, "Doodlers, unite!".

I'll go on having fun with my sketchnoting experiments. Regarding the tools, I'm trying with gel pens, Faber-Castell PITT pens, in Moleskine notebooks small and medium sized. I share some of my experiments at my Flicker.

Go, draw, learn and have fun!

Saturday, January 26, 2013

Unutopian Energy

Yesterday there was the Stoos Connect, a kind of conference broadcasted from the Internet showing that we can have a better and more human world. There were speakers like Niels Pflaeging, Daniel Pink or Jurgen Appelo. Some cities organised local events to watch the streaming together, and Barcelona was one of them.

I wasn't there, I was with Joserra Diaz in the PMA, so I cannot complain.

On Saturday, today, there was an Open Space in Barcelona, organised by the Unutopia community, and I was able to attend for a few hours. It's been strange because I did not have the context: I missed yesterday's presentations and this morning keynote and activities, but I wanted to join. I was curious.

I've met a lot of friends that I've met in events of Agile Spain and Barcelona, and a few new faces. I've been in two sessions, one about education models and another about Unutopia next steps. I've met

A lot of good intentions. A lot of energy. A lot of smart people.  Maybe I haven't seen specific actions. So, what.

Just the energy from my friends. Their willingness. Their hope. Their rage. People spending their family time away from home to make a better world is enough to me.
That only thing makes this world a little better.

Wednesday, January 16, 2013

Agile-Spain Google Hangout

Yesterday (15th of January 2013) we had our first Google Hangout with the Agile Spain community. It was just an experiment, in order to check if we can take advantage of that technology, and it was a great success.

Agile Spain is a very active an healthy community, that has sub-communities in a lot of regions and cities. We have two big events every year, Agile Open Space (AOS) and Conference Agile Spain (CAS), and it allows that a lot of people with interest in Agile, from different parts of the country (and the world) gather together twice a year. So, the community works.

Marc Florit suggested in the Agile Spain list that we could use Google Hangout, based on the experience that some of us are having with xALEc. So, Jaume Jornet, took the proposal and organised the event with Google Hangout On Air.

We decided to try the Fishbowl format, because Hangout allows maximum 10 people in the room. As long as the event was "On Air", it was also broadcasted in YouTube. We agreed that maximum 9 people would be in the room, having always an empty chair. If anybody watching the event in YouTube was willing to contribute, he could join the Hangout and somebody would disconnect to leave a chair available.

The Fishbowl worked like a charm. Maybe 15 or 20 people joined the conversation (I didn't counted them) and a lot of people watched the event live and some others the recorded video afterwards.

The content of the session was initially thought as just an experiment. I explained the xALEc experience and suggested some uses of the Hangouts. Luckily, Xavi Gost suggested to talk about our recent agile experiences and that gave real content to the event.

I could see people from all around Spain, even from Peru. Some of them aren't as lucky as I am and don't have a local community. I'm sure that this opportunity will make our dear community even stronger.

That's not all. Today Carlos Iglesias suggested a new Hangout, to talk about Agile Contracts, and his suggestion immediately got answer on the list. In few hours the event was organised and at 13:00 the Hangout took place. I could not attend, but I've watched the recorded session. Amazing.

This community rocks.

You can have a look at the first Agile Spain Google Hangout on Youtube.
You can read comments in spanish in Antonio Martinez's blog.

Friday, January 4, 2013

2012 on the rear-view mirror

I've been reviewing last year, to learn things for the future and improve it in all the ways I can and I have a few lessons learned.

You can always change 
This year I switched from Linux to Mac as my personal OS. I'm not particularly happy, but it's been an experience, and it's good to challenge yourself from time to time. 
I changed my job, left my friends at Omatech (cooool company!) and joined Thomson-Reuters
I started taking English lessons and I joined a Postgraduate in Agile Methods. Back to school!
I learned Scala programming language.
I've learnt about the Core Protocols.
I've learnt about the power of LEGO.
I've started blogging and tweeting mainly in English.
I've ceased blogging about all the books I read.

The more I invest in Agile, the happier I am
This year I've joined a lot of activities from the Agile-Barcelona Community (my second family now). They run at least one event every week! But I also joined a Gamestorming meetup and events on NoSQL, Scala and whatever.
I organized a couple of events with Agile Barcelona and co-facilitated the Global Day of Code Retreat.
I've volunteered two translating projects, but I couldn't keep up.
I've read 13 books, only one was fiction, and only two were non-English.

The broader my horizon is, the better
I've got in touch with people outside my company, and it has allowed me to know a lot about how other companies (and minds) work apart of mine. 
I've met awesome people from Agile-Spain who have a lot to share and who have a lot in common to me.
I've met people from Agile-Lean Europe Earth, from France, Belgium, Romania, Finland, Italy, Portugal, South-Africa, Netherlands, Germany, Canada, ...
Every week I have a conversation with some of these guys (the xALEc), and it's a great experience.

All the time I invest in Agile, or personal development, is taken from somewhere else
This is a negative. During my Chrismas break I've come aware of the time I'm not devoting to my kids and wife. It's not an issue yet, but I'll have to find the balance.

Your body has to be able to follow your mind
Another negative. I have a physical problem that comes back from time to time (my slipped disc), and I know I have to do a lot of exercise to avoid complications. Everybody should do exercise, but I must do it in order to have an ordinary life. Sometimes a forget priorities.

Personal feedback is hard to receive
This year, for the first time, the team had a session of retrospective where all of us provided personal feedback to everyone. I heard things about me that surprised me, but I'll have to address them:

Sometimes I'm dogmatic and closed to other's ideas. I have to be more patient. I have to be aware of the tone and language I use (sometimes too strong). I have a lack of Vital Agility.

That abridged feedback I received is going to be my focus on the following weeks.

I don't have any other "new year resolution". Just, change the world.

I'm very grateful to my wife, for supporting me. And to all the people who wants to share their knowledge and experience. Thank you all.

Sunday, December 23, 2012

How to kill your Retrospective Debt

The expression technical debt is widely used among the software development community. The debt is some work that should have been performed but, for any reason, there was no time to do it. Some alternative solution was found and now we are living with it. The idea of debt is that you'll have to pay for it in the future, and you'll pay more the later you pay, maybe because the code will become harder to maintain.

Sometimes you find a group (maybe a team) where there's a lot of conflict, unsolved problems or difficult communication. Maybe they have been doing retrospectives but the hard topics have never been raised. Maybe there's a lack of trust and transparency and everybody seems burnout. You have to address it, and it's not easy (if possible at all).

If all these problems had been addressed when they appeared, maybe the tension would not be that hard. If the retrospectives had worked maybe the team would feel more motivated. As long as there are things that could have been addressed in retrospectives and weren't.

I'll call it Retrospective Debt. The later the team address the problem, the harder to fix. It's a debt that the team is going to pay later. What to do?

There's no unique solution for all teams, but I'm sure that doing exactly the same they were doing won't fix anything. Maintaining the same retrospectives won't work. And a single action won't fix anything. And it won't be quick. So, faith and patience.

Maybe you'll have to think in the five dysfunctions of a team, perform some dynamics in the team like a Lego game, introduce the Core Protocols,  perform retrospectives in a different way, use some clever coaching techniques or just have some beers.

Start as soon as possible, draw a plan, address people problems. Don't look for metrics, please.

And above all, don't let your Retrospective Debt grow.

Sunday, December 9, 2012

Global Day of Code Retreat 2012

Last year I was in the Global Day of Code Retreat in Barcelona, held in Runroom (their former office), organized by Agile-Barcelona and facilitated by Jaume Jornet. It was a great experience, and I learned a lot, not only about programming, but about teamwork and sharing.
This year the event was planned again in Runroom, but for difficult dates: public holidays and the Barcelona Developers Conference were difficult rivals. And this time I was a facilitator.

I agreed to co-facilitate the event with José E. Rodríguez Huerta and I joined the facilitators group and attended a training using Google Hangout. In the training we were people form New Zeland, Sweden and Australia, with an amazing trainer: Jim Hurne. The organization of the event, the sessions, the connections with other cities, and the focus of the exercises were all good lessons.

Then I started contacting with the groups around Spain that were having the same event to organize live connections.

Everybody was distilling an energy that was impossible to not be infected.

The day of the event 11 guys showed up in Barcelona (30 had confirmed), and we opened a Hangout during all day so we could be chatting with other cities. Valencia (Ricardo), Madrid (Juanma), Bilbao (Jorge), Berlin (Greg) and Viena (Michael) were some of our connections. We followed the schedule and had sessions with interesting restrictions (ping pong, no conditional, ask don't tell,...) and the programmers used Ruby, C#, Python, Java, C++ and JavaScript.

The retrospective was interesting. They suggested:

  • Having a retrospective reviewing the code someone has writer
  • Choose a language to use everybody in some iterations (and learn the basics of language beforehand)
  • Try a randori, maybe with this language.
  • More on legacy code.
  • And choose a cool mechanism for the raffle 


Out of their confort zone. No pressure for getting the problem done. Try new things. Pair with new people. Thinking in a different way.


This crazy idea from Corey Haines deserves my respect. So many people crazy to become better professionals. And having fun.

Big Thank You.

Monday, October 29, 2012

Drive

The surprising truth about what motivates us
De Daniel H. Pink. 260 páginas. 2009, Riverhead books

Lo que nos motiva ha evolucionado junto a nuestra manera de pensar: nuestro Sistema Operativo de la Sociedad. Inicialmente, con Motivación 1.0, lo que nos motivaba era la supervivencia: cubrir nuestras necesidades biológicas.

Una vez cubiertas estas necesidades en la sociedad, los humanos somos algo más que la suma de nuestras necesidades biológicas así que para motivarnos en Motivación 2.0 buscamos recompensas y evitamos el castigo: "palos y zanahorias". Este tipo de motivación a veces funciona muy bien, pero no siempre. Puede funcionar cuando el trabajo se puede realizar siguiendo unas instrucciones, pero cuando no es rutinario, es artístico o requiere empatía, no.

Algunas mejoras de la Motivación 2.0 han dado lugar a la Motivación 2.1, donde aparecen ideas como la flexibilidad o el empowerment.

El dinero no es suficiente motivación. De hecho, tal y como lo ve Pink, "el mejor uso del dinero como motivador es pagar a la gente lo suficiente como para quitar el tema de la mesa." Hay medidas que pueden ser motivadoras, pero hay otras que únicamente son de "higiene": su ausencia puede ser desmotivante.

El mecanismo de motivación que hay detrás de la Motivación 2.0, palos y zanahorias, tiene muchos defectos:
  • Pueden eliminar la motivación intrínseca
  • Pueden reducir el rendimiento
  • Pueden machacar la creatividad (podemos estar demasiado centrados en la recompensa)
  • Pueden provocar el hacer trampas, los atajos y el comportamiento no ético
  • Las recompensas pueden ser adictivas
  • Pueden fomentar el pensamiento a corto plazo
  • Las recompensas suponen una señal de que la tarea no es deseable

El consejo que da el autor al respecto de las compensaciones por trabajo realizado es que "cualquier recompensa debería ser inesperada y ofrecida sólo después de completar la tarea".

En la Motivación 3.0 la realización de la tarea proporciona una recompensa intrínseca. Si la tarea es contemplada como un juego, el éxito es seguro. Los tres elementos de la Motivación 3.0 son: Autonomía, Maestría y Propósito.

Autonomía: para sentirnos motivados necesitamos sentir autonomía respecto a la tarea que realizamos, cuándo lo hacemos, con qué técnica y con quien.

Maestría: El deseo a tener el dominio en la realización de una tarea. Hay quien cree que nuestra capacidad es fija y definida cuando nacemos, y otros que piensan que se puede mejorar, y que esa mejora requiere sacrificio y esfuerzo. Como decía Julius Erving (Dr. J) "Ser un profesional es hacer las cosas que te gusta hacer en los días en los que no te apetece".

Propósito: El disponer de un propósito mayor

Hay un par de vídeos muy interesantes sobre el contenido del libro en internet.




Se trata de un libro muy ameno, fácil de leer y muy, muy interesante.

Thursday, October 11, 2012

NoSQL Matters Barcelona Conference

On October 6th 2012 I attended to the NoSQL Matters Conference in Casa Convalescencia, Barcelona (the same venue where ALE2012 took place).
My interest in the NoSQL is twofold:

  1. As UOC Consultant for database subjects I must keep the pace with new trends
  2. At work we've been investigating different alternatives, and soon I'll start working with some NoSQL
Well, and I love learning new things! And there I was with some friends from UOC, Agile Barcelona and Sudoers Barcelona. The conference was organized in two tracks, with sessions on Products, Technical Aspects and Use Cases. I will try to share what I learnt on the sessions I attended.

NoSQL databases

NoSQL is an ill-defined term often interpreted as "Not Only SQL", that includes non-relational databases with focus on scalability and where transactionality is not that important.
There are different categories of NoSQL Databases:
  • Key-Value Stores (cache style, most of them based on Amazon's Dynamo paper) (examples: memcached, Redis)
  • Big Table style (based on Google's Bigtable paper) (examples: HBase, Cassandra)
  • Document database (like key-value, but the value is a document) (examples: MongoDB, Couchbase, Riak)
  • Graph databases (examples: Neo4j, OrientDB)

Products, Technology and Theory

Chris Anderson, co-founder of Couchbase gave, in my opinion, one of the most interesting presentations (rap included). He said Reality is growth. Startups are growth. He used the unit "1 instagram" to measure 75 MAU (Millions of Active Users). And he talked about The Simpsons game being out of appStore due to scalability issues and it was only 1/2 instagram. Scalability is important. And horizontal scalability (easily adding new servers) is the preferred one.

MongoDB expert, Christian Kvalheim, explained the capabilities of the product regarding automatic sharding and balancing. A shard is a horizontal partition.

Matt Heitzenroder from Basho talked about Eventual Consistency (Vogels' paper), the consistency model used in most of NoSQL implementations, far away from the ACID model. He talked about the CAP theorem , that states that from Consistency, Availability and Partition Tolerant, you have to pick two. He suggested PBS site to explore eventual consistency.

Luca Garulli from NuvolaBase presented Graph databases with the following definition: "A graph database is any storage system that provides index-free adjacency". His slides of the presentation Switching from the Relational model to the Graph model are available on slideshare.

In a lot of presentations we heard about languages (Python, Ruby, Java, Erlang, Scala, ...), clouds (Amazon WS), JSon and REST. With this new solutions you need to use all the tricks you know.

Use Cases

We reviewed the transition from relational to NoSQL databases with the experience of Trovit and Telefonica. Dani Solà and Marc Sturlese (Trovit) explained that their need was speeding up the update of Lucene text index to achieve near real-time indexing using Hadoop HDFSHiveHBase and ZooKeeper. Pablo Enfedaque's (Telefonica) story was that they were speeding up the access to their personalization database moving from Oracle to MongoDB. Oracle DBAs complained about resources: if they had the same amount of RAM...

Conclusions

It was useful for me Tobias Ivarsson's "NoSQL for dummies" presentation in Slideshare as an introduction. The organization of NoSQL matters conference was perfect and the contents very interesting. I hope I have the opportunity to practice with any NoSQL implementation.

NOTA (23/10/2012)
En el blog de informática de la UOC hemos publicado un artículo en castellano: El movimiento NoSQL (parte I) y parte II.

Sunday, September 30, 2012

In English, Amigo


It was sad for me when some friends from Agile-Barcelona community didn't attended to ALE2012 because it was in English. Next week we'll have Rachel Davies in our Coaching Dojo, and there wasn't the enthusiastic response it deserved, I guess because it's in English.

I am lucky to be working in a company where I need to speak English every day, and being exposed is the best way to learn and practice a language. So, organizing events in English in Agile-Barcelona will be the best way to contribute to our improvement.

And thinking about our weakness got me to wonder if contributing on books translations makes good or bad. For my friends who have not had the opportunity to start learning English, having the books translated is the only way to have access to them. For my friends who understand English, having the book translated is an opportunity to be lazy: they won't go out of their comfort zone.

I've decided to help the ones who can not get to the original source. I'm trying to contribute in the translation of two very interesting books: 
  • Commitment is a graphic novel by Olav Maassen, Chris Matts and Chris Geary from which you can learn about Real Options
  • In Who Is Agile, by Yves Hanoulle you can learn about some agilists around the world, agile communities, events, etc.



You can get in touch with me if you want to contribute to the Spahish or Catalan translations.

I've realized that I have to use English more often in this blog, that I won't blog only in English. I will write in English, Catalan or Spanish, whichever I find more appropriate or I feel like. Just because I can.  

Wednesday, September 5, 2012

ALE2012 energy continues in xALEc

We all agree on the energy we found in ALE2012  in Barcelona. All that crazy-wise people. We were discussing on how to continue with that spirit, waiting until ALE2013, and one of the ideas was xALEc: eXtreme ALE Club.

What's xALEc

Franck Depierre had an amazing idea after ALE2011: perform an on-line Open Space. We have all the tools out there for free, we only have to use them.

Since November 2011 we are meeting every Monday at 21:00 GMT+1. We use a shared document (The xALEc Dashboard) to suggest topics and take record of the meetings. Recently we've created a Facebook group named "xALEc" and a Facebook page. There you can find a description of xALEc written by Tonino Lucca.

I tend to pronounce xALEc as a word, making "x" sound as "sh", and pronouncing ALE similar to the french allez with the final "c". Others pronounce it like x-ALE-c (this time ALE pronounced as the beverage). You can use your own pronunciation.

Technology

We are using Google+ Hangouts, which is a video chat that works from the browser after installing a plug-in. We tend to use the camera and, despite it is not needed, is very useful. It helps also for non native English speakers. We also share documents in the same view and, sometimes, even the whole screen.

We use to publish the link to the hangout on Twitter, using the #xALEc hashtag.

We can have open hangouts (anybody can join) or we can close them to registered people. We try to adapt.


For some people, having to register to Google+ is an inconvenient. If we find better tools, we can use them. Google+ Hangout allows a maximum of 10 participants.

Rules

So far we've used a single Hangout, a single room in an Open Space, but we could use any number of rooms as needed, and we could use the Law of Two Feet (virtually).

Experience

We've had very interesting events about specific topics: DSDM Atern, with Matthew Caine;  Who is Agile, with Yves Hanoulle; Code Retreats, with Adi Bolboaca. But some unplanned hangouts were also great. Check the notes in the doc.

You can read the presentation of xALEc and the description of the first xALEc session that Franck posted in his blog.

Make it better

If there's something you think should be improved, you can reach me and make suggestions. Maybe you don't like Mondays, or the time, or maybe just the name or the technology. Make it better.

Friday, August 31, 2012

ALE2012: when it's over, it's over

The ALE 2012 event was held in my city, in Barcelona. I had the opportunity to attend an international event and I was excited and scared, but I'm completely satisfied.
I've met incredible people, full of energy, eager to share, and I've learnt a lot of things:
  • You can deliver working software every hour. You may have horrible bugs, but you'll fix them. (side note: you need a very, very skilled team to achieve this).
  • xALEc events every Monday had a purpose. It was like meeting old friends. Thanks Franck, Tony and Kjell.
  • It was fun meeting in person Yves, Oana, Jurgen or Adi.
  • You can connect Agile and music (thanks Marc).
  • Kids don't care about language, but only about you.
  • People can have contradicting opinions. Great discussions that make us grow.
  • Some hippy and new age things fit particularly well in Agile. "People over..." opens a lot of doors. This is not intrinsically bad.
  • I've learnt about responsibility.
  • There's nothing more energizing than having a kid on stage.
  • My English is just enough for these events. No reason to worry about it.
  • I've learnt about facilitation techniques, core protocols, software excellence, retrospectives... 
  • I've been able to share this experience with my boss. Lucky me.
  • I'm GLAD I've started learning these things and I want to learn more.
I've learnt a lot of things but I wan't to keep the emotions more than the thoughts.
Thanks to all the agilists who brought their families. I didn't dare bringing my children, but was amazing having kids in the event.
I feel a little bit guilty having enjoyed the show, while my friends organizing the event were holding it on their shoulders. Thank you Saket, Jaume, Catia and Michael. And the volunteers. You are ALEsome.
I want another ALE now!

Monday, July 23, 2012

Learning with LEGO

Last week we gathered together in Barcelona members of the team that use to work from Brazil, Ukraine, so we thought it would be a good idea to do some team building activity, and it would be even better if we used the opportunity to show the values of Agile and Scrum to the members who never had used them before.

So, I prepared a game. Two teams of 4 and 5 people each, working collaboratively to build a city using LEGO, with a backlog containing the buildings the be built and a Product Owner available to refine requirements.

I used Alexey Krivitsky's paper, Scrum Simulation with LEGO bricks enhanced with ingredients from Agile42 and my friend Saket.

They organized in two teams, having at least one non Spanish speaking person in each group, and I explained the backlog, the parts of the city to be built or drawn.
Then they estimated the work to be done using swimlane sizing and story points, and did a release planning, planning three sprints ahead.

From then on, the worked against the clock. We did three sprints each of them with 3 minutes plan, 7 minutes work and 3 minutes review.

In the first review the team have not realized they were expected to show "a city", and were arguing the requirements until they understood they were working to build what the Product Owner needed, and they had him available to ask questions if needed. After some User Stories not accepted, finally they succeeded and did a great job.


We included an extra retrospective in the end, and all the process was about 2 hours.

I used the happiness door technique to get feedback from the experience and I cannot be more satisfied :-)

What I learned:

  • In this game it's important to have a tight schedule and a visible timer.
  • It's a good tool to explore the behavior of the team under stress.
  • It's a very effective way to learn Scrum values and build a team.
  • They decided to nominate an Scrum Master within one team, but in the retrospective they pointed out that it's role was not used at all.
  • The language (almost all were non-native English speakers) was not an issue.
  • We run to build, instead to plan and talk, and it's hard to correct this behavior.
  • It's easier to build what you think, working on assumptions, than to ask. But far as effective.




Tuesday, June 19, 2012

Estic llegint: The White Tiger

De Aravind Adiga. 2008. Publicat per Atlantic Books. 321 pàgines

Una novel·la ambientada a l'India que explica, en primera persona, com un ciutadà amb poques expectatives es converteix en un pròsper emprenedor.
Mostra una India desequilibrada, cruel i injusta. Una gran lectura.

He anat prenent notes durant la lectura.

Diu que la India està plena d'homes "mig cuits" per què no han pogut finalitzar l'escolarització i que justament aquests són la bona base per l'empreneduria. A la pàgina 10 diu:

Fully formed fellows, after twelve years of school and three years of university. Wear nice suits,join companies, and take orders from other men for the rest of their lives.
Entrepreneurs are made from half-baked clay.
A la pàgina 110 apareix un indianisme que ja havia comentat en parlar de Shibboleth en aquest blog. 
I did the needful in a few precise words.

I a la pàgina 292 fa un elogi del yoga pels emprenadors:
[...] an hour of deep breathing, yoga, and meditation in the morning constitutes the perfect start to the entrepreneur's day. How would I handle the stresses of this fucking business without yoga, I have no idea. Make yoga a must in all Chinese schools – that's my suggestion.

Wednesday, June 13, 2012

Definition of Done and Acceptance Criteria

It is always useful to share a common vocabulary in a team, and some terms lead to confusion, as it happens with Definition of Done and Acceptance Criteria.

In an agile project the work to be performed is described in User Stories, for example:
“As a premium user I want to check the special offers addressed to me so that I can purchase them”

Every User Story can have a set of “conditions of satisfaction”, things that must be satisfied in order to consider the User Story finished:
  • The premium user can list the special offers addressed directly to him
  • Each offer has a price, and it’s shown in the user’s currency
  • If the list is empty the user is notified about it and he can see the conditions
  • Every item has link so it can be purchased

These conditions are the Acceptance Criteria and are set per User Story, and are meant to remove ambiguity. In Scrum terminology they are the Product Owner's expectations.

The Definition of Done (DoD)  is a term used in Scrum but can also used in other methodologies. DoD is a set of conditions that every developer must satisfy in order to say he has completely finished with a User Story, so that it’s potentially shippable. It's a statement on quality, and it’s meant to avoid “Technical debt”. You cannot say “it’s done, just some documentation pending”.

Every team defines their own requirements for Done. The obvious one is “all Acceptance Criteria pass” but other teams must choose some of the following:
  • All code has been reviewed (if not pair-programmed)
  • Code has been deployed using Continuous Integration
  • Documentation updated
  • Systems Administrators notified about changes
  • Training manual updated
  • No pending bugs
  • Performance tests passed
  • All code under version control
  • All code needs to have automatic acceptance test
  • Business Analyst accepted
  • Unit Tests pass
  • Code coverage over 70%

If a User Story is not done, it must pass to the following sprint.

In Scrum you can have a Definition of Done for a User Story, for a Release and for a Sprint Planning.

Definition of Done is a team commitment on quality. Acceptance Criteria sets the minimum validations to check on a User Story completion.

There are some practices to include Acceptance Criteria in the development process, like BDD (Behavioural Driven Developmen) and ATDD (Acceptance Test Driven Development), but that’ll be another day.