lunes, 11 de enero de 2016

100 días en Agile (II)

Intensa y Exigente
     Decía, en la entrada anterior, que Agile es intensa y exigente. Llevo cerca de 3 años en este puesto de trabajo (sin Agile), y he participado en proyectos que se consideraban críticos y con una gran presión. Y sin embargo, nunca he necesitado estar al 100% para desarrollar mi trabajo y sacarlos adelante.
     En estos 100 días en Agile como Product Owner (PO), no he parado. Cada Sprint, es justamente eso, un sprint de 2 semanas. Comienzan los miércoles y finalizan los martes dos semanas después, y tienen:
  • Todos los días: Daily de 15m, a las 9:45h.
  • Cada 2-3 días: revisamos el Scrum Master (SM) y yo: impedimentos, dependencias que aún tenemos que resolver, información nueva o actualizada que tengamos referente al proyecto, y cambios que hayan surgido por el camino.
  • Cada 2 semanas los viernes: Comunidad de Product Owner, 1:30h.
  • Día 1: Planificación del Sprint, unas 2h de media.
  • Día 7: Refinamiento del Backlog, de 1:30h a 2:30h.
  • Día 14: Sprint Review, de 30m a 1h
  • Día 14: Retro del Sprint, de 1h a 1:30h.
     Además cada sesión hay que prepararla, si no es tiempo desaprovechado. 
     Cuando no hay una sesión planeada, como PO hay que ocupar el tiempo en averiguar que quieren y esperan los stakeholder (SH), entregar producto finalizado en cada Sprint y obtener feedback, recoger las nuevas necesidades de los SH, incluirlas en el Backlog priorizadas y explicadas, mantener actualizado JIRA (herramienta de seguimiento que utilizamos para proyectos Agile), perseguir al equipo Scrum para que lo actualice.
     Sesiones y charlas con los Coach: para aprender, para saber si estás aplicando bien Agile, para pedir apoyo, para el proceso de control de la ira, para que se enteren de verdad de que ocurre en esta "santa casa"...

     El equipo Scrum no va mucho mejor. Cierto es que estamos siendo optimistas en la planificación de los Sprints, y queremos hacer más de lo que realmente podemos, como consecuencia siempre van con la lengua fuera y justitos, justitos. Algún Sprint Review, vemos cosas que se han acabado una hora antes. 
    De todas formas, incluso planificando menos por Sprint, hay que hacer todo el trabajo que implica un desarrollo de software en 2 semanas: analizar, diseñar, codificar, probar, documentar, cambios de última hora, puesta en entornos de prueba y producción, cumplir con la metodología del banco, hablar con terceros, etc... Y tienen las mismas sesiones que yo durante el Sprint, cambiando la comunidad de PO, por la suya de desarrolladores o SMs.

    ¿Dan las 2 semanas para esto? Si, dar lo que se dice dar, dan. Pero lo cierto es, que no paramos. Yo sólo los viernes de 2 a 3, me permito el lujo de relajarme y monear.

    Agile exige mucho de ti, del equipo, de todo el que de una forma u otra esté involucrado. Si alguien baja la guardia o el ritmo, el Sprint se resiente, a corto-medio plazo lo hará también la cantidad de producto entregado, y por lo tanto no se cumplirán los compromisos adquiridos con los SH.
    Como recompensa esa intensidad, exigencia y compromiso, entregamos producto viable y funcionando cada 2 semanas. A veces gusta más, a veces menos, a veces la DEMO falla, pero hace que siempre tengas sensación de avance.

    Personalmente me encanta y da esperanzas, y estoy viendo que lo mejor de las personas y los equipos sale cuando hay intensidad, cuando hay exigencia, y van unidos a la cooperación y la confianza. Y es Agile quién está provocando que se trabaje de esa forma.
    También entiendo que ahora mismo estamos en pleno aprendizaje, y según vayamos cogiendo experiencia, todo irá más rápido y fluido.
    Y bueno, si hay algo que me asusta un poco. Tengo la sensación de estar aplicando algo menos del 50% de Agile. Cuando lo hagamos al 100%, va a ser mucho más divertido, y, espero, un reto mayor...

miércoles, 6 de enero de 2016

100 días en Agile (I)


De Waterfall a Agile
     En la entidad financiera que en estos momentos dispone de mis servicios, estamos en un proceso de transformación de metodología de trabajo, para la construcción de software. Estamos cambiando de "Waterfall" (sigo sin entender el por qué de este nombre) a Agile con SAFe y Scrum. Ahí es ná...
     No quiero entrar en cual es mejor o peor, cada una es aplicable en un momento y proyecto determinados, sólo voy a decir que son diametralmente opuestas en cuanto a filosofía y cultura en la forma de trabajar.

    Nuestro (iba a poner mi, pero ya entenderéis por que no) equipo Scrum lleva alrededor de 100 días trabajando en Agile-Scrum, adaptándonos a y aprendiendo este nuevo estilo de trabajo. Algo más si contamos el primer mes y medio de arranque en el que "hicimos Agile". Y creo que, igual que a los gobiernos, es el momento de hacer un pequeño balance y sacar algunas conclusiones.

¿Qué me está pareciendo Agile?
     En 2 palabras: me entusiasma.
     Sin dejar de tener claro que no deja de ser una metodología más, con sus pros y contras, para alguien que se ha pasado casi 20 años haciendo proyectos de software con un método y formas de trabajar que sabes que no funcionan bien y que tiene deficiencias, y que ya sea por desidia, desconocimiento, impedimentos, o cualquier otro motivo, tienes que seguir aplicando una y otra vez, intentando no repetir los mismos errores, o al menos que sean diferentes en cada proyecto, supone una corriente de aire fresco muy muy esperada y necesitada.
     ¿Es la panacea? ¿Idílica? ¿Utópica? No, por supuesto. Si fuera perfecta, sería aburrida. Pero es intensa, exigente, orientada al cliente, y comprometedora. Cuando se aplica tal y como está definida, sin hacer híbridos que nos llevarán a la frustración, da grandes resultados.

100 días
     No es nada fácil hacer Agile. Cuanto más voy conociendo de esta metodología, más claro lo tengo. Sobre todo por el cambio cultural tan brutal que implica, y ahora empiezo a entender porque puede costar años su aplicación completa en una gran empresa.
     ¿Cuales son los pilares de Agile? Desde mi corta experiencia son 4:
  • Autogestión
  • Responsabilidad
  • Cooperación
  • Confianza
      La importancia de todas ellas es la misma. Alguno dirá "Pues vaya, como en cualquier trabajo en equipo". Si, pero no. Puedes trabajar con el sistema actual o cualquier otro sistema basado en Cadenas de Mando, pero si quieres hacer Agile en tu empresa, ve concienciándote que sin estas 4 palabras, vas a fracasar.

     En una de las daily uno de los desarrolladores hizo este comentario: "A ver no me volváis loco, que si tengo que hacer todo eso a la vez no termino ninguna", y me di cuenta de algo muy importante, nos hemos habituado a esperar a que alguien nos mande. Estamos acostumbrados a trabajar en una cultura de Cadena de Mando, donde el escalón superior va ordenando al siguiente qué debe hacer, e incluso quién y/o cómo debe hacerlo, dando un margen de libertad de decisión al siguiente escalón, más o menos amplio.
     Agile nos pide una Cadena de Responsabilidades, parece igual pero no es lo mismo. La relación entre los diferentes niveles es de Confianza en la Autogestión del trabajo que se es Responsable, y todos juntos Cooperando conseguirán el objetivo común: construir el Producto final con la mayor calidad. El éxito o el fracaso, es Responsabilidad de todos.
     ¿Qué bonito verdad? ¿Quién no está pensando en una comuna hippie? 

     Volviendo a nuestro desarrollador. Queremos que él mismo se gestione su trabajo. Hay una serie de tareas que realizar durante el Sprint, tú decides sobre cual vas a trabajar, tratando de seguir las prioridades establecidas, y cuando la acabes coges otra.  Es decir, le estábamos pidiendo que se responsabilizara de gestionar su tiempo, se autogestionara.
     Esto mismo se va llevando a cada nivel:
  • El equipo Scrum es responsable de cumplir con los objetivos a los que se ha comprometido en la planificación del Sprint: se realizó siguiendo las prioridades marcadas por el PO, y negociando con él qué se podía incluir y finalizar en el Spint.
  • El Scrum Master (SM) es responsable de facilitar las sesiones de Scrum (dayli, planificaciones, retrospectiva, ...), ayudar a quitar los impedimentos que encuentre el equipo Scrum, y guiar al equipo hacia la autogestión.
  • El PO es responsable de conocer perfectamente el Producto a construir, de negociar con los Stakeholder las prioridades del Producto, de explicar al equipo Scrum el Producto a construir, que el Backlog de Producto esté priorizado y bien definido, de colaborar con el equipo Scrum para planificar, revisar y detallar cada Sprint de forma que lo construido aporte valor al Producto final.
     Cada uno es responsable de su parte y de cooperar con el resto del equipo de proyecto (PO, SM, equipo Scrum) para lograr el objetivo común de construir el Producto esperado por el Stakeholder.

     Y esto sólo funcionará si cada uno de los componentes confía en los demás.
     Nadie "ordena" que hay que hacer, se establecen necesidades y prioridades.
     Cada uno se responsabiliza de su trabajo y entre todos se controla que se está haciendo.
     No hay una figura que marque ni un cuánto ni un cuándo, se negocia y colabora para hacer lo máximo en cada Sprint.

     Se me ha hecho largo, seguiré otro día. Ahí os dejo la semilla del cambio cultural propuesto por Agile...

lunes, 4 de enero de 2010

Opinion: Facebook y la confidencialidad

    ¿Que podría provocar una verdadera caída de las Redes Sociales (facebook, tuenti, twitter, ...) en la nueva Web 2.0? Alguno podría pensar que son una moda pasajera, otros que tocarán techo, otros que serán el aburrimiento y la desidia. Para mí será la falta de confidencialidad, la falta de privacidad de la información que la gente comparte. Esta reflexión viene provocada por varios artículos sobre Facebook que he leído, en los que se habla de la bajada en el número de nuevos usuarios, del tiempo de conexión, y de una nueva "ola" entre los usuarios que se está llamando unfriends, que consiste en eliminar de nuestra lista de "amigos" a aquellos que agregamos y que ahora resulta que no nos aportan nada, porque son aunténticos desconocidos.

    Quitando el hecho de que es obvio que no te va a aportar nada añadir como amigo a tu facebook a un tipejo o tipeja que vive a 15.000kms de ti, que no has visto en tu vida, que no has hablado con él, y que ya puede ser un psicópata o la más bella persona del mundo, que tú no tienes ni zorra; ¿cual es el verdadero peligro de añadirlo? ¿cual es el verdadero problema de darle acceso a tus datos? Porque eso es justamente lo que hacemos cuando añadimos a alguien a nuestra lista de amigos en el facebook: darle acceso a nuestros datos, privados o públicos, serios o de broma, a todos ellos.
    Veamos que ocurre cuando nos creamos una cuenta en facebook, en cuanto a privacidad. Por defecto Facebook nos pone en todas las opciones "Solo mis amigos", excepto en quien puede enviarme solicitudes de amistad que pone "Amigos de mis amigos". Hasta aquí todo bien podríamos pensar, nadie puede vernos a no ser que le invitemos a ser nuestro amigo, de hecho nadie puede siquiera encontrarnos por medio de las búsquedas, ya que en este momento no tenemos ni un sólo amigo en nuestra lista. Así que de momento estamos "seguros de nuestra privacidad".
    Iniciamos la ronda de invitaciones a todos nuestros colegas que nos han estado incordiando para que nos apuntemos a Facebook: "Weeee ya tengo facebook", "Holaaaaa", "Añádeme anda". Luego una vez que nos han aceptado, comenzamos la segunda fase invitando a amigos suyos que conocemos, y recibiendo solicitudes de amigos suyos que nos conocen. Quiero aclarar que "amigo" aquí es cualquiera que esté la lista de amigos, sea familiar, colega, compañero de curro, amigo, etc... Hasta aquí todo normal, y seguimos estando "seguros de nuestra privacidad". En la tercera fase, nos empezamos a meter en los jueguecitos esos tan chorras y divertidos que tiene el facebook, en los que están algunos amigos nuestros y que total, tampoco nos toman mucho tiempo. Nos apuntamos a grupos que nos parecen graciosos "Soy un cabrón, lo sé y estoy orgulloso", "Fans de Peter Griffin", "Yo también me rasco los huevos disimulando, pero se me nota", etc, etc, etc... Incluso a alguno serio "Contra el maltrato de los animales", "Contra la pedofilia", "Desarrolladores de páginas web".  Aquí tenemos nuestros agujeros en la privacidad.
    Empecemos por los "jueguecitos" y "aplicaciones" del facebook. Dentro de la configuración de privacidad, hay un apartado de Aplicaciones y sitios web, en el que tenemos un motón de opciones que vienen marcadas por defecto al crear nuestra cuenta. ¿Que significa tener marcados todos esos cuadraditos tan monos? Cada cuadradito marcado hace que las aplicaciones y juegos del facebook tengan acceso a esa información a través de tus amigos de facebook. Es decir, si yo tengo marcada la opción Información personal, hago el test "¿Cuanto sabes de Perico el de los Palotes?", y otro amigo mío también lo hace porque lo vé en mi muro y le parece divertido, a partir de ese momento ocurren dos cosas: por hacerlo yo ese test tiene acceso a la información de todos mis amigos que también tengan marcado Información personal, y por haberlo hecho mi amigo tiene acceso a mi información personal. ¡Que guay! Pensar ahora en todos los test moñas que habéis hecho, los juegos a los que estáis jugando, las tontás esas de "¡Envíame una cerveza/regalo/rosas/mierdas pinchas en un palo!". Pues a todos esos de una forma indirecta les habéis dado acceso a los datos de vuestros amigos, y vuestros amigos a los vuestros.
    Sigamos ahora con los grupos. Cuando te unes, o te haces fan o te haces admirador de un grupo en realidad lo estás añadiendo como amigo tuyo. El grupo en sí no es un usuario de facebook, por lo tanto en principio no debemos tener miedo de que "vea" nuestros datos, perooooo ¿es así en realidad? Sé que ahora cuando os cuente porqué tenemos otro roto en nuestra privacidad, pueda parecer rebuscado, y que alguno pensará 'paranoico de los huevos', o que 'eso no es posible', pero si tenéis un informático a mano (uno de verdad, no el que sabe instalar el windows y el office, y ya está. Ese no vale) preguntarle, y si sois capaces de traducir toda la verborrea técnica que soltará, llegaréis a la conclusión de que no es tan difícil. Bien vamos al lío. El verdadero peligro de unirse a un grupo es que se puede construir un programa que, por medio de la autorización que el grupo tiene, lea los datos disponibles de todos usuarios del facebook que forman parte de él. Recordar que el Grupo es como uno de tus amigos, y por lo tanto puede "ver" la información que tengas marcada como "Solo mis amigos"; así que con el programa adecuado podría leer todos tus datos en cuestión de segundos, almacenarla en una base de datos, y luego usarla para lo que me venga en gana: venderla a empresas para publicidad, para estudios de mercado, para saber las preferencias de la gente, para enviarte spam a tu correo electrónico... Entendéis ahora porque muchos grupos una de las primeras cosas que ponen es "Invita al menos a XX de tus amigos".
     Gracias a estos fallos en la privacidad, ya se está empezando a producir phising y spam en facebook. La forma más fácil de saber todo de tí, poder enviarte ofertas acorde a tus gustos, creencias, actividades, ideología,..., y todo clase de trucos publicitarios para captar clientes.Ya hay empresas que antes de contratar a alguien "investigan" en facebook tus datos, o le preguntan a "alguien" que los haya recopilado; y en base a ellos deciden si te contratan o no.
    Por último, hacer una mención especial, aunque algo corta, al tema de las fotos. Evitar dentro de lo posible ser etiquetados en las fotos, en cuanto os avise de que os han etiquetado en una, comprobar inmediatamente si puede verse o no esa foto, y eliminar el etiquetado. Y siempre que creéis un nuevo álbum, aseguraos de establecer el nivel de privacidad que queréis, ya que por defecto se crean con "Todos"; y eso puede ser muy peligroso...


    Sin embargo, no tenemos que echarnos las manos a la cabeza y dejarnos llevar por la histeria o la paranoia. Para el spam, envío masivo de mensajes publicitarios, facebook ya dispone de un sistema de detección que hace que si un usuario envía demasiados mensajes privados o invitaciones masivas, te marcará como spammer y puede bloquearte la cuenta. De hecho, en el inicio del facebook los juegos tenían en sus foros listas de usuarios que ponían su correo, y con un cortar y pegar enviabas una invitación a todos a la vez; ahora tienes que hacerlo uno a uno si no quieres que te bloqueen.
    Para la intromisión en nuestros datos personales, con crear un par de listas de amigos y algunos arrreglillos en la configuración de la privacidad, podemos subsanar ese agujero en la seguridad y estar tranquilos de que nuestros datos no son usados por nadie que no queramos nosotros.