Category Archives: ALM

[#ALM] The pleasure in doing things wrong

Hello!

As programmers, we are often too perfectionists. From time to time, we face with a difficult moment where we have to finish a task in a specific time and we have to decide on

-Move forward with an ugly solution which requires little time

-Choose for a more elegant solution (or beautiful) but which can puts us in the doubt of whether actually finish on time

This is what is known as an uncomfortable moment. And I don’t mean technical debt , or leave something that then is someone is detected as a code smell. This is more important, your health is which is at stake. A portion of bad code typed today, is an angry developer tomorrow. An angry developer tomorrow, especially with you, is never a good idea.

For example, suppose that we have to migrate an app that works with Kinect SDK V1.5 and it has to use Kinect SDK V2. It is almost certain that, in addition to the changes of code of the syntax of the new sensor (skeleton by body for example), we can use some time to refactor, to improve some other things and after many lessons learned to discard some code and make an important part of this app from scratch.

All this is fine (and is what will surely end up doing), but if we apply the maximum of only doing the work defined in the Sprint, should only migrate the SDK. We should not apply any change or improvement.

Consider different scenarios

-What happens if just migrate to version 2.0 SDK?. The work is completed, Sprint can close successfully.

-What happens if the refactoring process is much more complex than originally assumed and may result in having to ask for help to someone from the team?

If we believe in providing value to our customers, it is very likely that level code the first choice is most correct.The final functionality of the app will not change even though inside is all done an ode to the spaghetti.The second option calls us also to the premise of adding value with our team, finally to do quality work.

The topic has many edges and there is a simple solution that can be applied. That’s why Scrum is not for amateurs.If someone asks me to me, I surely you would opt for the second option. That alone, first migrating the SDK, and then taking advantage of to create a specific branch to apply improvements. It is very likely that the 2nd work enters a next Sprint, but if I do not give the best of myself to do things well, I maybe not sleep 😀

Greetings @ Madrid

/El Bruno

[#ALM] El placer de hacer las cosas mal

Hola !

Como programadores, muchas veces somos demasiados perfeccionistas. Usualmente nos enfrentamos al difícil momento donde tenemos que terminar una tarea en un tiempo prefinido y nos toca decidir

– Seguir adelante con una solución poco elegante y que requiere poco tiempo

– Optar por una solución más robusta (o bonita) y que nos pone en la duda de si realmente lo terminaremos a tiempo

Esto es lo que se conoce como un momento incómodo. Y no me refiero a la deuda técnica o a dejar algo que luego se alguien detecte como code smell. Esto es más importante, tu salud es la que está en juego. Una porción de código bruto que escrites hoy, es un developer enfadado mañana. Un developer enfadado mañana, especialmente contigo, nunca suele ser una buena idea.

Por ejemplo, supongamos que tenemos que migrar una app que funciona con Kinect SDK V1.5 para que utilice Kinect SDK V2. Es casi seguro que, además de los cambios propios de código de la sintaxis del nuevo sensor (skeleton por body por ejemplo), por el camino me dedique a refactorizar a mejorar algunas otras cosas y que después de muchas lecciones aprendidas quiera tirar y hacer una parte importante de nuevo de esa app.

Todo esto está muy bien (y es lo que seguramente terminaré haciendo), sin embargo si aplicamos la máxima de solo hacer el trabajo definido en el Sprint, sólo deberíamos migrar el SDK. No deberíamos aplicar ningún otro tipo de cambio o mejora.

Pensemos en diferentes escenarios

– ¿Qué sucede si solo migro el SDK a la versión 2.0?. El trabajo está completado, el Sprint puede cerrarse con éxito.

– ¿Qué sucede si el proceso de refactorización es mucho más complejo de lo que inicialmente suponíamos y puede ocasionar que tenga que pedir ayuda a alguien del equipo?

Si pensamos en aportar valor a nuestros clientes, es muy probable que a nivel código la primera opción sea la más correcta. La funcionalidad final de la aplicacióno no cambiará por más que dentro esté todo hecho una oda a los espaghettis. La segunda opción nos llama también a la premisa de aportar valor con nuestro equipo de trabajo, finalmente a hacer un trabajo de calidad.

El tema tiene muchas aristas y no hay una solución simple que se pueda aplicar. Es por eso que Scrum no es para aficionados. Si alguien me pregunta a mi, yo seguramente optaría por la 2da opción. Eso sí, primero solo migrando el SDK, y luego aprovechando para crear un branch específico para aplicar las mejoras. Es muy probable que el 2do trabajo entre en un próximo Sprint, pero si no doy lo mejor de mi mismo para hacer las cosas bien, pues no podré dormir😀

Saludos @ Madrid

/El Bruno

[#ALM] About free online training (#MOOC), #Millenials and what to do to improve your team work

EBPensando

Hello!

Surely if you see the first hashtag (#MOOC) in the title of the post, you will think something similar to

This post sure has links to training resources.

You are probably right,, but I’ll try to go a little further.

MOOCs

Let’s start with the definition of MOOC in wikipedia (link)

MOOC (an acronym of massive open online course )1 and translated into Spanish as massive and open online course(CEMA)Note 1 ) is a form of open education, which is observed in undergraduate courses offered free of charge througheducational platforms on the Internet; whose philosophy is the liberation of knowledge to bring this to a wider audience. MOOC term was coined in the year 2008 by Dave Cormier2 When the number of registrations to its «Connectivism and Connective Knowledge (CCK08)» rose to almost two thousand three hundred (2300) students.

Without going much into the theme, the first thing we see is that this type of training is oriented to large numbers of people and usually provided by famous and renowned universities (e.g. MIT). What usually happens with this kind of free online training, is that a massive registration occurs at the beginning and then a massive withdrawal from the course when it starts. This is normal, since complete a form online only takes 5 minutes, now well devote 5 hours weeks to a course of several months as it requires more dedication .

There are several sites online that provide this type of courses: Coursera, MIT, and Stanford for example. I have not tried them all, only I have pointed to a couple of courses in Coursera and I have only completed one. This type of platforms are smart enough to then start to offer content that you actually contribute to your professional profile.For example, in the daily poll today I found the following:

Coursera Poll

Following the line out of my comfort zone, instead of programming or technology courses, currently I am doing one entitled “be more creative“. Instead of listening music or listen to a podcast geek, I leave the course on the 2nd monitor and attempt to work while I listen to it. If the course is good, my attention usually focuses on the course and I dedicate my daily 30 minutes, if the course does not attract me, I’ll give it maybe a couple more opportunities and if I’m still not “hooked”, so let’s move to another thing.

Now that there are so many options and MOOCs formats, chances are that everyone will discover the best way to carry out this type of courses. Well, if we look at this trend of free courses and in online format, the first thing that will get us attention is now that most people who take these courses are the generation of the Millenials (or generation and).

About the Millenials

I am not going to write about this generation, but rather, about the reasons driving this generation to work. In this article from the NY Times, the author highlights that many people (and myself included) at the time of choosing work, they value more the job quality and personal satisfaction; rather than economic compensation .

Important: I won’t go into detail on this subject in this post. I give because we all know that we need a couple of €uros to eat. We also know there many thieves who offer us mega ultra fun jobs with ping pong tables and super modern environments, but that then not us enough for a coffee or a few beers with friends.

Another important point is how to work with the information. If you take a couple of years on your shoulders you surely working in environments where information is power. I am referring to the type of people or heads who prefer to hide save information on a team, since they think that this is the correct way to manage it. Without going into absurd generalizations, this kind of behaviour are given in closed minds and prior to the millennial generation. (Hey, I’m from the ’76!)

Bonus: If you want to see the power that has the information, and as the mismanagement of it can destroy Nations, I recommend the book “Why Nations Fail

In the “new model” because information is in a different way. Information is shared and decisions are made in a context of open education is in a completely different way: this generation has to learn and learn fast forward .

Working as a team and innovating

Learn fast is one of the most important innovation drivers. And it is innovation that allows the teams to solve problems and adapt to new situations.

If you’ve read so far, quiet that I’m already closing theme: it is easy to connect the MOOCs with the Millenials.However, the important thing in a team is balance this type of capabilities to achieve good results.

It is already a classic to propose devoting a percentage of time that each person in a team develop new capabilities. There are people that we have been doing this since we learned to read, so it won’t be difficult.

Other actions that you can encourage is to try to gather the information that dispersa-mente is generated to have more coherence and participation. For example, let’s look at what we can do in the mega boring super ultraproductive meetings that both seem to like to organize some people. We are going to a case about virtual meetings. In some cases, this type of meetings tend to be carried out via Skype, Skype for Business (formerly known as Lync) or Google Hangouts, and is amazing how generated 2 completely different channels of information within it. On the one hand, what is said and discussed among participants and on the other hand, what is said through Instant Messaging channel.

slastmeeting

If you want the meetings to be really productive, it is very important to try to complement the 2 channels so that everyone can participate, and the output of the same really contribute value to the participants or the subject matter.

Note: I can not believe in 10 years writing still have pending a post entitled “Reunionitis: on meetings and how to avoid them”

So, you have enough work ahead.

  • You have to investigate what courses are offered online to come and sign up on one of them
  • You have to share this information with your team so that all can see the opportunities that present these platforms
  • You have to take some time to see what you can do to improve the dynamics of the way of your team
  • You have to encourage you to “des learn”, this also goes for another post

Greetings @ Home

/El Bruno

References:

[#ALM] Sobre cursos gratis online (#MOOC), los #Millenials y que hacer para mejorar en tu equipo

EBPensando

Hola !

Seguramente si ves el primer hashtag del título del post (#MOOC) pensarás algo similar a

Este post seguro que va de formación y tiene Links a recursos de formación.

Pues la verdad es que no vas mal intencionado, pero mi idea es ir un poco más allá.

MOOCs

Empecemos por la definición de MOOC en la wikipedia (link)

MOOC (acrónimo en inglés de massive open online course1 y traducido al español como curso en línea masivo y abierto (CEMA)nota 1 ) es una modalidad de educación abierta, la cual se observa en cursos de pregrado ofrecidos gratuitamente a través de plataformas educativas en Internet; cuya filosofía es la liberación del conocimiento para que este llegue a un público más amplio. El término MOOC fue acuñado en el año 2008 por Dave Cormier2 cuando el número de inscritos a su curso «Connectivism and Connective Knowledge (CCK08)» aumentó a casi dos mil trescientos (2300) estudiantes.

Sin entrar mucho en el tema, lo primero que podemos ver es que este tipo de formación es orientada a grandes cantidades de personas y usualmente lo proveen universidades famosas y de renombre (por ejemplo el MIT). Lo que suele suceder con este tipo de formación online gratuita, es que al principio se da una inscripción masiva y luego un abandono masivo del curso cuando el mismo da comienzo. Esto es normal, ya que completar un formulario online solo toma 5 minutos, ahora bien dedicarle 5 horas semanas a un curso de varios meses pues requiere más dedicación.

Hay varios sites online que proveen este tipo de cursos: Coursera, MIT, y Stanford por ejemplo. Yo no he probado todos, solo me he apuntado a un par de cursos en Coursera y solo he completado uno. Este tipo de plataformas son lo suficientemente inteligentes para luego comenzar a ofrecerte los contenidos que realmente te aportan a tu perfil profesional. Por ejemplo, en el poll diario hoy me he encontrado con las siguientes opciones:

Coursera Poll

Siguiendo la línea de salir de mi zona de confort, en lugar de hacer cursos de programación o de tecnología actualmente estoy haciendo uno titulado “Ser más creativos“.  En lugar de escuchar música o un podcast friki, dejo el curso en el 2do monitor e intento trabajar mientras lo escucho. Si el curso es bueno, por lo general mi atención se centra en el curso y dedico mis 30 minutos diarios, si el curso no me atrae, pues un par de oportunidades más y si no me “engancha” pues a otra cosa.

Ahora que hay tantas opciones y formatos de MOOCs, lo más probable es que cada uno descubra la mejor forma de llevar adelante este tipo de cursos. Ahora bien, si analizamos esta tendencia de cursos gratis y en formato online, lo primero que nos llamará la atención es que , la mayoría de las personas que toman estos cursos son los de la generación de los Millenials (o Generación Y).

Sobre los Millenials

No voy a escribir sobre esta generación sino más bien, sobre los motivos que impulsan a esta generación para trabajar. En este artículo del NY Times, se destaca que muchas personas (y yo mismo incluido) al momento de elegir un trabajo, valoran más la calidad y satisfacción que les da ese trabajo; antes que la remuneración económica.

Importante: No voy a entrar en detalles sobre este tema en este post. Doy por hecho que todos sabemos que necesitamos un par de €uros para comer. También sabemos que hay muchos ladrones que nos ofrecen trabajos mega ultra divertidos con mesas de ping pong y entornos super modernos, pero que luego no nos alcanza para un café o unas cervezas con los amigos. 

Otro punto importante es cómo trabajan con la información. Si llevas un par de años sobre tus espaldas (like me) seguramente te ha tocado trabajar en entornos donde la información es poder. Me refiero a el tipo de personas o jefes que prefieren ocultar guardar información en un equipo, ya que piensan que esta es la forma correcta de gestionar la misma. Sin entrar en generalizaciones absurdas, este tipo de comportamientos se dan en mentes cerradas y de generaciones anteriores a los Millenials. (Hey, que yo soy del ’76!)

Bonus: Si quieres ver el poder que tiene la información, y como la mala gestión de la misma puede destruir naciones, te recomiendo el libro “Why Nations Fail

En el “nuevo modelo” pues la información se trata de una forma diferente. La información se comparte, las decisiones se toman en un contexto abierto y la educación se trata de una forma completamente diferente: esta generación tiene ansias de aprender y de aprender rápido.

Trabajando en equipo e innovando

Aprender rápido es uno de los drivers más importantes para la innovación. Y es la innovación la que permite que los equipos de trabajo solucionen problemas y se adapten a nuevas situaciones.

Si has leído hasta aquí, tranquilo que ya voy cerrando el tema: es fácil conectar los MOOCs con los Millenials. Sin embargo, lo importante en un equipo es balancear este tipo de capacidades para lograr buenos resultados.

Ya es un clásico el proponer dedicar un porcentaje de tiempo para que cada persona de un equipo desarrolle nuevas capacidades. Hay personas que llevamos haciendo esto desde que aprendimos a leer, así que no será complicado.

Otras acciones que puedes fomentar es intentar juntar la información que se genera dispersa-mente para tener más coherencia y participación. Por ejemplo, veamos que podemos hacer en las mega ultra super aburridas productivas reuniones que tanto parece gustar organizar a algunas personas. Vamos a un caso sobre reuniones virtuales. En algunos casos, en este tipo de reuniones suelen ser llevadas a cabo vía Skype, Skype for Business (antes conocido como Lync) o Google Hangouts, y es increíble como se generan 2 canales de información completamente diferentes dentro de la misma. Por un lado, lo que se comenta y se habla entre los participantes y por otro lado, lo que se comenta a través del canal de mensajería instantánea.

slastmeeting

Si quieres que las reuniones sean realmente productivas, es muy importante intentar complementar los 2 canales para que todo el mundo pueda participar y que el output de la misma realmente aporte valor a los participantes o al tema en cuestión.

Nota: No puedo creer que en 10 años escribiendo todavía tenga pendiente un post titulado “Reunionitis: Sobre reuniones y cómo evitarlas”

Así que bien, tienes bastante trabajo por delante.

  • Tienes que investigar qué cursos se ofrecen online para animarte y apuntarse en uno de ellos
  • Tienes que compartir esta información con tu equipo para que todos vean las oportunidades que presentan estas plataformas
  • Tienes que tomarte un tiempo para ver qué puedes hacer para mejorar la dinámica de la forma de trabajo de tu equipo
  • Tienes que animarte a “des aprender”, esto también va para otro post

Saludos @ Home

/El Bruno

Referencias:

[#ALM] About Annual Performance Reviews, new Managers and feel free to break walls !!!

A01

Hello!

When we are getting closer to end-of-year, we usually get to that fabulous moment where we face the annual performance review. I know, I am not going to talk about that topic for 2 reasons: first one, is that painful model gives me hives and that would also give to write a full post. Is much better to read what Ilya Pozin wrote about this in 2 pages (link). One of the points that stresses me, and also included in the post, is that the frequency of the feedback need not be annual it should in “real time mode”. He also point some spots like for example minimize the critical negative about the work, talks about statistics and differences between assessments towards women and men; and a couple of other things.

What I think is missing is a bit of vision about the managers / beloved leaders / bosses or however is called your team. When a evaluations process begin to be more effective, it also changes the way in which someone leads a team. If we start from the basis: an evaluation is an act which aims to correct a mistake or reinforce good practice in a team, since much of the responsibility for this act lies with the person who carries it out, let’s got deeper into the manager role.

For example, I’ve seen many cases where the managers, take a model 100% oriented to the delegation of tasks and its role is simply to direct and command a group of people. IMHO this is usually as spit against the wind. In modern equipment, the health of the team depends on the relationship that exists between members in the same. If the only thing that makes the boss is giving orders, when it comes to communicate an assessment, for sure the first thought of the evaluated one will be something similar to “and he tells me what? if he does not understand nothing of what we do“. On the other hand, the attitude of the beloved leader is lead by example, the time of the evaluation is much closer and probably far more effective. A little more about this. I do not mean that a manager has to work closely with each of the members of the team (which you should do if you can). Leading by example means to be consistent with actions that we perform because those are which will appear on the members of the team. In these cases, and as a matter of common sense, the beloved leaders tend to be chosen by the team.

This brings me to the second point which is related to the frequency with which these assessments are performed. My recommendation is not invest 15 minutes a day with each Member of the team, but if you analyze the variables that define the team environment and such time take advantage of retrospective or similar to make these assessments. And here we come to an important point, if your company assessments are annual, That does not mean that you are not able to change this way of work. I do not mean to convince managers of human resources to change the way of working with 10000 employees, but rather to perform disruptive actions from the inside. Someones will think I intend to foment a revolution, and the truth is YES. If you really believe in a model that can work better, you must to apply it on your team. Discuss with other colleagues and in the long run if the model is good, for sure that you end up adapting to the philosophy of the company.

Note: Provided that you propose a good idea, do not think that there is a top layer so obtuse as to not realize the advantages of a change for better.

A03

On that basis, it is incredible as the “new managers” are much more open to sharing information, in contrast with the traditional managers where reigns the belief that “the information must be controlled”. I am not going to get into social issues, although this is also given due to a generation where the concept of IP is increasingly more strange and contrary to what was in the last 50 years. (This is the 2nd point where I should write a post just for this)

To close the post and going back to being disruptive, I simply would encourage anyone who hold this role of beloved leader to break a little the established barriers and try to

  • Be consistent with what you say and what you do. This will be reflected when you transmit a message with the team
  • Adopt a model of real time feedback. Annual evaluations are very well, really well, incredibly well 😉
  • Understand the different generations of people in the team. This is important, you have to be very subtle when working with people from 25 years and 50 years…
  • Convince your ‘bosses’ what you think. I know, it’s like spitting in the wind and most likely is goes wrong, but … and if it goes well?

a02

Here you should cut the post, because the next paragraph will surely be about disruptive models and think I’ll better play football with Valentino for a while 😀

Greetings @ Madrid

/El Bruno

References

Why Everyone Hates Performance Reviews And How To Fix Them

http://www.forbes.com/sites/ilyapozin/2014/12/10/why-everyone-hates-performance-reviews-and-how-to-fix-them/

[#ALM] Sobre evaluaciones anuales, los nuevos managers y animarse a romper esquemas

A01

Hola!

Cuando llega fin de año llega ese fabuloso momento donde llegan las evaluaciones anuales. Ya lo sé, no voy a entrar a hablar sobre ese tema por 2 motivos: primero me da urticaria ese penoso modelo y además que daría para escribir un post completo. Mejor leer lo que escribe Ilya Pozin que la verdad que lo describe muy bien en 2 páginas (link). Uno de los puntos que remarca, y de lo que va el post, es que la frecuencia del feedback no tiene que ser anual tiene que ser en modo “real time”. Aquí también toca algunos puntos como por ejemplo minimizar las críticas negativas sobre el trabajo, habla sobre estadísticas y diferencias entre evaluaciones hacia mujeres y hombres; y un par de cosas más.

Lo que creo que le falta es un poco de visión sobre los managers / amados líderes / jefes o como se llamen en vuestro equipo de trabajo. Para que el modelo de evaluaciones comience a ser más efectivo, también tiene que cambiar la forma en la que se lidera un equipo. Si partimos de la base que una evaluación es un acto que pretende corregir un error o reforzar una buena práctica, pues gran parte de la responsabilidad de este acto recae en la persona que lo lleva a cabo.

Por ejemplo, he visto muchos casos donde los managers, toman un modelo 100% orientado a la delegación de tareas y su rol consiste simplemente en dirigir a un grupo de personas. Personalmente esto suele ser como escupir contra el viento. En equipos modernos, la salud del equipo depende de la relación que exista entre los integrantes del mismo. Si lo único que hace el jefe es dar órdenes, cuando llegue el momento de comunicar una evaluación lo más probable es que el primer pensamiento del evaluado sea “y este que me dice si no entiende nada de lo que hacemos”. Si en cambio, la actitud del amado líder es liderar con el ejemplo, el momento de la evaluación es mucho más cercano y seguramente mucho más efectivo.  Un detalle sobre esto. No quiero decir que un manager tenga que trabajar codo a codo con cada uno de los integrantes del equipo (que si hay la oportunidad debería hacerlo). Liderar con el ejemplo significa ser coherente con las acciones que realizamos porque esas son las que se verán reflejadas en los integrantes del equipo. En estos casos, y por una cuestión de sentido común, los amados lideres suelen ser escogidos por el equipo.

Esto me lleva al segundo punto que está referido a la frecuencia con la que se realizan estas evaluaciones. Mi recomendación no es invertir 15 minutos al día con cada persona del equipo, pero si analizar las variables que definen el entorno del equipo y tal vez aprovechar las retrospectivas o similares para realizar estas evaluaciones. Y aquí llegamos a un punto importante, si en tu empresa las evaluaciones son anuales, ESO NO QUIERE DECIR QUE NO PUEDAS CAMBIAR ESTA FORMA DE TRABAJO. No me refiero a convencer a los encargados de recursos humanos para que cambien la forma de trabajo de 10000 personas, sino más bien realizar acciones disruptivas desde adentro. Alguno pensará que como buen compatriota del “Che”, pretendo fomentar una revolución y la verdad es que SI. Si realmente crees en un modelo que puede funcionar mejor, porque no aplicarlo en tu equipo. Comentarlo con otros compañeros y a la larga si el modelo es bueno, seguro que se termina adaptando a la filosofía de la empresa.

Nota: Siempre que propones una buena idea, no creo que haya una capa superior tan obtusa como para no darse cuenta de las ventajas de un cambio para bien.

A03

Sobre esta misma base, es increíble como los “nuevos managers” son mucho más abiertos a compartir información, en contrapartida con los managers tradicionales donde impera la creencia de que “la información debe ser controlada”. No voy a entrar en cuestiones sociales, aunque esto también viene dado gracias a una generación donde el concepto de IP es cada vez más extraño y contrario a lo que se llevó en los últimos 50 años. (Este es el 2do punto donde debería escribir un post simplemente para esto)

Para finalizar y retomando el tema de ser disruptivo, yo simplemente animaría a cualquier persona que sostenga este papel de amado líder a romper un poco las barreras de lo establecido e intentar

  • Ser coherente con lo que dices y con lo que haces. Esto se verá reflejado cuando transmitas un mensaje con el equipo de trabajo
  • Adoptar un modelo de feedback en tiempo real. Las evaluaciones anuales están muy bien, realmente bien, increíblemente bien😉
  • Entender las diferentes generaciones de trabajo. Esto es importante, hay que ser muy sutil al trabajar con personas de 25 años y de 50 años …
  • Convence a “tus jefes” de lo que crees. Lo sé, es como escupir acostado lo más probable es que salga mal, aunque … ¿y si te sale bien?

a02

Aquí debería cortar el post, porque el siguiente párrafo seguramente será sobre modelos disruptivos y creo que mejor me voy a jugar al futbol con el Valentino un rato😀

Saludos @ Madrid

/El Bruno

References

Why Everyone Hates Performance Reviews And How To Fix Them

http://www.forbes.com/sites/ilyapozin/2014/12/10/why-everyone-hates-performance-reviews-and-how-to-fix-them/

[#ALM] #PairProgramming in transmitter / receiver

Hello!

Pair Programming is very cool, and at some point you start to get addicted to this practice, kind of a 12-step program. In an early stage, it is usually difficult to have a with a good pace of work. However, in the next phase, the team start to realize that something like “this is amazing”; and from now on, the team only wants to work in a Pair Programming mode. Finally you end up realizing that there have to be a balance, in example: is good to maybe have 2 sessions of Pair Programming in a day, one in the morning and another in the afternoon. This gives time so then everyone in the team can have its own time for research, personal development time and play some online game.

A classic bad example of Pair Programming is when an Alpha developer and a Beta developer, are starting to work together. That’s it without have some clear rules. The Alpha programmer, as we all know is often very dominant. The Alpha Devs, impose his point of view, etc. (kind of a Punisher in dev mode). In a model of Pair Programming, this programmer has just taking over the control in the keyboard, writing all code, and refuting any suggestions or criticism received from the Beta dev. In the toher side, the Beta developer is more comfortable in a position where not falls on him (or her) much responsibility, so this living in this 2nd level is fine.

A solution for this type of scenario, is to work in Pair Programming, with a model “transmitter” and “receiver” (or “leader” and “key presser”). In this model, you can work in small time lapses, ie: 25 minutes (the Pomodoro TechniqueDuring this period of time, one of the developers will be responsible for coding and the other will be the one which tell what to do.

The “key presser” can not directly code based on what he thinks, but it must be the hands and fingers of the ‘leader’. This model is incredibly unproductive at first, however when it passes a time has a number of advantages

  • The fact of forcing that one code and the other leads, move to the team members improve their communication skills
  • The leader has to learn a quick and consistent way to communicate his ideas so that key presser can carry them out
  • The key presser, have to learn to listen (this seems obvious, however usually is very complicated)
  • When the leader explains his idea out and loud, it tends to be a great time to detect problems, bugs, etc.
  • On the other hand, the part listening also has voice and vote, can challenge an idea, collaborate with it, etc.

Depending on the size of the team, it is also important to do rotations in pairs that work. And not try to gather the most obvious profiles.

I encourage you to try this model and then tell me!

Best regards

/El Bruno

References

> Pair Programming, http://en.wikipedia.org/wiki/Pair_programming

> Punisher, http://en.wikipedia.org/wiki/Punisher

> Pomodoro Technique, http://en.wikipedia.org/wiki/Pomodoro_Technique

> Picture, http://avengersalliance.wikia.com/wiki/Punisher/Dialogues

[#ALM] #PairProgramming en modelo Emisor / Receptor

Hola!

Lo de programar a pares (“Pair Programming”) tiene cierto punto de adicción y odio que hace que cuando lo comienzas a probar, es algo muy parecido a un programa de 12 pasos. En los primeros momentos, por lo general es complicado dar con un ritmo bueno de trabajo. La siguiente fase, es algo así como “esto es la rehostia !!!” y el equipo solo quiere trabajar en un modelo de Pair Programming. Finalmente te terminas dando cuenta que ni tanto ni tan poco, que es bueno tal vez tener 2 sesiones de Pair Programming al día en el equipo, una por la mañana y otra por la tarde. Esto da tiempo para que luego cada persona(je) del equipo pueda tener su propio tiempo de investigación, desarrollo personal y jugar al Apalabrados.

Un ejemplo clásico de Pair Programming mal aplicado es cuando se juntan un developer Alpha y un developer Beta, sin dejar claras las reglas de juego. El programador Alpha, como todos sabemos es por lo general muy dominante. Los Alpha Devshablar mucho, imponer su punto de vista, etc. (una especia de Punisher en modo developer).  En un modelo de Pair Programming, este programador acaba adueñándose del teclado, escribiendo el código que a él (o ella) le parece y refutando todas las sugerencias o críticas que recibe del programador Beta. Por otra parte, el programador Beta se encuentra más cómodo en una posición donde no recaiga en él (o ella) mucha responsabilidad, así que esto de estar en 2do plano está muy bien.

Una solución para este tipo de escenarios, es trabajar en Pair Programming, con un modelo “emisor” y “receptor” (o “líder” y “pica teclas”). En este modelo por ejemplo, se definen períodos de tiempo de trabajo, por ejemplo de 25 minutos (al estilo Pomodoro Technique). Durante este período de tiempo, uno de los developers será el encargado de codificar y el otro será el que le indique lo que debe hacer. El “pica teclas” no podrá codificar directamente en base a lo que piensa, sino que deberá ser las manos y dedos del “líder”. Este modelo, es increíblemente improductivo al principio, sin embargo cuando pasa un tiempo tiene una serie de ventajas inherentes

  • El hecho de forzar a que uno codifica y el otro lidera, ayuda a que los integrantes del equipo mejoren sus capacidades de comunicación
  • El líder, tiene que aprender una forma rápida y coherente de comunicar sus ideas para que el pica teclas las pueda llevar a cabo
  • El pica teclas, tiene que aprender a escuchar (esto parece obvio, sin embargo suele ser muy complicado)
  • Cuando el líder explica su idea en voz alta, suele ser un excelente momento para detectar problemas, fallos, etc.
  • Por otra parte, la parte que escucha también tiene voz y voto, puede desafiar una idea, colaborar con la misma, etc.

Dependiendo del tamaño del equipo, también es importante ir realizando rotaciones en los pares que trabajan. Y no intentar de juntar a los perfiles más obvios.

Los animo a que prueben este modelo y luego me cuentan !!!

Saludos

/El Bruno

Referencias

> Pair Programming, http://en.wikipedia.org/wiki/Pair_programming

> Punisher,  http://en.wikipedia.org/wiki/Punisher

> Pomodoro Technique, http://en.wikipedia.org/wiki/Pomodoro_Technique

> Picture, http://avengersalliance.wikia.com/wiki/Punisher/Dialogues

[#SCRUM] Y el delicado camino a la incompetencia

Hola!

Todos sabemos que Scrum es la solución a todos los problemas. En la página 12 de la guía de Scrum hay una frase que dice lo siguiente:

Scrum Hoch bIquv qay’ taS

Que traducido del Klingon viene a significar

Scrum es la solución para todo tipo de problemas

Y listo! Ahora bien, si analizamos los 3 pilares de Scrum: Transparencia, Inspección y Adaptación; los mismos nos indican que un equipo a medida que utiliza Scrum, aprende a ser más eficiente. La base de esta teoría es que el equipo sea independiente y tenga capacidad de autogestión.

Sin embargo, esto último también puede terminar con un efecto boomerang: Un equipo puede ir a peor ejecutando Scrum. Y es que, no todos las personas que trabajan en nuestro rubro cumplen con la premisa de “Scrum no es para aficionados”.

Es normal que un equipo, cuando comienza a gestionarse, los resultados no sean los esperados. Es ese punto donde la inspección y adaptación ayudan a que el equipo pueda comenzar a mejorar. Sin embargo, también existe la posibilidad de que un equipo nunca mejore. Que siempre el listón este muy bajo y que no exista un análisis interno de inspección y adaptacion. (Aclaración: en estos casos la transparencia suele estar cercana al 95% de opacidad)

¿Y qué hacer en estos casos? Una opción es volver a dar soporte al equipo, que popularmente lo comparo con criar niños de 3 años. Ayudar en cada paso, ser el facilitador, etc. Un poco de Scrum Master con el rol de padre. Y hasta aquí debes llegar, luego de un par de Sprints es momento de volver a evaluar si el equipo es autosuficiente. En caso contrario … pues cambia el equipo.

Es una pena, sin embargo la motivación con la que algunas personas llevan adelante su trabajo no es la misma que la que tienen otras. Y en el caso de los trabajos con tecnología esta motivación suele ser intrínseca, con lo que los “premios a corto plazo” son una tapadera muy poco productiva.

Una forma de explicar esto es la práctica de “El que rompe la build pone 1€ en un frasco”. El objetivo de práctica no es asustar para que los developers se desangren poniendo miles de €uros (yo lo he hecho), ni tampoco es recaudar para las cervezas de los jueves (también lo he hecho). Esta práctica implica un trabajo de fondo, donde cada persona es suficientemente consciente de que la calidad no es opcional y de que romper la build es detener el equipo en marcha. Y esto es suficiente, muchas personas lo entienden, otras lo ven como una gracia.

Asi que bien, Scrum puede servir para que los equipos aprendan a autogestionarse y a mejorar sprint a sprint; y también sirve para detectar equipos que no poseen ganas de mejorar y .. bueno que tal vez sea necesario cambiar.

 

Scrum Guide: https://www.scrum.org/Scrum-Guide

Scrum no es para aficionados: https://elbruno.com/2013/12/24/scrum-scrum-no-es-para-aficionados/

Saludos @ Home

El Bruno

image image image Google

[#ALM] Improve the way your team works, forget #emails; Welcome to #Yammer or #Beezy or whatever you want!

image

Hello!

Today I will try to contribute my experience on improving my team collaboration by not using email at work. Communication experts will have much more to contribute to the subject, and sociologists for sure will address the issue of the current generation Y and how it works in a different way…

For my is easy: “I don’t like reading emails“. Don’t get me wrong, the email is an excellent tool. However, in recent years it has become more and more useless tool. I can take from my OneNote notes more than 20 notes about this, let’s start with only 3.

  • Many people write emails with much content inside. I mean loooooong emails, if the person or persons who will be directed to this email address, have 100 emails or more per day, they most likely to pass it. This information is “lost” and for every single companies, this is the worst scenario that can happen.
  • The timing is also essential, remember emails are only in “output direction channel” for you. Many times an email inside contains too high a level of importance for an asynchronous channel.
  • Finally, Please email usually means a “that’s it for me”. I mean, when a person has a responsibility and must share it with someone else, a habitual behavior usually send an email. This is not bad, what is bad is that occasionally when adjusting work we have answers of the type “sent an email to Juan and not responded“. All of this said with the conviction that the act of sending an e-mail was just enough.

In the previous examples the main problem tends to be the feeling of detachment that gives us the email. Those who know football, will know the term “pass the ball”. For a team this is very counterproductive, the opposite we want, we always try to promote team collaboration. Challenging a specific problem, a group of minds becomes a better solution than a single head.

In addition there are behaviors associated with emails which tend to be quite harmful to a team.

  • The complex of “Zero Inbox“, which forces people to read everything in your INBOX. I know people who has become obsessed with this topic.
  • Another that is great is people living with the paranoia of “why I don’t get and answer?”. A classic in some cases tends to be, someone calls you and tells you: ‘ I just sent you an email, as I not get an answer I call for… ” and you get into verbal communication which is usually much more effective.

Here part of everything “bad” that we associate with when we wrong use of our tools. Now, to make a change and improve we can use other tools.

In a team Kanban boards usually are excellent for tracking and managing work. In a distributed team or where are handled different times, the natural choice has always been the mail. I for some time I have stopped using the mail (in the areas in which I can) and we use Yammer.

image

The truth is that the result is great and it has helped me to have an calmer Outlook. Here are some experiences that are worth sharing:

  • The first thing that strikes me is that no longer exist that feeling of “you’ve gone the problem”. When working on a shared wall, the general feeling is that everyone shares responsibility for what she speaks and shares in it. (Values of Scrum + 1)
  • In the same way, it does not need to “read everything that is on the wall”. When a team begins to work with a product type Yammer or Beezy, the same team is maturing to a point where the wall contains important information for the project.
  • If you want to work with a Wiki, I recommend any product of this type, or even OneNote. A wall of messages will not replace a Wiki, however it can become an excellent compilation of the type information: FAQ, Support Cases, etc.

As a concrete example of the agility that provides this type of tools, today I have commented on a group of Yammer time to came it to Seattle within 2 days and I have companion of taxi to the hotel. Excellent opportunity for a bit of networking, and to… speak ill of emails!

Saludos @ Home

El Bruno

image image image Google