j.a.estevan

Si no eres parte de la solución, eres parte del problema

Artículos con la etiqueta ‘management’

Definición de ‘hecho’ (DoD, Definition of Done)


  • Necesito precio para unos accesorios de baño para mañana {contrato a precio fijo, alcance fijo, plazo fijo}
  • Sin problema, le cuestan 50€ cada uno {confirmación del contrato}
  • Perfecto, pero los quiero colocados en la pared {ampliación de alcance no prevista}
  • OK, se los doy colocados en la pared {aceptación ¿? de la ampliación} :

Definition of Done - Fail

Obviamente esta situación es ficticia, pero el resultado es real. Esa “instalaciónlleva así desde hace más de un mes en un baño público y nada indica que la situación vaya a mejorar en a corto plazo. Alguien ha dado esa instalación por “hecho” pero esa no es la impresión que da cuando necesitas secarte las manos.

Me gustaría analizar cómo se ha llegado aquí porque es algo que vemos todos los días cuando hablamos de software, que es a lo que vamos:


  • Necesito precio para unos accesorios de baño para mañana {contrato a precio fijo, alcance fijo, plazo fijo}
  • Sin problema, le cuestan 50€ cada uno {confirmación del contrato}
  • Perfecto, pero los quiero colocados en la pared {ampliación de alcance no prevista}
  • OK, se los doy colocados en la pared {aceptación ¿? de la ampliación} :

Definition of Done - Fail

Obviamente esta situación es ficticia, pero el resultado es real. Esa “instalaciónlleva así desde hace más de un mes en un baño público y nada indica que la situación vaya a mejorar en a corto plazo.

Me gustaría analizar cómo se ha llegado aquí porque es algo que vemos todos los días cuando hablamos de software, que es a lo que vamos:

Definition of Done (DoD)

El término Definition of Done está asociado normalmente a Scrum, pero no por eso tenemos que limitarlo a Scrum, ágile, o a ninguna metodología en concreto. Es un término que en cualquier caso se tiene que tener en cuenta y sobre el que vale la pena negociar en cada proyecto, ya que de ésta definicion va a ser la culpa del éxito o el fracaso de muchas entregas (me da igual que sean entregables waterfall, sprints de scrum o como queramos llamarlo).

En un mundo ideal, un análisis -o la definicion de una tarea- esta perfectamente definida y quién lo solicita (consultor, analista, product owner, … quién sea) especifica detalladamente qué quiere, cuándo, dónde y cómo lo quiere. Pero nosotros no vivimos en un mundo ideal y eso rara vez ocurre. Uno o varios de esos interrogantes los vamos a tener que preguntar o suponer y de nuestro acierto va a depender que el resultado sea el esperado o no.

Esta duda (este riesgo) se puede mitigar destallando por ejemplo pruebas de aceptación o similares. Donde se especifique un juego de pruebas que el producto tendrá que cumplir para que se de por valido (para que se considere “hecho”). Pero aun así hay detalles que no entrarán en las pruebas de aceptación, por ejemplo la integración con otros sitemas, la existencia de dependencias externas, hardware, etc. … siempre habrá dudas sobre cuándo podemos dar un trabajo por “hecho”.

Supongo que la comunidad ágil tendrá para discutir largo y tendido acerca de lo que debe ser DoD, lo que se debe detallar en una tarea o en la definición de un sprint. Pero visto desde un punto de vista mas general (o mas waterfall en particular), la definición exacta y pactada de qué requisitos concretos debe cumplir un desarrollo para validarse es algo a lo que se le da poca importancia en el mejor caso, o se ignora por completo en el resto, y que a mi entender es causa de muchos desacuerdos entre las partes y constantes peleas a la hora de finalizar las entregas.

Sobre este tema se habló en la pasada Conferencia Agile Spain y por eso os remito a los videos de las sesiones sobre Contratos Agiles (de Xavier Albaladejo) y a la keynote de Xavier Quesada, donde explicarán mejor qué yo por qué vale la pena reflexionar sobre este tema.

 

29-11-2011 | deja un comentario

Un novato en la Conferencia Agile Spain 2011

Conferencia Agile Spain 2011

Voy a procurar no extenderme mucho para contar lo sucedido en estos dos días de conferencias que hemos podido disfrutar en la Universidad Jaime I de Castellón, empezando como no podía ser de otra manera felicitando la impecable organización por parte de los organizadores de Agile Spain. Un 10 para ellos y mi agradecimiento.

Después comentar que es mi primer evento “masivo” en la comunidad Agile Spain así que no tengo la oportunidad de hacer una valoración comparativa como otros compañeros están haciendo. Como es obvio, sólo voy a comentar las charlas a las que asistí. Ha quedado un poco largo, si te aburre puedes bajar directamente a las conclusiones :)

Conferencia Agile Spain 2011

Voy a procurar no extenderme mucho para contar lo sucedido en estos dos días de conferencias que hemos podido disfrutar en la Universidad Jaime I de Castellón, empezando como no podía ser de otra manera felicitando la impecable organización por parte de los organizadores de Agile Spain. Un 10 para ellos y mi agradecimiento.

Después comentar que es mi primer evento “masivo” en la comunidad Agile Spain así que no tengo la oportunidad de hacer una valoración comparativa como otros compañeros están haciendo. Como es obvio, sólo voy a comentar las charlas a las que asistí. Ha quedado un poco largo, si te aburre puedes bajar directamente a las conclusiones :)

Leer el resto del artículo →

23-10-2011 | hay 5 comentarios

¿Sure Step vs Agile? Condenados a entendernos

Hace unos días tuve una conversación muy interesante con un compañero de trabajo a raíz de mi anterior post El ratoncito ágil y La ruta de los elefantes. Este compañero defendía con bastante convicción la metodología de gestión de proyectos tradicional y me proponía diferentes motivos por los que en nuestro negocio no podían funcionar otras como Scrum o en general metodologías de filosofía ágil o lean (método, sin embargo, ámpliamente reconocida en el mundo de la fabricación industrial) seguro que os suenan:

Project Management

  1. Scrum (o la gestión ágil en general) no es apropiada para proyectos grandes (en tiempos, equipos, costes, …) con diferentes equipos en diferentes roles (comerciales, analistas, consultores, programadores, jefes de proyecto, …) y a menudo en diferentes ubicaciones.
  2. Para aplicar estos métodos hay que cambiar la forma de trabajar de muchas personas integrantes de la empresa, y del equipo en particular, desde el comercial hasta el programador pasando por todos los roles intermedios, y esto tiene un coste y un riesgo a menudo inasumible.
  3. A menudo ni siquiera el cliente está preparado para trabajar de manera ágil. No entiende las implicaciones o simplemente no está dispuesto o preparado para implicarse tanto durante toda la duración del proyecto. Espera pedir lo que necesita, y que se lo den todo hecho.

Hace unos días tuve una conversación muy interesante con un compañero de trabajo a raíz de mi anterior post El ratoncito ágil y La ruta de los elefantes. Este compañero defendía con bastante convicción la metodología de gestión de proyectos tradicional y me proponía diferentes motivos por los que en nuestro negocio no podían funcionar otras como Scrum o en general metodologías de filosofía ágil o lean, seguro que os suenan:

  1. Scrum (o la gestión ágil en general) no es apropiada para proyectos grandes (en tiempos, equipos, costes, …) con diferentes equipos en diferentes roles (comerciales, analistas, consultores, programadores, jefes de proyecto, …) y a menudo en diferentes ubicaciones.
  2. Para aplicar estos métodos hay que cambiar la forma de trabajar de muchas personas integrantes de la empresa, y del equipo en particular, desde el comercial hasta el programador pasando por todos los roles intermedios, y esto tiene un coste y un riesgo a menudo inasumible.
  3. A menudo ni siquiera el cliente está preparado para trabajar de manera ágil. No entiende las implicaciones o simplemente no está dispuesto o preparado para implicarse tanto durante toda la duración del proyecto. Espera pedir lo que necesita, y que se lo den todo hecho.

Los motivos son tan apropiados y recurrentes en cualquier discusión que casi tendrían que formar parte del manifiesto ágil, ya que bien argumentadas son difícilmente discutibles. Lo voy a intentar:

Partimos de la base de que como Partners de Microsoft Dynamics, trabajamos siguiendo la metodología Sure Step, que es una adaptación a diferentes tipos y tamaños de proyecto de la ya conocida Waterfall (Metodología “en cascada”) tradicional, basada en fases secuenciales (con equipos diferenciados por fase), documentación y contratos, y “entregables” (deliverables). Mientras que las filosofías ágiles se basan en el manifiesto ágil:

  • Individuos e interacciones, sobre procesos y herramientas
  • Software funcionando, sobre documentación extensiva
  • Colaboración con el cliente, sobre negociación contractual
  • Respuesta ante el cambio, sobre seguir un plan

(Esto es, aunque se valoran los elementos de la derecha, se valoran más los de la izquierda)

También existen diferencias (o eso parece) entre los diferentes roles que intervienen en ambas filosofías. En Sure Step existen muchos roles que no siempre se aplican todos, resumiendo más o menos:

  • Equipo de Ventas (ante-proyecto)
    • Comercial, Gestor de cuentas, Consultor pre-venta, …
    • Equipo de Consultoría (ejecución del proyecto)
      • Gestor de proyectos
      • Consultor de negocio, Consultor de integración, Consultor funcional, Consultor técnico
      • Programador, Consultor de desarrollo, Técnico de soporte
      • Equipo del Cliente
        • Gestor de proyectos, Responsable de proyecto, usuarios clave, usuario final, responsable de área

Mientras que, por ejemplo, en Scrum, los roles son menos y más específicos (me extenderé sobre esto en futuros artículos), orientados más al producto que al proyecto:

  • Product Owner (propietario del producto, representa al cliente)
  • Scrum Master (facilitador del Scrum Team)
  • Scrum Team (equipo que hace posible el producto)
  • Usuarios (quien utilizará el producto)

Expuesto todo esto, es fácil comprobar por qué mi compañero está tan seguro de su argumento nº 2, expuesto al principio. Intentar cambiar una organización entera y todas las personas implicadas para cambiar la filosofía y el método de trabajo sería un suicidio. Pero estamos hablando de filosofías ágiles, donde prima el proceso incremental, ¿por qué se debería cambiar todo a la vez? Es cierto que en muchos casos no se podrá utilizar una u otra metodología para gestionar todo el proyecto, pero ¿por qué no puede aplicarse sólo en un equipo, o en un área, o en una fase?

Precisamente el trabajar con metodologías Waterfall durante tantos años nos ha llevado a tener equipos muy bien diferenciados por roles y a menudo incluso por ubicación.

¿Acaso dentro de Sure Step un equipo de consultores o de desarrollo no puede auto-gestionar su propia fase de una manera ágil? Mejoraría el resultado final, probablemente los plazos, y mantendría informado de manera frecuente a su director de proyecto y al cliente (quizás a través de un product owner interno, un consultor).

¿Acaso no se puede gestionar una fase de desarrollo (Waterfall) de una manera ágil, priorizando el “core” del desarrollo (lo que el cliente considera imprescindible para su funcionamiento) y haciendo entregas parciales del mismo? Se detectarían errores en el análisis con más antelación que haciendo una única entrega final, se detectaría trabajo que ya no se debe hacer, el cliente vería progresos antes y se haría una idea de lo que va a ser su producto, antes de verlo terminado.

¿Acaso en Sure Step no tenemos ya los roles de Scrum definidos en cada fase? En análisis el Scrum Team son los analistas, existe un jefe de proyecto (Scrum Master) y se realiza directamente en el cliente (product owner). La fase de desarrollo la realizan programadores y consultores técnicos (Scrum Team), el desarrollo se entrega normalmente al equipo de consultoría para sus pruebas (product owner) y existe un director de desarrollo o de proyecto (Scrum Master). Simplemente en cada fase, el que realiza el trabajo es el equipo (Scrum Team), y el que lo espera en la fase siguiente de la “cascada” es el “cliente” (product owner) para el equipo actual.

Creo que con esto queda clara mi postura frente a los problemas nº 1 y 2 expuestos más arriba. Efectivamente hace falta un cambio, pero no creo que sea tan radical ni que necesariamente se deba hacer de manera brusca para nadie. ¿Qué no se puede o sabe gestionar un gran proyecto con gestión ágil? Tampoco es necesario hacerlo para empezar a experimentar y descubrir que hay otras formas de hacer lo de siempre.

¿Y si el cliente no entiende, no es capaz de comprometerse o de comprender un contrato ágil, sin fechas de entrega o costes grabados en piedra? Estoy convencido de que cuando el equipo de la empresa vea los resultados de una forma de trabajar más eficiente, el propio equipo comercial comprenderá la forma de explicar al cliente las ventajas de este cambio. Cuando estás en la situación de firmar un contrato de cantidades notables de dinero es normal que no quieras arriesgarte, pero ya hay mucha gente que se ha caído “cascada abajo” y que estaría dispuesta a probar métodos alternativos, es una cuestión de confianza en sí mismo, de probar, de investigar, de perder el miedo al cambio por parte de todos.

19-09-2011 | hay 1 comentario

El ratoncito ágil y La ruta de los elefantes.

Cerca de donde vivo hay una carretera conocida como “la ruta de los elefantes“. Es una carretera corta pero con muchas curvas, poca visibilidad y frecuentada por muchísimos camiones, por lo que la circulación resulta lenta y pesada, de ahí el “apodo” que se ha ganado.

La ruta de los elefantesEste apodo parece aplicable, por los mismos motivos, al mundo de la implantación de los grandes ERP’s. Gran parte de ese pastel se lo reparten entre unas cuantas grandes empresas, a menudo multinacionales, que acaparan a la mayoría de grandes clientes. Entre la vertical e interminable jerarquía de una buena parte de ellas -como por la ruta de los elefantes- circulan managers más centrados en la cuentas de resultados financieros que en la satisfacción de los clientes, más centrados en la facturación que en la calidad del producto, más centrados en contentar a la parte superior de la jerarquía que en motivar a los de abajo.

De la misma manera que por la carretera, por estas empresas también circulan un numero enorme de trabajadores que como los coches de la carretera quedan atrapados entre varios “camiones pesados”, frenando su avance, retrasando sus objetivos, disminuyendo su visibilidad y haciéndoles imposible adelantar para continuar su camino a su propio ritmo. Muchas veces no es culpa del camión retrasar a los coches, los camiones son grandes, lentos y pesados per-sé, el problema de esa carretera es la cantidad increíble de ellos que se suelen encontrar en el camino y la poca colaboración de éstos para permitir ser adelantados.Cerca de donde vivo hay una carretera conocida como “la ruta de los elefantes“. Es una carretera corta pero con muchas curvas, poca visibilidad y frecuentada por muchísimos camiones, por lo que la circulación resulta lenta y pesada, de ahí el “apodo” que se ha ganado.

La ruta de los elefantesEste apodo parece aplicable, por los mismos motivos, al mundo de la implantación de los grandes ERP’s. Gran parte de ese pastel se lo reparten entre unas cuantas grandes empresas, a menudo multinacionales, que acaparan a la mayoría de grandes clientes. Entre la vertical e interminable jerarquía de una buena parte de ellas -como por la ruta de los elefantes- circulan managers más centrados en la cuentas de resultados financieros que en la satisfacción de los clientes, más centrados en la facturación que en la calidad del producto, más centrados en contentar a la parte superior de la jerarquía que en motivar a los de abajo.

De la misma manera que por la carretera, por estas empresas también circulan un numero enorme de trabajadores que como los coches de la carretera quedan atrapados entre varios “camiones pesados”, frenando su avance, retrasando sus objetivos, disminuyendo su visibilidad y haciéndoles imposible adelantar para continuar su camino a su propio ritmo. Muchas veces no es culpa del camión retrasar a los coches, los camiones son grandes, lentos y pesados per-sé, el problema de esa carretera es la cantidad increíble de ellos que se suelen encontrar en el camino y la poca colaboración de éstos para permitir ser adelantados.

23-08-2011 | deja un comentario