Carlos Ble

Carlos Ble

I am a professional software developer, I solve problems.

I also teach and mentor developers to build better software.

Developing software since 2001.

Can I help you?

  • Do you need high quality tailor-made software?
  • Need training on TDD, clean code or refactoring?
  • Do you need a technical consultant?
  • May I pair with you to write better code?

Events

Upcoming training courses:

  1. TDD - [en Español] - 6 y 7 Octubre
    Gran Canaria
  2. TDD - [in English] - October 20, 21 & 22
    London, UK
  3. TDD - [en Español] - 29, 30 y 31 de Octubre.
    Madrid, Spain

Conferences:

  1. I'll be at the Agile Testing Days 2014
  2. I'll be at the London Test Gathering Workshops.

Compartir la visión de equipo

Para que un grupo de desarrolladores trabaje como un equipo, tal vez sea importante que  todos sus miembros tengan el mismo concepto de equipo.
¿Cómo es el equipo que queremos ser? ¿cuáles son las características que nos gustaría que tuviese cada persona del equipo?

Si tenemos una visión diferente de cómo debe funcionar el equipo, no conseguiremos llegar a ella porque cada uno rema en una dirección distinta.

Puede que tan sólo sea cuestión de detenerse un momento, reflexionar y decidir qué significa ser integrante de este equipo. Consensuar con los demás los valores y principios que
nos parecen claves. Y que de ese consenso busquemos prácticas que nos ayuden a ser el equipo que queremos y nos hagamos fuertes.

Un principio que me gusta aplicar es el de hacer con los demás lo mismo que me gustaría que hiciesen conmigo.

Así que voy a pensar cómo me gustaría que fuese un compañero de mi equipo para poner yo mismo en practica esos hábitos.
Voy a hacer mi propia lista de "me gustaría...", la cual podemos completar entre todos los miembros del equipo. Aquí va.

Me gustaria que un compañero... (o compañera, por supuesto)

  • Me pudiese cubrir perfectamente cuando estoy enfermo o de vacaciones sin que me tengan que llamar por teléfono contínuamente o pedirme que me conecte remotamente cuando no me encuentro en condiciones para ello.
  • Se tomase el tiempo de explicarme lo que sabe para que cuando se marche de vacaciones o se ponga enfermo, no me sienta totalmente perdido.
  • Me pidiese ayuda o hiciese programación en pareja conmigo cuando conozco mejor el código o el negocio que él o ella, porque así ganamos tiempo y aprendemos todos a la vez.
  • Me pidiese ayuda o trabajásemos juntos cuando sabe que el código que tiene que modificar es complejo y prefiere estar seguro de que no rompemos nada.
  • Me enseñase técnicas y prácticas que conoce para ser mejor profesional.
  • No me hiciese contarle más de tres veces una técnica de desarrollo sin que la tenga anotada y estudiada.
  • Trate de asegurarse por todos los medios que los cambios que ha introducido en el código no rompen funcionalidad existente (no introduce defectos).
  • Ejecutase los tests antes de subir su código al repositorio para evitar que me tenga que poner a arreglar tests que se han roto con cambios que no he hecho yo.
  • Tuviese la iniciativa de arreglar un test que no ha roto él o ella, cuando el compañero que lo rompió por accidente, ha sido avisado, pero no se puede poner con ello en ese momento. (Si quien ha dejado el test roto no suele romperlos sino que se trata de un caso excepcional).
  • Revisase mi código para entenderlo, detectar mejoras o sugerirme alternativas.
  • Criticase mi código constructivamente para ayudarme a mejorarlo y a superarme yo mismo.
  • Usase las partes de la aplicación que he hecho yo, para darme feedback como usuario.
  • Me pudiese sustituir en cualquier momento dándome la seguridad de que lo va a intentar hacer igual de bien que lo intento yo.
  • Esté abierto a recibir críticas constructivas y a aprender cada día.
  • Reconozca sus errores y se esfuerce por no cometer el mismo muchas veces.
  • Se alegre por mi progreso profesional y me apoye para que siga mejorando.
  • Tenga la iniciativa de aplicar cambios sobre código que he escrito yo, cuando necesita ser ampliado funcionalmente y yo no lo pueda hacer en ese momento (porque esté ocupado con otra tarea). Que no me haga sentir que soy el cuello de botella sino que me ayude a quitarme la presión de encima. Y que cuando cambie el código se asegure de que todos los tests siguen pasando y ha puesto el mismo nivel de cuidado en el código que el que he puesto yo.
  • Cuando tiene que introducir deuda técnica porque no le queda más remedio, lo anote y vuelva al código a saldarla tan pronto como el momento de presión termine.
  • Cuando tiene que modificar código de baja calidad se esfuerza por mejorarlo y no sólo por añadir a trancas y barrancas la nueva funcionalidad sobre la maraña.
  • Se cuestione si está haciendo lo mejor posible en cada momento y rectifica para ir en esa dirección.
  • No haya que repetirle las cuestiones con las que ya en otra ocasión hemos acordado que nos vamos a comprometer.
  • Escriba código que puedo entender sin tener que preguntarle a nadie. Y además lo puedo ampliar y testear con facilidad.
  • Antes de tomar decisiones que tienen repercusión sobre los demás, las discuta con los implicados.
  • Si no está de acuerdo con algo que digo, tenga la sinceridad de decirmelo a la cara en el momento adecuado, mejor que a destiempo.
  • Por tanto el equipo que yo visualizo se mueve en bloque, es homogéneo porque comparte unos valores y principios.

En mi visión de equipo no entra esto de "yo hago mi parte y tu la tuya", y cuando pasa algo en la parte que es "tuya" te llamamos para que la arregles tu. En una situación excepcional si, no hay reglas fijas ni matematicas puras para el día a día.

En esta visión tampoco hay tareas que siempre hace la misma persona porque es la única que sabe y parece que siempre va a seguir siendo así.
No puede haber personas que parecen ser imprescindibles. En realidad nadie lo es por muy alto que sea su bus factor. La vida sigue aunque unos marchen y otros lleguen.

Pero mi visión de equipo no sirve si mis compañeros no la comparten.

El compañero al que recuerdo con una sonrisa es el que me lo pone fácil en el día a día. El que no me obliga a verme sometido a presión innecesaria por un trabajo que él o ella ha hecho con neglicencia. Que no me obliga a hacer horas extra por su falta de cuidado.

Ser un amigo no tiene por qué ser lo mismo que ser un buen compañero. Ser un tío majo y agradable no significa ser buen compañero. Es de agradecer tratar con compañeros agradables pero eso no hace un buen equipo por sí sólo.

Puedes rellenar este interesante cuestionario sobre el nivel de agilidad de tu equipo y reflexionar sobre los resultados: http://www.abetterteam.org/new

Animaría a los equipos a redactar su propia lista de cualidades de un miembro del equipo y a colgarla en una pared grande, donde siempre sea visible para todos. Que nuestro ego no se pase por el forro esa lista sin que se note, sino que de el cante y podamos poner a ese ego en su sitio en favor de los valores del grupo.

No es otro que el ego quien causa problemas a individuos y grupos. Hay que vigilarle.

Enjoyed reading this post?
Subscribe to the RSS feed and have all new posts delivered straight to you.
  • http://pensandoenred.com Mario Nunes

    Hola Carlos,

    Construir un equipo no debería centrarse exclusivamente en como trabajamos, como aplicamos técnicas de desarrollo y lo eficientes que podemos llegar a ser.

    Un equipo, parte de la confianza que acaba generando amistad entre los compañeros, donde se conocen como personas.

    Es algo más que como trabajamos, si no la actitud que demuestras ante tus compañeros. Mencionas que te gustaría que te ayudaran a mejorar y que no generen deuda al resto de miembros, pero… ¿no crees que si existiera la confianza suficiente y se conocieran entre ellos, las retrospectivas aportarían el valor suficiente al equipo para para ir resolviendo muchas de las cosas que mencionas?

    Es complicado cuando alguien no está por la labor, centrarse en lo meramente profesional no es suficiente, hay que entrar en el terreno personal.

    “Individuos e interacciones sobre procesos y herramientas”

    La actitud de las personas es lo más importante para que acabe convirtiendose en un equipo en comparación con un buen grupo de profesionales.

    Mi vision de equipo sería:
    - Confianza
    - Amistad (honestidad, sinceridad…)
    - Mejora continua
    - Disfrutar

    El resto debería ir rodado ^_^

  • http://blog.istepaniuk.com Iván Stepaniuk

    Buenas,
    Me había apuntado leer esto con detenimiento ¡y hoy ha tocado!

    Coincido en muchos, sino todos los deseos de la lista. Quizás en otro orden, o mejor dicho, quizás los ordenaría. Agregaría cosas pero no quitaría ninguna.

    En particular rescato lo de “yo hago mi parte y tu la tuya” por que va en linea con mi idea de la “quinta” (pequeño huerto privado que cultiva y aprovecha una sola persona). Creo que hay que evitarlo a toda costa por que atenta contra todo lo que pones en tu lista, o casi todo. En alguna ocasión lo he comentado con el equipo. Una granja es mucho mas productiva.

    En cuanto a que ser amigo no significa ser buen compañero; Yo haría diferencia entre ser agradable y ser una buena persona. Dejando un poco de lado la amistad, creo que los planos profesional y personal tienen intersección. Ser mejores profesionales implica muchas veces ser mejores personas y viceversa. Siguiendo esta analogía matemática, ambos planos se extienden hacia el infinito. SIEMPRE podemos mejorar.

    @Mario,
    Creo que haces una separación de “como trabajamos” (prácticas, técnicas, procesos) vs. “la actitud” (confianza, amistad, honestidad) son cosas distintas, sí. Pero casi todos los items de la lista tienen implicaciones en los dos aspectos. Pienso que no es un compendio de prácticas ni uno de actitudes, es las dos cosas a la vez. Ejemplo en linea con lo que decía antes; No se puede ser responsable si no eres honesto y sincero. PD: Me agendo tu blog, muy interesante.

    Saludos!

  • http://buildingthepath.com Fran Reyes

    Buenas Carlos!

    Es imposible no estar de acuerdo con la mayoría de las cosas que deseas. Si apuntamos a los valores de XP (Comunicación, Simplicidad, Feedback y Coraje) la mayoría de ellos se resolverían.

    La pregunta es, ¿Qué hay que hacer para que el equipo interiorice esos valores?. Si son valores sencillos y simples de entender, ¿Por qué no los aplicamos siempre?

    Yo, al igual que Mario, también pienso que hay que entrar en el terreno personal… Si no hay la “suficiente” confianza en el equipo se hace duro aplicar los valores comentados

    Un saludo!

  • Guillermo Prieto

    Yo también tenía pendiente aportar mi visión, que es muy simple: Estoy en todo de acuerdo con lo que dices, Carlos, al 100%, y solo añadiría una cosa:

    - Priorizar los objetivos del equipo por encima de los personales. Esto no significa que no tiene que haber objetivos personales, no solo puede haberlos, sino que debe haberlos. Cada miembro del equipo debe tener unos objetivos personales que cumplir, e ir en esa dirección. La mayor parte de veces, los objetivos personales y del equipo estarán alineados, pero en aquellos casos en los que se opongan, siempre deberemos priorizar los objetivos del equipo. Y pronto volver a la senda en la que se alinean ambos objetivos.

    Un abrazo

  • http://pensandoenred.com Mario Nunes

    @Guillermo no crees que si cada miembro de equipo tira por su lado, es más dificil aunar y/o alinear la visión de la unidad como equipo?

    @Ivan los objetivos técnicos como todo lo que menciona Carlos en su post, es lo que deberían perseguir los miembros de equipo en busca de la mejora continua.

    Mi punto de vista es que las decisiones tienen que tomarlas el equipo, el equipo es la unidad que se tiene que autogestionar y por lo tanto en busca de la mejora continua debería perseguir la excelencia técnica y rendimiento económico aumentando su velocidad.

    Pero para ello, es muy importante el lado personal de los miembros del equipo. Hablando sobre esto con una persona a la que tengo en gran estima, dijo algo que puede arrojar luz sobre esto que estamos debatiendo.

    - “Si en ese grupo de trabajadores, sólo uno no está por la labor de hacer equipo, no existirá equipo”

    Y tiene mucha razón. No podemos arrastrar y/o convencer a quien no quiere.

    La labor del ScM velando por el “correcto” uso de la metodología, es importante como coach, pero el resto de miembros tienen que aportar su granito de arena. No sólo tenemos trolls en los foros de internet :-)

  • http://www.carlosble.com Carlos Ble

    Gracias por el feedback amigos. Dani Ortube me ha enviado tambien un email con feedback muy interesante. Si me da permiso publicare sus añadidos a la lista.

    Mario ten en cuenta que a veces puede que haya personas del equipo que ni siquiera le ven sentido a hacer una retrospectiva porque no creen en ella o por el motivo que sea. En ese caso las practicas no aportan. Pero si nos remontamos a valores y principios y coincidimos con ellos, tal vez si encontremos las practicas que mas nos gustan a todos.

    No podemos pedir a todos nuestros compañeros de trabajo que sean amigos, pero si podemos tratar de ver si alineandonos en unos principios, somos buenos compañeros.

    Ser amigos y compañeros no siempre es posible pero ser buenos compañeros aunque despues del trabajo nunca nos veamos, deberia ser posible. Hay que intentarlo al menos.

  • http://www.magmax.org Miguel Ángel

    A mí me entra una duda leyendo este post y los comentarios: Si todos estamos tan de acuerdo con todos los puntos… ¿por qué es tan difícil encontrar compañeros así?

    Me da a mí que los que somos así leemos posts como éste :D

    En fin, Carlos, que de acuerdo con todo. He tardado en leerlo porque estoy liadísimo últimamente :D

    Un saludo!

  • http://www.carlosble.com Carlos Ble

    Hola Miguel Angel!
    No es obligacion seguir el blog hombre, ni muchisimo menos.

    Me alegro que te vaya bien ;-)

  • Ismael Ferrer

    Estoy totalmente de acuerdo en todos los puntos. Eso sí, no todos los puntos están al mismo nivel. Para mí hay uno que los aúna todos:

    * Que cada miembro se cuestione continuamente si está haciendo lo mejor para que el equipo cumpla con el objetivo que se ha propuesto, y de no ser así rectifique para ir en esa dirección.

    El resto de puntos son aplicaciones prácticas de esta regla a distintas situaciones del día a día de un equipo de desarrollo de software, para por ejemplo:
    – No frenar al resto de miembros
    – Fortalecerse unos a otros
    – Mejorar la comunicación
    – Evitar riesgos

    No me gusta tanto el último punto “Por tanto el equipo que yo visualizo se mueve en bloque, es homogéneo porque comparte unos valores y principios.” Y no es que no me guste por la idea que quiere transmitir, la de compartir unos valores, con la que estoy totalmente de acuerdo. Es la palabra “homogéneo” empleada en el contexto de la formación de equipos la que me rechina. Me parece bueno que el equipo se mueva en bloque porque todos empujan en la misma dirección pero no tienen por qué hacerlo de una forma homogénea. No me parece saludable para un equipo, ni una heteregoneidad desmesurada, ya que el riesgo de fractura es alto, ni una homogeneidad excesiva. A un equipo se le suelen plantear problemas para los que se necesitan enfoques y habilidades distintas.

    Como bien dices, las posibilidades de éxito de un grupo de personas trabajando por un objetivo en el que alguno de sus miembros piense “yo hago mi parte y hayá te apañes tú con la tuya” son prácticamente nulas. El “nosotros” tiene una fuerza arrolladora frente al “yo”. Sin embargo, como dice el viejo proverbio “la carne es débil”. Ninguno estamos libres de en un momento dado realizar una acción que nos beneficia más a nosotros que al grupo. Otra cosa que también puede suceder y de hecho sucede es que alguien, sin mala intención, piense que está haciendo lo mejor para el grupo cuando está yendo en otra dirección, en unos casos contraria, en otras ortogonal.

    Y es que estar de acuerdo con los principios es una cosa, y cumplirlos luego en la práctica otra bien distinta. Fran se pregunta “Si son valores sencillos y simples de entender, ¿Por qué no los aplicamos siempre?” Yo le respondo con otra pregunta ¿Por qué hay confesionarios en las iglesias si los creyentes están de acuerdo con la doctrina católica, que también tiene unos principios sencillos?
    Sería estupendo que en la realidad todo fuese #ffffff o #000000, pero lamentablemente en las relaciones sociales las variables suelen tomar otros valores intermedios.

    Me gusta la idea de ver la formación de equipos no tanto como una labor de construcción sino de jardinería. Uno se tiene que esforzar de manera continua en regar, abonar, podar, etc. las relaciones entre ellos y ni aún así podemos estar seguros de que un grupo de personas trabajando juntos se vaya a acabar convirtiendo en un equipo.

    Por mi experiencia, una cosa que suele hacer que un grupo de gente tienda a hacer piña es encadenar una sucesión de pequeños éxitos. Aunque no sean grandes metas, el poder celebrar logros juntos es algo que une mucho.

  • http://www.nosolodeiser.com Guillermo

    Aunque ya hace tiempo que leí este post, lo releo de vez en cuando. Nada que poner, nada que quitar. Pero además son valores para cualquier equipo, sea de desarrollo, de consultoría, de márketing, de ventas o de construcción de casas de palillos chinos.

    Enhorabuena por recordarnos con él de vez en cuando que debemos de pararnos unos instantes y hacer un breve examen de conciencia de nuestro trabajo dentro de un equipo, de una empresa.

  • http://www.carlosble.com Carlos Ble

    Gracias por el feedback Guillermo :-)
    Yo tambien me lo tengo que recordar periodicamente.

  • Pingback: Nuestra Segunda Barcamp: ‘Nos llena de orgullo y satisfacción….’ » No sólo Deiser