Chess - antoniomartel.com

Archivos de Autor: antoniomartel

Gestión basada en el talento vs. Gestión basada en los procesos

Cuando esto de la Informática empezaba hace ya unos cuantos años los proyectos software se gestionaban a base de la dedicación y el talento de los únicos que sabían programar por esa época. Normalmente eran unos matemáticos despistados que sin ningún método desarrollaban un montón de código utilizando sólo su ingenio. Su forma de trabajar no era repetible por otros y, si ellos no estaban, no había quién entendiera lo que allí habían dejado escrito ¿Cuánto iban a terminar en terminar el proyecto? Bueno, en un par de noches más estaría terminado.

En algunas empresas actuales se tiende a utilizar también este modelo. Se quiere que todo el equipo de trabajo esté formado por programadores ninja que saquen el trabajo adelante pase lo pase. No necesitamos ningún proceso a seguir ni ninguna metodología. Solo debemos apartarnos para no molestar. Ellos sabrán lo que hay que hacer. Puede parecer una solución ideal pero tiene algunos inconvenientes: Los programadores así no crecen en los árboles. Podríamos empezar a pagar más y más para atraer el mejor talento pero, aceptémoslo, nuestra empresa no es Google y por mucho que paguemos será imposible atraer todo el talento que necesitamos en nuestros proyectos.

Es también la forma de gestión de algunas start-up: Un equipo de programadores jóvenes y emprendedores capaces de abordar proyectos tecnológicos complejos. Llegarán tan lejos como bueno sea su software pero tendrán un problema para pasar al siguiente nivel repitiendo esos primeros éxitos cuando ellos ya no pueden formar parte del desarrollo de todos sus proyectos.

Todas las empresas de software necesitan poder repetir sus resultados aunque no cuenten siempre con el mismo equipo y escalar luego esa forma de trabajo a toda la organización para ir mejorando poco a poco la calidad de sus proyectos. Esto no es posible solo con la gestión del talento, necesitamos también utilizar procesos que nos ayuden a estabilizar la producción y obtener buenos resultados con todos los equipos de trabajo. Existen muchos procesos para la industria del desarrollo de software: CMMI, RUP, Extreme Programming, Scrum y otros métodos ágiles ¿Cuál es el tuyo?

¿Estás usando Scrum?

Veo a menudo en la llamada ‘comunidad Ágil’ demasiada discusión sobre si se está usando Scrum o si lo que estás haciendo puede llamarse Scrum o no en lugar de centrarse en si se está entregando trabajo con frecuencia y si este trabajo es lo que el cliente necesita. Esto es lo realmente importante, el proceso que se siga para lograrlo es secundario.

Es una especie de fundamentalismo que afecta a unos pocos que han aprendido un Scrum ‘único y verdadero’ y ellos deciden lo que está bien o está mal. Lo implementan de una manera poco flexible pretendiendo que de un plumazo toda la organización cambie su forma de trabajar. Ante cualquier queja contestarán: ‘Debe ser que no lo estás haciendo bien. En Ericsson y Spotify funciona perfectamente‘.

Hay otro tipo de implementador de Scrum, el llamado pragmático. Es el que, conociendo aún poco de Scrum, usa sólo algunos de los métodos porque considera que los otros son demasiado difíciles de implementar o que hay mejores formas de hacer esa parte en concreto. Es como ir a una clase de kárate y después de la primera lección decirle al instructor ‘Bueno, todo esto está muy bien, pero creo que puedo simplificarlo un poco para hacerlo mejor‘.

No hay nada de malo en adaptar Scrum a las necesidades de tu proyecto, de hecho es necesario y a veces quizás imprescindible. Comenzar con Scrum siguiendo al pie de la letra el libro también es importante. Aprender del patrón ideal o común a muchos proyectos para luego flexibilizarlo y adaptarlo a tus características es bueno si se mantienen de fondo los principios ágiles. Haz lo que funcione para ti o tu empresa pero mantente en ello y mejóralo con el tiempo.

Referencias: Pragmatism, Fundamentalism and Transformation – the Three Modes of Scrum

Trello, la gráfica burndown y Google Calendar

Probablemente sea siempre mejor un tablero físico, en una pizarra o pared de corcho, que un tablero Kanban virtual en la pantalla de nuestro ordenador pero es indudable que llevar este seguimiento en nuestro PC o portátil también tiene sus ventajas: mantener estadísticas automatizadas, guardar el historial de nuestro progreso y los cambios que hemos hecho almacenando los datos en la nube para que nosotros o nuestro cliente podamos ver el estado del proyecto desde su casa u oficina.

Hay muchos de estos tableros virtuales como KanbanFlow, Rally, Jira + Greenhopper o Pomodoro Daisuki, con más o menos ventajas o más o menos costosas pero hoy quería comentar sólo sobre una en partícular: Trello, del conocido blogger Joel Spolsky, un aplicación web gratuita para llevar los tableros Kanban de nuestros proyectos.

Utilizo Trello con cierta frecuencia por un par de proyectos, uno profesional y otro personal para el aprendizaje de idiomas. Permite llevar adelante cualquier tipo de proyecto, no sirve sólo para proyectos de desarrollo de software. Al crear un nuevo tablero aparecerán las tres columnas habituales (To Do, Doing y Done) pero aquí son tratadas como simples listas y a las que puedes cambiarle el nombre a lo que mejor se ajuste a tu proyecto, por ejemplo: Pendiente, En desarrollo, Revisado, Pre-explotación y Producción.
Una vez creadas las listas para tu proyecto comenzarás a crear las tareas que van en ellas priorizándolas o cambiándola de columna con solo mover una encima de la otra o arrastrándolas a las columnas de al lado. También puedes invitar a otros usuarios de Gmail a formar parte del proyecto y asignarles tareas directamente. Estos usuarios serán notificados por email cada vez que alguien escriba un comentario a la tarea o la cambie de estado. Hay más funcionalidades interesantes para las tarjetas con tareas: añadir comentarios, imágenes o archivos adjuntos para cada tarea, mantener una checklist de comprobaciones con cada una de ellas o etiquetarlas individualmente con un color y nombre diferente por tipo de tarea. 
Puedes incluso ponerles una fecha de finalización a cada tarjeta colocada en el tablero, cambiando de color según se acerca la fatídica fecha. También, si activas la extensión para el calendario de Google, todas estas fechas aparecerán automáticamente en tu agenda para que las tengas siempre presentes (para activar esta función en tu calendario de Google echa un ojo a esta página de ayuda de Trello)
Pero lo que más me atrajo de Trello (además de ser gratuito) no son solo sus propias funcionalidades sino la posibilidad de mantener una gráfica burndown de forma automática con una aplicación externa: Burndown for Trello. Se trata de una web que, conectándose a la API proporcionada por Trello obtiene todos los datos y estadísticas de este tablero a medida que mueves las tarjetas de columna calculándote automáticamente esta gráfica:
y estas estadísticas:
Se muestran el total de tarjetas, cuantas quedan por hacer, qué porcentaje del total se ha hecho, cuantas horas estimadas quedan de trabajo por delante, en cuantos días se calcula que se hará todo el trabajo y en qué fecha, también estimada, estará completado el trabajo si seguimos avanzando a este ritmo ¡Espero que te sea útil!

Si te ha gustado este post, puedes encontrar más contenidos que expliquen Scrum de forma práctica y desde su base en mi libro en Amazon Curso práctico de Scrum: Algo más que teoría.

Libro en Amazon: Curso práctico de Scrum: Algo más que teoría
Libro en Amazon: Curso práctico de Scrum – Algo mas que teoría

Test no-oficial de Scrum

He creado estos días una pequeña aplicación web que permite al usuario probar los conocimientos que tiene sobre Scrum. Es un test similar al oficial de scrum.org y te permite, en español, poner a prueba tus conocimientos de Scrum.

Se trata de un test 10 preguntas aleatorias sobre este marco de trabajo y al final del mismo te indicará información sobre el número de respuestas correctas que has tenido y un enlace al test de prueba en inglés donde practicar antes de tomar el examen oficial para el certificado Professional Scrum Master I.

El test sirve como preparación para el examen PSM I y actualmente está disponible sólo para los lectores de mis 2 libros: Certificación Professional Scrum Master y Gestión práctica de proyectos con Scrum.

Información técnica:

El objetivo de hacer esta aplicación no era sólo hacer un test de Scrum útil al que esté pensando obtener la certificación, sino también como pet project para poner en práctica algo de Ruby on Rails y otras herramientas relacionadas. Les describo en los siguientes párrafos estas cuestiones más técnicas (pueden saltarse esta parte si les resulta aburrido):

La aplicación ha sido realizada con Ruby on Rails, un framework que promete una mejora de la productividad y del número de líneas de código sobre Java. Por otro lado, no ha sido desplegada en un Tomcat o JBoss sino en la ‘nube’ gracias a Heroku una de las primeras plataformas de computación en la nube. Para desplegar el código en Heroku bastaba con usar el comando git push para enviar el código fuente subido en mi cuenta de GitHub al repositorio remoto de Heroku.

La base de datos Postgres la facilitaba Heroku y, como no, también está en la nube. En esta base de datos no era necesario enviar scripts con sentencias SQL para crear las tablas y relaciones sino que Ruby on Rails deduce la estructura de tablas del modelo de clases de la aplicación y con él las crea. Si cambias un atributo de una clase, también cambiará el modelo de base de datos. Los registros con preguntas y respuestas iniciales no se crearon tampoco mediante sentencias SQL sino que en un único fichero se creaba cada registro con clases y objetos Ruby. Por ejemplo:

Question.delete_all
question = Question.create(:title => ‘El Scrum Master es:’, :value => 1, :order => 1)
question = Question.create(:title => ‘Los equipos Scrum son:’, :value => 1, :order => 2)



Si quieres aprender algo de Ruby on Rails, desplegar aplicaciones con Heroku y algunas cosas más sobre desarrollo Ágil y SaaS te recomiendo el libro ‘Engineering Long-Lasting Software‘ de David Patterson y Armando Fox. Muy recomendable.

Estadísticas de uso de Scrum (2014)

Hace algo más de un año, en abril de 2013, publicaba una serie de gráficas y estadísticas sobre el uso de Scrum en los portales de empleo y sus búsquedas en Internet en general. Para hacerlo comencé por la demanda de profesionales que pudieran tener metodologías o técnicas como Scrum, Kanban o TDD. Contabilicé en primer lugar el número de veces que aparecían términos como estos en portales de empleo españoles, británicos y alemanes. Estos fueron los resultados que obtuve en 2013:

Comparativa 2013 de portales de empleo para Scrum, Agile, Kanban, Lean, TDD o PMP

He vuelto a buscar este año las palabras Scrum, Agile, Kanban, Lean, TDD, PMP, RUP y Waterfall en los portales de empleo Infojobs.net de España, Monster.co.uk del Reino Unido y el Monster.de de Alemania obteniendo los siguientes porcentajes de variación:

Comparativa 2014 de portales de empleo para Scrum, Agile, Kanban, Lean, TDD o PMP

Los términos ‘ágiles’ como Scrum, Agile, Kanban o TDD tienen una importante subida entre los anuncios de demanda de empleo de los tres países. Habría que destacar que mientras que en España la demanda de empleos que requieren de conocimientos en Scrum sube un 35%, en el Reino Unido sólo sube un 8% pero en Alemania baja incluso un 20%. Esto quizás se deba a que son mercados más maduros en los que términos como Scrum y Kanban están siendo sustituidos por otros más genéricos como Agile, que sube un 170% en Alemania mientras que Kanban baja un 19% en Inglaterra y un 9% en Alemania.

He buscado también el uso de estas palabras en todo Internet con la ayuda de Google Trends. Aquí tienen la gráfica de las búsquedas realizadas en Google por ciudadanos de todo el mundo para los términos ‘scrum -espn -rugby’ (para eliminar los resultados del deporte), ‘pmp’ y ‘agile’. Esta es la gráfica:

Incluyo también la gráfica en la que se muestra de qué países provienen las visitas del término Scrum. Es asombroso comprobar cómo una gran parte de las búsquedas proceden de los países del norte de Europa y de otros importantes países en la producción de software como la India o Argentina.

Si te ha gustado este post, puedes encontrar más contenidos que expliquen Scrum de forma práctica y desde su base en mi libro en Amazon Curso práctico de Scrum: Algo más que teoría.

Libro en Amazon: Curso práctico de Scrum: Algo más que teoría
Libro en Amazon: Curso práctico de Scrum – Algo mas que teoría