sábado, 15 de diciembre de 2012

First goal achieved: Malaga Marathon 2012 [English]


First big Ironman target achieved: finishing a marathon under 3h30'.

It has been a great weekend, with my friends of #theClub, Jero, David, Josete, my trainer Jesús Ortigosa, my father.
It's awesome to take part in a race surrounded by friends, you start it full of energies and feeling like going to do it very well.


The evening before, our friends of Clínica del Pie La Malagueta gave us the Superman dresses (thanks a lot to make this challenge possible). It was huge but it look like being light, nothing to be scared about so far. The cape was also humongous but Jero suggested to secure it with safety pins.

Race started right after the 3h30 Pace setter. Because of the fact I was dressed as Supermen, people encouraged me a lot, a lot of laughter, jokes that made me starting the race so good.



The pace setter kept a correct rythm, but with some fluctuations (sometimes faster, sometimes slower).




Beside the pace setter there was a good group of athletes from Nerja's Athletes Club. They suddenly had the same feeling than me: let's put a stable 4'55''/km rythm and try to grow apart from it.


Gradually we were leaving the setter, we were accumulating some good minutes that at the end helped me a lot. That wasn't my initial plan, but I was feeling very good and the group was so promising.
A lot of jokes were told: "Superman keep in the front of the group, don't be lazy" "We have to kick Superman in the ass" "Let's throw him some kryptonite" "Hey Superman when are you going to fly". I'll always remember this race running with a smile in my face.

Kilometers passed, it's the 28th and my adventure's mates decide to hit the gass. This wasn't my battle, my own one was clear: to run in a stable path under 5'/km, nothing more and nothing less...

We said cheers, we wished good luck and there we go, 12 more kms ahead, the Marathon had just started. I was alone but people didn't stop perking me. Specially kids: "Mum, it's superman!" "give me five superman"...
In the 36-37 km I was a little bit down but I took a gel and take it dissolved in some water. More than enough to finish the race.

I arrived to the finish line with a thrill, remembering those that joint the race, remembering those that were not there...



This is the track recorded with my Timex watch:

Thank you a lot to #theClub because this is a terrific group of friends. Congratulations to you all because you made a great race.

Thank you so much to my trainer, without your effort it wouldn't have been possible. Your job has made me beating my best time in a Marathon without suffering at all, with the feeling of having run in a training tempo.


It was awesome to run again with my father. He never trains properly for the Marathon, he always performs miracles to prepare for it. But at the end you finished once again, you have a few of them in your pocket. You are a beast!

The way to my first Ironman is going very well. First target finished.
This is the after-marathon week, time to recover and think of what is ahead, tough times. But I have a great group of people to enjoy in this adventure, I have a lot of faith in the steps a professional of this gives me, I want to make this dream possible... success is granted.

Keep on running!

Primer objetivo conseguido: Maratón Málaga 2012 [Spanish]

Primer gran objetivo de cara al Ironman conseguido: maratón por debajo de 3h30'.

Fin de semana genial, con los compañeros de #theClub, Jero, David, Josete, mi entrenador Jesús Ortigosa, mi padre.
Es genial participar en una carrera rodeado de amigos, empiezas la prueba lleno de energías y ganas de hacerlo bien.


La tarde anterior nos entregaron el traje de Superman los amigos de Clínica del Pie La Malagueta (muchas gracias por darme la posibilidad de este desafío). Quedaba bastante grande pero parecía ligero, nada que temer en principio. La capa también era bastante grande pero Jero me dio la gran idea de asegurarla con imperdibles.

La carrera empezó junto al globo de las 3h30. La gente animaba bastante al ir disfrazado de superman, muchas risas, muchas bromas que me hicieron empezar la carrera muy bien.



En principio el globo marcaba un ritmo correcto, aunque había muchas oscilaciones (a veces se adelantaba, otras se retrasaba).




Junto al globo había un numeroso grupo del Club Atletismo Nerja, ellos piensan igual que yo. Vamos a marcar un ritmo estable 4'55''/km y despeguémosno del globo.


Poco a poco vamos despegándonos del globo. Vamos acumulando minutos de ventaja que luego me vendrían genial. Esta estrategia se salía un poco de mi plan, pero me encontraba muy muy bien y el grupo prometía.
No fueron pocas las bromas: "Superman no chupes rueda, ponte delante y marca un poco el ritmo", "este superman seguro que nos pega el hachazo después, hay que tirarle criptónita" "Superman cuando vas a volar". La carrera siempre la recordaré con una sonrisa en la cara, no paré de reir.

Así los kilómetros pasan, hasta el km 28 en que mis compañeros de aventura deciden apretar más aún en ritmo. Entonces decido que esa no era mi guerra, yo tenía claro mi objetivo y que tenía que hacer para conseguirlo: marcar un ritmo llevadero pero estable de menos de 5'/km, nada más y nada menos.

Nos deseamos animo y me quedo en soledad. En realidad toda la gente no paraba de animarme. Sobre todo los niños: "mira mamá, superman" "superman, chócala"...
En el km 36-37 tengo un pequeño bache y entonces cojo un gel, lo disuelvo en agua y bebo poco a poco. Más que suficiente para acabar la carrera.

Entrada en meta emocionado, recordando los que están, recordando los que faltaban...



Es el el track grabado por mi reloj Timex:
http://www.trainingpeaks.com/av/DDCZ573JPNY7QV7MSW6UZPMZHE

Muchas gracias a #theClub porque este equipo es un grandísimo grupo de amigos. Enhorabuena por esa enorme Maratón que hicisteis.

Muchas gracias a mi entrenador, porque sin tu esfuerzo esto no hubiera sido posible. Gracias a tu trabajo he hecho mi mejor tiempo en Maratón sin sufrir nada, con la sensación de haber corrido a ritmo de entrenamiento.



Fue genial poder correr de nuevo con mi padre. Nunca entrena la maratón en condiciones, siempre haciendo malabares para prepararla. Pero al final acabó otra dura maratón, ya lleva unas cuantas a sus espaldas. Eres un campeón.

El camino hacia mi primer Ironman va genial. Primer hito conseguido.
Esta semana postMaratón ha sido para recuperar y pensar en lo que queda. Se avecinan tiempos duros pero con este grupo humano, esta fé ciega en las directrices que te marca un profesional de esto, estos sueños por cumplir... el éxito está asegurado.

A seguir corriendo!!


viernes, 7 de diciembre de 2012

Software creation using Collaboration(II): Pair programming

Sometimes we create a task and say: "Let's do it in pair programming".

Let's try to define the formal framework that defines what Pair Programming is, what it is not.

In general, when two programmers are doing pair programming, one programmer types in code at the keyboard and the other programmer watches for mistakes and thinks strategically about whether the code is correct.

Key points to success using Pair Programming

Don't waste time discussing code standards
It won't be effective if the pair spend the time arguing about coding style. It should be already defined so that programmers can focus on the "essential" task.



Don't let pair programming turn into watching
The person without the keyboard should be an active participant in the programming: analyzing the code, thinking ahead to what will be coded next, evaluating the design, planning,...

Pair programming is not for easy stuff
When a complex issue is dealt, what works best is to have a 15minutes whiteboard meeting and then to program solo. 

Regular work and pair rotation
Benefit arises when the pair rotate the assignments, that is, 30 minutes "driving", 30 minutes without the keyboard. Some experts also recommend changing pairs as often as daily.

Match each other's pace in the pair
One partner going too fast limits the benefit of having the pair. The faster needs to slow down, or the pair should be set up with different partners.

The two can see the monitor? 
It can look like an obvious thing, but sometimes we forget obviousness. E.g. are the fonts too small?

Avoid pairing people that doesn't like each other, avoid pairing all newbies
Some more obviousness: it's pointless to force people who don't get along, who have conflicts. Needless to say that one of the partners needs some experience in working in pairs and in the business.


Benefits of Pair Programming

  1. Pair programming holds better under stress. Pairs encourage each other to keep the code quality, to stay concentrated,... Helps to keep in step the ups and downs of the individuals. 
  2. Improves code quality: readability and understandability is improved.
  3. It shortens schedules: Pairs usually write code faster and with fewer errors. The team spend less hours fixing bugs. One somebody picks a bug, everybody knows what is going on.
  4. Other benefits arise from the culture and personal style exchange, mentoring of junior programmers, fostering collective ownership of the work.

Now we have a few things to say to your boss when he comes along to say why are you sitting in other work mate desks.
I'll try to follow these simple rules when we start doing pair programming. 



jueves, 6 de diciembre de 2012

Software creation using Collaboration(I): Why?

Today I want to change my usual sports' talk in my blog. I know talking about sports every time can get boring for some of you, specially while drinking a cup of coffee in our break:)
Today I want to talk about the power of collaboration.

I always have thought that two brains think better than one, far more if the one is mine:)

Collaboration between colleagues it's a powerful weapon we often forget... We work with colleagues, we create a software that is huge, we put our own ingredient but the final recipe and dish is the result of the team.
We sometimes use "pair programming" to solve unknown tasks. I put quotes between pair programming since we actually don't know what that implies.
We're almost scared as the boss walks near our place, "will he think we are wasting our time? Will we be fired?" Furthermore if you work as a programmer in Spain...

I'm currently reading one amazing programming book: the mythical Code Complete by Steve McConnell. While following the chapters one by one, I found a lot of references to Chapter 21 - Collaborative Construction
I felt the need of digging into that chapter and surprisingly, it talks about the power of collaboration. 
I would like to write a phew highlights of it so that I get them tightened in my brain and others can learn from it.

Maybe this sounds familiar to some of you: 
A workmate walks into your desk and say: "Would mind helping me with this code? I'm stacked because I have done this... and that result on this error, and it can't be so because... Ouch wait a minute! I have the answer!! Thanks for your help mate"
You say: "Oook, I didn't did a thing..."

In one way or another, collaborative construction techniques are attempts to formalize this experience.

Let me say a phew words you can say when you big boss asks: why are those two programmers working together? :D

Defects detection

The main goal we have is to improve software quality.

We have testers at Unit4, we have system analysts,...  All of them trying to reduce defects in our ERP.
We use Test Driven Development (TDD) to create our software, we trust in our changes.
But as the book says, UnitTesting have an average defect-detection rate of 30%, Integration Tests increases it up to 35. In contrast, the effectiveness of Collaborative design and coding is 55-60%.

Time

Another benefit of collaboration is that it decreases development time. 
In the book we have dozens of figures that justify it. E.g. IBM found that each hour of code inspection with pairs prevented 100 hours of related work (testing and fixing bugs).

Surprisingly, collaborative practices have proven to being more efective at caching errors that testing, furthermore it detects find different kind of errors.
A colateral effect is that when people know their work will be reviewed, they do it better: scrutinize it, criticize it,...

Mentoring

We need feedback about our job, about some subjective aspects of programming: style, naming, design approaches,...
Collaboration between more experienced programmers and less experienced can encourage those newbies. Collaboration (review, pair programming,...) can create a venue between them, therefore the latest ones can quickly be brought up to the level of the best developers.

Commitment, collective ownership

All the code produced by Procurement in the last sprint is owned by the TEAM rather than individuals.
This mindset produces several key benefits:
-Multiple sets of eyes seeing the code, again, increases quality.
-The impact of someone leaving the team or getting sick is lessened because everybody know what is going on.
-Time to fix bug is shortened since everybody is familiar with the code, any programmer can be assigned to fix bugs.

In next chapters I will talk about a couple of Collaborative techniques that have proven its efficiency widely throughout years and years of ussage: Pair-Programming and Formal Inspections (aka Fagan Inspection).


Let's change our mind, stop thinking somebody sitting at someone's  desk is loosing his time!


domingo, 2 de diciembre de 2012

Una semana para la Maratón

Hoy última tirada larga de cara a la Maratón de Málaga. 18 km de Simulación de competición.

Me levanté 3 horas antes y desayuno consistente en café con leche y una tostada con mantequilla y mermelada de fresa.

Una hora antes de salir a correr, infusión de manzanilla con 2 cucharadas de miel.

Uso ropa en exceso: una malla larga y una malla corta, camiseta running de manga corta y encima otra de manga larga. El motivo es simular el traje de superhéroe que llevaré en la carrera (me faltó la capa:D).


Llevo un cinturón de hidratación con 3 botellas de isótonica by Sr. Miyagi. Esta es nuestra pócima super secreta: para 1 litro de agua agregar:

-Una pizca de bicarbonato.
-Una pizca de sal.
-Dos cucharadas de azúcar.
-El zumo de un limón.
Esta bebida la tomo durante la sesión, cada 20 minutos unos 150ml de bebida (tengo marcas en los botes de agua para saber cuánto tengo que tomar en cada toma.

Para conseguir el objetivo de bajar de 3h30 en la maratón, la estrategia de carrera será:

1. Primeros 4km para ir encontrando sensaciones.
2. Km 4-8: Voy aumentando el ritmo para irme acercando al ritmo de la maratón.
3. De ahí hasta pasar el famoso muro (km 33-35), ritmo estable de 5'/km o ligeramente por debajo.
4. Intentar aumentar el ritmo hasta el final de la maratón.

Ésta era la idea hoy. Pero han aparecido dos factores que me han hecho cambiar ligeramente la prueba de fuego hoy:

-El señor Mocito me acompañaba, está más fuerte que el vinagre.
-Había una carrera de 10km en Granada, con la que pensamos empalmar para hacer más ameno el entrenamiento.

El resultado final ha sido éste:

http://www.trainingpeaks.com/av/YLZJULBUF76L7MU77YSFGVC2KA



Empecé los 4 primeros kilómetros a un ritmo de unos 5'15''/km, rodando tranquilo con Josete.
Empezamos a subir ritmo hasta colocarnos en 5'/km. Pero queda poco para la salida de la carrera de la Policía de Granada, así que aprieto un poco (4'30''/km). Cuando llevamos ya 9 km y pico, nos incorporamos a la carrera. Una pequeña pausa para saludar a los amigos y se da el pistoletazo de salida.
No sé qué tienen las carreras que siempre pasa lo mismo: estrategia de maratón, c'est fini. Corro en un buen grupo a unos 4'30''/km, me encuentro muy bien, de pulsaciones genial y guardando un poco.
Cuando el reloj marca 15km, aprieto el ritmo. Me descuelgo del grupo, y la gente me mira pensando, dónde va el flipado este.
Hago 3km muy fuertes, a 4'15-4'20. 
Cuando el reloj marca 18km, se acabó la carrera. Me salgo del trazado y trotando para casa.

Muy buenas sensaciones antes de la carrera. He entrenado bien gracias al Sr. Miyagi, el mega crack trainer Jesús Ortigosa. Creo que el objetivo de bajar de 3h30' se va a conseguir. Habrá que tener cuidado con la capa, eso sí:D

Esta semana toca recuperar muy bien y planificar la carrera. Haremos dieta disociada de hidratos de carbono.

Un entrenamiento, una oportunidad para mejorar.