Agile

Desarrollando nuevas funcionalidades de la mejor forma posible

A muchos nos habrá pasado que hemos entrado a un proyecto y este no se había realizado de la mejor manera. Ya no me refiero al proceso que se siguió o si hubo problemas durante su desarrollo, sino que viendo el código y la estructura, queriendo actualizarlo o seguir añadiéndole funcionalidades, decimos «¡Ay!, a ver qué hacemos con esto ahora.»

Y pensamos, ¿Pero cómo pudieron hacer esto asi? ¿Por qué no lo hicieron bien desde el inicio?

Y aunque nos parezca muy sencillo verlo desde nuestra perspectiva actual, seguramente las personas implicadas estaban también deseándolo hacerlo lo mejor posible pero seguramente no pudieron.

Normalmente es un asunto de prioridades.

A la vez que se quiere desarrollar esa nueva funcionalidad hay que seguir manteniendo o trabajando en otras. Las personas no tienen todo el tiempo que quisieran para hacerlo bien o les faltan los recursos para poder hacerlo, por ejemplo «Pepito debería hacer A pero esta liado con B, con lo cual Juan hace C para salir como sea.»

Seguir leyendo «Desarrollando nuevas funcionalidades de la mejor forma posible»

Cronología de la creación de Scrum

Scrum es un marco de trabajo creado antes que el Manifiesto agil (no olvidar que fue escrito en 2001, aunque sus creadores, Ken Schwaber y Jeff Sutherland participaron también en ello junto a otras personas).

A continuación detallo las fases que pasó:

1986

Aunque no lo denominan Scrum, Hirotaka Takeuchi y Ikujiro Nonaka presentan un paper llamado «New Product Development Game» donde comentan un nuevo enfoque en el desarrollo de productos flexible y holístico, con ideas muy claras que luego se aplicarían en Scrum.

Posteriormente explican que es una forma de creación de conocimiento en el ámbito organizacional perfecto para entornos en los que la innovación continua, incremental e iterativa deba estar presente.

En este nuevo framework, un equipo trabaja como una unidad para alcanzar un objetivo común, como oposición al enfoque tradicional donde se establece el desarrollo como una secuencia de fases independientes entre ellas.

1990

Ken Schwaber empieza a utilizar las primeras aproximaciones de lo que luego se llamaría Scrum como métodos de desarrollo avanzado. A la par, Jeff Sutherland, usa un enfoque similar en Easel Corporation junto a John Scumniotales y Jeff Mckenna, siendo el primero en utilizar la palabra Scrum (termino inglés de rugby para denominar a una melé).

Seguir leyendo «Cronología de la creación de Scrum»

Curso de gestión de proyectos con metodologías Ágiles y enfoques Lean

En Twitter vi que Israel Alcazar publicaba que comenzaba de forma gratuita el curso «Gestión de proyectos con metodologías Ágiles y enfoques Lean» en la Fundación Teléfonica Miriadax.

Como estaba buscando información sobre Kanban y había un módulo sobre ello decidí hacerlo durante el ERTE.

La mayor parte del curso hablaba sobre SCRUM, framework que conozco bastante bien, pero no me importaba volver a escuchar ciertos temas y así aprovechaba a conocer a Alcazar como profesor (totalmente recomendable).

Seguir leyendo «Curso de gestión de proyectos con metodologías Ágiles y enfoques Lean»

El arte de un buen feedback

Seguimos con el libro de Inteligencia Emocional, en este caso me centro en las capacidades necesarias para ser capaces de dar un buen feedback, algo imprescindible en la relación laboral.

El significado de feedback es el intercambio de información de como una parte del sistema esta trabajando, con el entendimiento de que esa parte afecta a otras partes del sistema, y que cualquiera de esas partes puede ser mejorada.

En una empresa todo el mundo es parte del sistema, por lo que dar y recibir feedback es una parte de esencial de la vida de la misma. Este intercambio de información permite saber si se esta trabajando bien, necesita ser mejorado o enfocado en otra dirección.

Sin feedback estamos en la oscuridad (Without feedback people are in the dark).

Daniel Goleman (Emotional Intelligence)

Como manager debemos de dar constante feedback a las personas, la clave es darlo a menudo y de la forma correcta. La efectividad, satisfacción y productividad de las personas depende de ello.

No hay que caer en el error de pensar que el tema se va a arreglar por si solo, ya que casi 100% que no lo hará. Sino damos feedback a esa persona puede pensar que está haciendo lo que se espera de ella.

Cuento un ejemplo que me ha servido para aprender sobre esto: en la empresa en la que estaba había una persona que estaba en remoto en 3 equipos a la vez. Yo era el manager de uno de ellos, pero en los otros 2 estaba a ciegas en lo que hacía, con la carga que tenía. Podía ver en el JIRA sus tareas, hablar con los otros managers, pero todos desconocíamos exactamente la cantidad de tiempo que empleaba en cada incidencia (no se hacían dailys además). En mi equipo pocas veces acababa lo que tenía en cada sprint, con gran diferencia de rendimiento respecto a otros compañer@s que realizaban similares tareas. A mis oídos llegó que «desde arriba» no estaban contento con el trabajo que estaba realizando, por lo que hablé con ella y le indique lo que sucedía, cambiando completamente su rendimiento.

Cuando a una persona, ya sea un amigo, pareja, o un colega, recibe una crítica, normalmente se pone a la defensiva, ya que se suele ver como un ataque personal, más que una crítica a una acción. El paso siguiente suele ser decir excusas, eludir la responsabilidad, y pasar del tema o evitar a la persona, al sentirse injustamente tratado.

Seguir leyendo «El arte de un buen feedback»

El coste de la falta de inteligencia emocional en las empresas

Estos días estoy devorando este libro de Daniel Goleman, «Emotional Intelligence«. Hacía mucho tiempo que no me enganchaba así y es que tiene la mezcla de ingredientes perfecta: demostraciones científicas que avalan hechos o conocimientos que siento y veo en el día a día.

El libro, demuestra en base a descubrimientos de estos últimos años el valor y el impacto que las emociones tienen en nuestra vida.

Inteligencia emocional

Y es que somos seres sociales. Nos guste o no, nos relacionamos con personas, en la familia, en el trabajo, en la calle… y ese contacto deja huella en nosotros y en ellas.

En las empresas, un ambiente laboral en el que no se gestionan bien las emociones, lleva a bajadas en la productividad, aumentos en los tiempos de entregas, pérdida de atención, errores y accidentes, empleados que cambian de empresa, e incluso la ruina.

En el ámbito del negocio, el coste o efectividad de la falta de inteligencia emocional es una idea relativamente nueva.

Emotional Intelligence

Antiguamente en muchas empresas había una rigidez extrema en la jerarquía, con jefes que comentaban que no podían sentir empatía o compasión por sus trabajadores si querían alcanzar las metas.

Esto empezó a cambiar en 1980, con la globalización y la tecnología, con un mundo tan complejo y cambiante donde sólo la suma de conocimientos del equipo puede hacer que una empresa sobreviva y tenga éxito.

El liderazgo no consiste en dominar a la gente, sino el guiar a la gente a trabajar hacia un común objetivo.

La diferencia clave que vemos en empresas con éxito, es que buscan personas cuyo valor, no se basa sólo en su conocimiento, sino que su valor aumenta al ser capaz de hacer crecer el potencial del equipo.

Nota: importante diferenciar entre equipo y grupo de trabajo, en este post puedes aprender más sobre ello.

Seguir leyendo «El coste de la falta de inteligencia emocional en las empresas»

Cualquier crecimiento es una transformación

Uno de los espacios que más me gustó del SOS Zaragoza 2019 fue la que salió de la suma de 2 propuestas de @guilleciencia y Jorge Viarte, con los títulos «Doblar el tamaño sin morir en el intento» y «Postmortem Terminator». Dejando de lado que eran bastante marketinianas y llamaban la atención, la propuesta se basaba en cómo anticiparse a todo lo que puede ocurrir cuando el equipo se escala y así estar preparado para que no ocurra.

Cultura y organizacion

Aunque lo ocurrido en cada caso era distinto, había algo similar. La empresa por fin tenía dinero y podía ampliar el equipo. En una de las compañías, había sido un crecimiento en todas las áreas (almacen, marketing, desarrollo…) y en la otra era más la parte técnica.

Estas decisiones van ligadas al momento financiero de la empresa.

Lo ideal es que el crecimiento sea gradual, pero en muchas ocasiones eso no es así. Ya sea porque el mercado lo impone (por ejemplo, entra un nuevo proyecto), o por tema económico, muchas empresas tienen a gente absorbiendo esa carga extra de trabajo hasta que pueden permitirse crecer. A veces la tecnología permite que un equipo bueno pequeño absorba un crecimiento de 100 a 2000, pero llega un momento en que si la empresa quiere crecer no basta con ello.

Pueden darse muchos casos distintos. En ocasiones la empresa conoce ya a gente que ha trabajado con el equipo o que trabaja de forma continua, y los absorbe. En ese caso, el proceso es mucho más suave, ya que no hay sorpresas en cuanto a su conocimiento, a su «seniority» ya que se lleva tiempo colaborando de forma conjunta. También es más fácil que conozca más sobre la empresa, los roles de los que ya están dentro, el negocio y producto que desarrollan y lo que se espera de ellos.

Otras veces las personas que se contratan no tienen el nivel esperado, o una falta de conocimiento de hasta dónde llega la responsabilidad de cada uno. Esto puede hacer que no se reparta bien el pastel y que algunos acaben asumiendo más trabajo de lo que les toca, quemándose a la larga. Para solucionar esto, entre los asistentes comentaban que una posible idea era realizar un delegation board.

Otro de los asistentes, con uno de sus comentarios (como muchas veces agudos y certeros9 sugirió que la situación del mercado actual de recruiting la hemos generado nosotros por lo que también tenemos que arreglarla. Sino encuentras seniors, contrata lo que encuentres y gasta el presupuesto en hacerles seniors.

Seguir leyendo «Cualquier crecimiento es una transformación»

¿El backlog cuesta dinero?

Mantener inventario cuesta dinero. Ya sean sacos de plástico apilados al lado de la máquina para ser inyectado, tomates en una nevera de un restaurante, o pantalones en un camión esperando su transporte, es dinero almacenado. Además existe la posibilidad de que si hay una inundación, entran bichos, o simplemente se pasa de moda, pierde su valor.

Lo más fácil sería que no fuera necesario mantener ese material almacenado, pero claro eso tiene otros costes asociados. No te puedes quedar fuera del negocio por no tener ruedas para fabricar más coches o cerveza para servir un día caluroso. De ahi el Sistema de producción Toyota, precursor del «Lean manufacturing» o la Teoría de las restricciones o limitaciones (Theory of Constraints, TOC).

Pero, ¿esto también sucede cuando hablamos del desarrollo de un producto digital?

Pues si, que no sea un producto físico y tangible, no significa que no tenga grandes costes asociados.

En cada una de las etapas por las que pasa el código antes de llegar al consumidor final, es «producto almacenado». Desde la User Story definida por el product owner, hasta el tiempo que un tester se pone a probar el código desarrollado, es material almacenado.

El coste del inventario de código es enorme.

En algunos casos pueden tardar meses en llegar a las manos del consumidor final. Esto puede ser la diferencia entre sacar al mercado un producto novedoso o estar constantemente copiando a los más vendidos. Y es que ser el primero muchas veces marca la diferencia en un mercado donde los consumidores están constantemente pensando en la siguiente novedad.

Y dado que los recursos que normalmente se disponen en las empresas son escasos, es muy importante focalizar y no perder tiempo en escribir algo que no va a ser utilizado o salir a producción.

Backlogs

Durante el desarrollo de un producto digital pueden surgir muchas ideas de funcionalidades que jamás llegan a ver la luz. Tal cual vienen, ya sea en una sesión de grooming o porque un cliente o alguien de la empresa hizo una sugerencia, se escriben y se almacenan en un backlog.

El problema es que el 90% de las cosas que están en el backlog nunca se implementarán. NUNCA.

Por ello cada minuto que se gasta escribiéndolas, detallándolas, diseñándolas o discutiéndolas es tiempo desperdiciado.

La mente es compleja, y como describe la metodología GTD® (Getting Things Done® de David Allen) es mejor poner algo por escrito y dejar de pensar en ello, que no tenerlo rondando por la cabeza y estar inquieto. Pero debe almacenarse en el lugar correcto y de la forma correcta. A lo mejor una línea de texto en la herramienta que uses de forma personal como PO bastará para almacenar esas ideas que jamás se programarán.

Seguir leyendo «¿El backlog cuesta dinero?»

Nuevo diseño de formularios

Este invierno hemos cambiado el diseño de los formularios. Los objetivos a conseguir eran:

  • Que todos los sistemas usaran los mismos formularios del sistema de diseño
  • Obtener un diseño con un aspecto más moderno
  • Intentar que el formulario en su totalidad ocupara lo menos posible en altura
  • Mejorar la usabilidad en la visualización de los datos, el manejo de los errores…

Todos ellos eran importantes pero el primero sobre todo era básico, para evitar esfuerzos en el futuro.

Cualquier cambio que se hiciera en el sistema de diseño debía propagarse automáticamente al resto.

En un principio estudiamos la viabilidad de aplicar Material design pero decidimos crear unos patrones de diseño e interacción propios.

Para ello lo primero que se hizo fue recopilar los diferentes casos de formularios que existían en todos los sistemas para estudiar las funcionalidades y definir una serie de reglas (como buena fan que soy del Gov.uk):

  • Sólo se pedirá información cuando sea necesario.
  • Mejor formularios en una sola columna a no ser que no se quiera que haya scroll vertical. En el caso de que por cuestiones de espacio no se quiera alargar la página, el máximo serán 2 columnas principales.
  • Las labels siempre deben estar visibles.
  • Las labels deben estar asociadas al campo. Si se ponen encima del campo que haya separación visual del bloque con los otros campos.
  • Los textos de las label deben ser cortos y claros.
  • En móviles los campos irán normalmente al 100%.
  • Se leen mejor las minúsculas que las mayúsculas.
  • Placeholder o hint solo cuando aporte valor.
  • Agrupar los campos relacionados de forma visual.
  • Indicar el estado del campo en todo momento (focus, inactivo, error…)
  • En el caso de que haya errores debe quedar claro a que campo se refiere.

Seguir leyendo «Nuevo diseño de formularios»

Análisis transaccional y las relaciones en las empresas

Israel Alcázar comenta en su charla de la CAS 2017 que al descubrir el concepto de análisis transaccional comprendió muchas de las relaciones que veia entre las personas cuando las analizaba en el ámbito laboral.

Las relaciones entre las personas en las estructuras jerárquicas funcionan como relaciones padre-madre-hijo. En la que el jefe es la figura de autoridad y se comportan con él como si lo hicieran con sus padres.

Análisis transaccional

Y desde el punto de vista del jefe, se ve al colaborador como el hijo, al que hay que decirle lo que tiene que hacer porque es lo mejor para el y preguntarle a ver como va, porque no te fías…

Esto en el fondo es una disfunción porque hace que las personas no sean autónomas o responsables para hacer su propio trabajo.

Es un sistema que viene del psicoanálisis desarrollado en los años 50 y que básicamente trata de que con un lenguaje sencillo las personas tengan esa autonomía o responsabilidad. Algo que en principio todos somos capaces de tener a no ser que se tenga alguna enfermedad psicológica.

El análisisis transaccional establece que en estas relaciones, el yo, la persona, se puede comportar de 3 modos diferentes, como padre, como adulto o como niño. Y que la otra persona con la que se interacciona, con la que se establece la relación, le pasa exactamente igual, asumiendo uno de estos roles.

El problema viene cuando en la relación con la otra persona, por ejemplo con mi jefe, yo me comporto como hijo, esperando que mi jefe se comporte como padre. Si lo hace, hay un matching, y no ocurre nada, todo el mundo se ha comportado como se esperaba.

Pero, ¿y si se espera de esa transacción algo diferente?

Es decir, yo me comporto como adulto que soy, y espero que mi jefe se comporte de la misma forma, tratándome de adulto a adulto, y me oriente y me deje esa resposabilidad. Pero si él está acotumbrado a comportarse como padre y me dice lo que tengo que hacer, tratándome como hijo, eso no me gusta.

Estoy segura que te has sentido alguna vez en esta situación.

Por mi parte, espero de un jefe indicaciones, que se comporte como un guía indincando una dirección a seguir pero no que me lleve de la mano todo el camino ni que me vigile constantemente a ver si se descubrirlo yo solita.

Por que en el caso de que me vea perdida, soy lo suficientemente adulta para alzar la voz, reconocerlo y pedir ayuda.

¿Y tú? ¿Me cuentas si te has sentido en esta situación alguna vez?

Nota: La imagen está extraída de la keynote de Israel Alcazar en la CAS 2017

Equipos de alto rendimiento

Continuamos con el resumen de la charla de Israel Alcazar (@ialcazar) en la CAS 2017 sobre cómo llegar a ser un equipo de alto rendimiento. En el post anterior hemos analizado qué características debe tener un equipo para no ser solo un grupo de trabajo y que tipos de equipos existen en base a la matriz de autoridad.

¿Qué es un equipo de alto rendimiento?

Hay muchas definiciones sobre qué es un equipo de alto rendimiento.

El concepto de alto rendimiento no es un estado, en un proceso.

Puede que no se llegue nunca ahi, pero el camino hasta conseguirlo es lo que realmente importa.

Caracteristicas de los equipos de alto-rendimiento

Lo que importa es ir evolucionando, hasta conseguir cubrir en cierto modo lo que se puede considerar un equipo de alto rendimiento, que cumple los 2 siguientes puntos:

  1. Es capaz de entregar resultados excelentes, que sean eficientes, es decir, de la mejor manera posible utilizando los menos recursos posibles y eficaces, cumpliendo el objetivo.

2. La constitución, que los miembros tenga una elevada satisfacción y motivación.

Para Israel esto segundo es básico porque si sólo te centras en los resultados y no en las personas, las interacciones entre ellas, no estas enfocado en saber si es de alto rendimiento.

Y, ¿cuándo soy un equipo de alto-rendimiento? ¿en qué tareas soy de alto-rendimiento? Porque se puede ser en algunas y en otras no, por eso Alcázar lo ve como un proceso y no un estado. Es imposible estar siempre cumpliendo todo. Si se busca eso solo genera frustración.

¿Qué se necesita para generar equipos de alto rendimiento?

  1. Objetivos claros: Misión y visión clara. Aunque estamos en un mundo incierto deben estar más o menos este establecidas aunque luego se cambien. Alcazar comenta la aproximación de Google de los OKRs, una forma de trabajar que obliga a pensar en objetivos y en como medirlos. Pero para eso se debe definir perfectamente la visión y misión del equipo a grandes rasgos.
  2. Entorno y contexto seguro: todos los miembros del equipo deben ser capaces de sentirse vulnerables. Que se pueda dar feedback o decir que no se sabe hacer algo sin que pase nada.
  3. Co-responsabilidad: responsabilidad compartida de los resultados. Esto muchas veces no se tiene.
  4. Definir bien las reglas del juego: definir los límites de trabajo porque sino se hace de forma explícita se definirán de forma implícita y eso puede que lleve a expectativas que no son reales y se genere fricción y cierto roce. Los límites en los que un equipo puede decidir, que nivel de autoridad, cuales son sus límites para realizar esa tarea, sus canales de interlocución…

En el libro de Patrick Lencioni, de “Las 5 disfunciones de un equipo”, se habla de la cohesión y las 5 cosas que se encuentran en los equipos que hacen que no se cree esta cohesión.

5 disfunciones de un equipo

Alcazar comenta que no hay que ver esta pirámide como algo secuencia, un equipo puede tener 1 o 2, o estar en el 3, ir variando…

Seguir leyendo «Equipos de alto rendimiento»

Scroll hacia arriba