Ajedrez - antoniomartel.com

Archivos por Etiqueta: Agile

Repaso a 2013

Finaliza el año 2013 y con él se cierran casi diez meses de publicaciones semanales en el blog. Han sido unas 45 entradas en las que he escrito sobre muchas cosas diferentes. La temática ha ido adaptándose a mi propia evolución, a mis intereses y por supuesto, también a los temas que percibía como más interesantes por los lectores.

Les dejo aquí un resumen los posts que han tenido más repercusión, empezando por los más leídos:

Los más comentados o con más likes:
Algunas entradas se escribieron durante el primer mes de existencia de este blog por lo que creo que no recibieron la suficiente audiencia. Ahí van:
Este es mi resumen del 2013 en este blog de dirección de proyectos. Sólo me queda desearles que tengan un gran 2014. Espero verles por aquí en este nuevo año.

5 Lessons learned in Project Management

Whenever I finish a project I try to have a look at what went wrong, what worked as a charm, and what I tried but it didn’t work out. Even when I get a final negative balance, the project may has been worth it if I don’t make the same mistakes again.

From some of these balances, I have extracted five of the most important lessons I’ve learned. Some are beginner mistakes, others should have been solved using simple logic but, by then, it wasn’t that evident to me. Here you go:

Agility works

It is difficult to quantify it but since I started using Scrum in my projects, the number of hours spent by functionality went down. Just doing the daily meeting for 15 minutes, maintaining project status chart that tells us if we are going well or not and a delivery every two weeks allowed us to obtain 80% of the benefits of Scrum. In addition, delivering consistently every two weeks, showing client what was agreed two weeks earlier, seemed to bring customers some comfort. In July or August, when meetings were not possible, the weekly delivery of a simple two-page document with the percentage of completion for each functionality and two paragraphs explaining the reason of those percentages, helped to restore credibility in a difficult project (especially in September when they could check that those percentages were real)

Everything is not positive in Scrum

It requires much more dedication of the Scrum Master than it would if you only were playing the role of project manager. Those 15 minutes at the daily meeting will tell you a lot about the difficulties that need to be solved to keep going forward. Trying to solve them will take you the rest of the morning.

On the other hand, having a delivery every 2 weeks can be exhausting. You cannot be sprinting for months and months. After six months you will be ending trotting (hopefully) You need to take this into account since the first planning.

Last but not least, Scrum is not magic. Whatever methodology you use you will need a team able to perform at a good level, willing to pitch in and eager to contribute. Teams like that do not grow on trees. If you already have one of those teams the project manager mission will be to interfere as little as possible.

Adding more workers to the team will slow it down

Well, this is already said for a lot of years in the book The Mythical Man-Month. Yet it is necessary to emphasize this, there are no much exceptions to this rule. No matter how tight the deadlines are: Nine women cannot make a baby in one month.

Who is the owner of all this?

No matter how we call it: identifying stakeholders, designating the product owner or involving the stakeholders. At the end we need to know who will actually validate. And I do not mean who will sign the bill. You also need to know who will use the product. The project will only be successful if after delivering it works and it is useful.

In certain project, the client’s director gave us all the documentation, validated partial deliveries, tested the entire application and congratulated us for the work done. Unfortunately, when his secretary attended the training session a week before sending the product to production, she said: ‘This is not going to help me: that one is not the right template and I need to collect different data than the one showed there’ . This meant a week of overtime and extra effort and the risk of putting into production environment a product that could be unstable.

Minimum Viable Product

If you already have something that may be useful to the user, give it to it, put it into production, take it out for sale. Do not wait until you have completed every single functionality. If you remember the Pareto principle, with only 20% of them you will obtain 80% of uses of your product.

While in production you will begin to get the impressions from its users. They will know more accurately what they really need and you will know what you did wrong and how you can improve it. If you bet on a single final delivery you will have only one bullet to hit the target (to do this would have saved us a lot of problems with the product mentioned in the previous point)

Those are my lessons learned. I hope someone will make the most of them.

3 artículos imprescindibles en el desarrollo de software

De cuando en cuando publicaré una entrada en este blog sobre aquellos artículos que me han parecido importantes y de los que pienso que merece la pena su lectura. Aquí van los tres primeros:

La nueva jerga de la programación en el blog Coding Horror

Jeff Atwood menciona en este post algunos de los términos que se han convertido en populares en la jerga informática desde hace algunos años. Creo que más que populares son sobre todo divertidos. Me gustan especialmente uno de ellos: La funcionalidad por jurisprudencia se utiliza para definir aquel error que lleva tanto tiempo en la aplicación que se convierte en el comportamiento esperado de la misma. Cuando deja de aparecer se solicita al departamento de soporte que ‘lo arregle’

4 signos de que Agile está en declive- La secuela

También me parece muy divertido y sobre todo muy claro este post sobre signos de declive de Agile, postagilismo y los principales errores que debemos evitar en esto de la agilidad. Al final del artículo aparece un listado de cuatros puntos que indica que repitamos como un mantra (muy de acuerdo con todos los puntos):
  1. No hay soluciones mágicas ni un único camino al éxito.
  2. Esto en un proceso de aprendizaje. Los fallos son inevitables y necesarios.
  3. Lo que quiera que sea lo que yo hago no tiene porque ser la clave del éxito para otros.
  4. Estoy dispuesto a ayudar a construir un puente entre desarrolladores y el negocio.

La verdadera calidad software la tienes que ver en los fuentes, en el código. No te fíes de nada más

En esta entrada de su blog Javier Garzás explica que dónde mejor podemos ver la verdadera calidad de un software es acudiendo directamente al código fuente. De él podremos deducir la calidad y el diseño que se ha seguido mejor que de la documentación y pdfs que acompañan cada entrega.
Recomiendo todo el blog de Javier, no sólo este post. Si le echan un vistazo a su historial de artículos podrán ver un montón de posts interesantes sobre el desarrollo de software en España. Seguro que verán reflejados en muchos de ellos su trabajo diario.

Jornada sobre cómo «Adoptar Scrum y sobrevivir al intento…»

El pasado jueves tuve el placer de dar una pequeña charla en el edificio IncubeGC de la SPEGC al departamento de Desarrollo e Innovación Técnológica de www.aidacanarias.com sobre la adopción de Scrum y los problemas que pueden encontrarse al comenzar a implantarlo.

Espero que les resultara de interés. Solo me queda desearles buena suerte en su implementación. No será fácil pero, con todo el empeño y esfuerzo que han puesto Emilio, Alejandro y sus compañeros, seguro que todo les irá bien.

Les dejo con enlace a la presentación en Prezi que utilicé y con algunas fotos del evento:

Presentación Prezi sobre cómo "Adoptar Scrum y sobrevivir al intento..."

Tiempo para preguntas en la charla sobre Scrum a AIDA Canarias

Lecciones aprendidas en la implementación de Scrum

La semana pasada escribía sobre las lecciones que había aprendido en la gestión de mis propios proyectos. Les dejo esta semana con un vídeo de la charla que Jeff Sutherland dio a los ingenieros de Google sobre sus lecciones aprendidas en la implementación de Scrum en lugares como Nokia, PatientKeeper o la propia Google. Les cuento en este post algunas de las cosas que me parecieron curiosas:

  • En Google se introdujo Scrum poco a poco por temor a la resistencia de sus ingenieros que podían pensar que introducir un proceso formal no les beneficiaría sino que les ralentizaría en su trabajo. Comenzaron la implementación de Scrum usando solo las prácticas más básicas.
  • Hubo incluso resistencia para las reuniones diarias para las que también pensaban que sería un tiempo invertido en vano. Comenzaron por reuniones que duraban mucho más de 15 minutos ya que cada ingeniero tardaba mucho tiempo en explicar lo que estaba haciendo y los problemas que estaba teniendo. Después de un tiempo, cuando todo el mundo había explicado su trabajo y era consciente del de los demás, las reuniones fueron mucho más fluidas.
  • La gráfica burndown les ayudaba a darse cuenta de cuál era el tiempo real que iban a emplear en desarrollar una funcionalidad. Para una funcionalidad a la que inicialmente asignaron un tiempo de 3 semanas y 40 puntos comprobaron que en la primera semana hicieron solo 8 puntos. En la segunda consiguieron terminar solo 7,5 puntos. Aún así, uno de los responsables pensaba que tendrían la funcionalidad lista en esas 3 semanas cuando la gráfica hacía evidente que no estaría en ese tiempo.
  • En un proyecto para el sector sanitario, usado por cientos de doctores y usuarios online, la definición de Hecho (Done) se fue ampliando desde pasar inicialmente por los test unitarios y de aceptación para luego añadir a la definición de verdaderamente Hecho o Terminado algo como ésto: ‘Poner en producción y si el teléfono no suena con incidencias durante 1 hora la nueva entrega estaba completa’
  • Para mi alivio, en su Scrum inicial simplificado no usaban gráfica burndown por cada iteración sino una por cada entrega. Esto me hizo sentir mejor ya que yo no había podido nunca mantener un tablero Kanban actualizado a diario para cada Sprint (sí, ya sé, Scrumbutophobia)

Suscríbete