Claro que soy ágil, por dios!

Diciembre 26, 2008

agil

Yo después de 2 semanas de prácticas ágiles

Con el hype que tiene lo agile, todo programador que se precie dice querer usar metodologías ágiles para mejorar la qué actualmente usan y/o para quitar burocracia, mejorar, etc. Pero estoy descubriendo que la gente desconoce lo que conlleva la palabra “ágil “ y que se centra en cosas como “autogestión”, menos burocracia, etc. pero a la hora de realizar otras practicas que también proponen las metodologías ágiles cuanto menos salen corriendo :) . La mayoría de practicas se basan en equipos participativos, predispuestos a colaborar no solo con ellos, también con el resto de participantes del proyecto incluido el cliente, a asumir ciertas responsabilidades que van mucho más de allá de programar.

Así que me hago una pregunta, ¿está tú equipo preparado para usar metodologías ágiles?, normalmente la pregunta es sí la empresa está preparada, ya que no siempre es necesario ni recomendable usar metodologías ágiles, ya Craig Larman en su libro “Agile & Iterative development” recomienda a las empresas no introducir metodologías ágiles por ejemplo si se tiene éxito en los proyectos desarrollados. Yo empiezo a creer que para introducir metodologías ágiles también es necesario saber si el equipo está preparado, normalmente como ya comenté, ningún libro habla sobre esto, de acuerdo a JM esto es porque la mayoría de libros sobre metodologías ágiles vienen de EEUU y la actitud de los americanos a la hora de trabajar es muy diferente a la nuestra, son más colaborativos, más dispuestos a tirar del carro, a arrimar el hombro y hacer el proyecto suyo, vamos a estar comprometidos, sea como fuere, la realidad es que casi ningún libro habla sobre si un equipo está capacitado para usar metodologías ágiles. Como programador me hago algunas preguntas para saber si yo estoy capacitado o no:

  1. ¿Acepto los cambios?. ¿Cómo encajo cuando alguien me propone cambiar algo que programe en el último sprint, incluso aunque siga iteraciones fijas y por tanto tenga garantizado que la implementación no será inmediata sino que ira al “product backlog” ?

  2. ¿Sé y/o quiero trabajar codo con codo con el cliente?. Buen punto éste, soy capaz de trabajar con el cliente y aceptar sus proposiciones y/o saber canalizarlas hasta alcanzar lo que él realmente quiere?. Normalmente los programadores no trabajamos directamente con el cliente sino que hay un persona encargada de ello (por ejemplo el project manager), pero esto desemboca en el punto 1.

  3. Client driven planning. Estoy dispuesto a que las funcionalidades de cada entrega/release las marque el cliente?. Para mi esto esto es el ideal, toma de requisitos continua y por tanto cambio/cancelación/modificación de requisitos actuales.

  4. Daily meeetings. Estoy dispuesto a salir de mi nicho para una reunión diaria en la que se comenta lo que se está haciendo, lo que se va hacer, etc?

  5. Estoy dispuesto a participar en proceso continuo aportando para crecer como grupo o solo estoy interesado en hacer mis 8 horas e irme a casa.

  6. Equipos autogestionados. ¿Soy lo suficiente maduro profesionalmente para acertar ciertas responsabilidades y tomar decisiones que pueden afectar a la empresa, más aún, soy capaz de ver las cosas desde la perspectiva de la empresa?.

  7. Equipos autogestionados 2. ¿Soy lo suficiente maduro profesionalmente para acertar ciertas responsabilidades y tomar decisiones que pueden afectar al producto entregado al cliente, más aún, soy capaz de ver las cosas desde la perspectiva del cliente?.

  8. Equipos autogestionados 3. ¿Soy lo suficiente maduro profesionalmente para encajar 1 y 2 y hacer que comulguen los intereses de los dos?. (Esto normalmente es tarea del project manager pero en equipos autogestionados muchas decisiones importantes son tomadas por el equipo).

  9. ¿Sé que ágil != falta de proceso o falta de gestión?

Aparte de estás preguntas que me hago, creo que para que tenga éxito la adopción de una metodología ágil es necesario que el equipo sepa trabajar en equipo y esté comprometido.

Balance

Diciembre 22, 2008

bad_santa_naked

Se acaba el año y como siempre toca hacer balance de las cosas buenas, malas, lecciones aprendidas, etc. algo así como un daily meeting o más bien como una reunión retrospectiva de mi vida :)

Ha sido un año duro, duro, duro a todos los niveles, demasiada presión, estrés, demasiadas cosas que hacer. Tan duro que por primera vez me he bloqueado sin saber por donde empezar a pesar de tener más de 20 tareas pendientes.

A nivel profesional he asumido muchas nuevas responsabilidades y no he soltado nada de lastre, eso me ha pasado factura y algunas de mis tareas se han resentido debido a eso. He seguido programando pero he ido añadiendo responsabilidades hasta terminar el año como project manager pero sin dejar de programar, claro está :)

Me gusta mi trabajo, me gusta liderar/gestionar equipos pero el código tira mucho y no hay nada como la satisfacción que te dan 3 líneas bien hechas, sin duda programar es mucho más gratificante que gestionar debido a que a menudo los resultados son mucho más visibles, al menos si lo que llevas son proyectos a muy largo plazo, aunque también tiene sus gratificaciones.

Llevar proyectos es algo muy complicado que requiere mucha atención, paciencia incluso yo diría que cierta parte de psicología, esto no es nuevo, pero este año lo he corroborado.  Los proyectos no son complicados, la gente si. Algo que me ha quedado claro es que el 90% de las personas son difíciles y el 10% restante son extremadamente complicadas. Tengo mucho que aprender sobre gestión, empezando por ser más organizado, afortunadamente estoy en la empresa perfecta para aprender.

Cada día me queda más claro que el nivel profesional de Unkasoft es algo inusual al menos desde mi experiencia, la persona más junior de Únkasoft sería un ser superior :) en cualquiera de las empresas que he estado, algo que Javi me ha dicho en alguna ocasión. Eso me hace pensar que algo debo tener yo para estar aquí :) , no iba a ser todo malo.

He descubierto que soy muy poco efectivo cuando tengo muchas tareas. Que las tareas de programación por regla general requieren 100% de concentración y que incluso las tareas de 5 minutos que no tienen que ver con la programación te hacen perder efectividad.

Soy muy temperamental y debo pensar más y hablar menos desde el corazón. También tengo que evitar procastinar tareas.

Después de lo negativo me voy a subir un poco la moral, cosas positivas:

  • Sigo constante, tenaz aprendiendo inglés y está dando sus frutos, lento pero avanzo.

  • He desterrado Windows y dado la bienvenida a Ubuntu.

  • Por fin tengo nuevo secretario, se llama python :)

  • Me he leído varios libros: Behind closed doors, Practices of an Agile Developer, Uml Distilled, Agile & Iterative Development

  • He empezado un blog.

  • Soy capaz de desempeñar cualquier función/trabajo gracias a la voluntad y al esfuerzo, con algún error que otro como es lógico.

  • Tengo nuevos compañeros con los que congenio muy bien (más importante de lo que creía)

Del año que viene espero poco, porque cuanto menos esperas más te asombran las pequeñas cosas y cuanto más esperas más te decepcionan.

pd:  He seguido el ejemplo de la prensa del corazón y del marca, as, etc.. y he añadido una foto “sexy” para atraer público temiéndome que esta entrada no le interese a nadie :)