viernes, 16 de marzo de 2012

Spanair y el Cloud Computing:

El 28/1/2012 Spanair dejó de operar de manera súbita. Aunque muchos estaban al corriente de sus dificultades financieras, la gran mayoría del público la veía como una compañía asentada y fiable. La sorpresa fue mayúscula.

Este caso puede ser relevante en la discusión actual sobre el futuro de la computación. En los últimos años, y de manera más intensamente desde 2011, los términos "cloud computing", "ahorro energético", "pago por uso", "public cloud vs private cloud", etc. cada vez se oyen de manera más frecuente y parece que la cuestión no es si el modelo actual de  computación basado en poseer el software (libre o con licencia, de código abierto o cerrado) y operarlo va a continuar, sinó cuanto tiempo falta para la migración más o menos masiva al cloud.

Además de los actores consolidados de infraestructuras (Amazon EC2, Google, IBM, Microsoft, etc.) y de aplicaciones (Salesforce, Google Apps, Microsoft, WebEx, etc.) han aparecido multitud de "miniaplicaciones" verticales muy usadas para hacer casi de todo, p.e.:

  1. Compartir pantalla (p.e. join.me)
  2. Compartir documentos y presentaciones (p.e. Cacoo.com y Sinc.in)
  3. Mantener diagramas Gantt de proyecto (p.e. Gantto.com)
  4. Y un larguísimo etcétera.


Muchos de estos proveedores, especialmente aquellos que ofrecen aplicaciones con una mínima complejidad y necesidad de integración, ponen a disposición de los usuarios APIs que permiten su integración e incluso el "backup" de datos.

Así pues, usando de "aquí y allá" las funcionalidades que más nos interesan, podemos integrarnos un mapa de aplicaciones independientemente de si estas están "operadas" por nosotros o por terceros. El esquema "best of breed", sin duda parece muy interesante.

Ahora bien, más allá de todos los matices de este modelo, la dudas básicas que se plantea es: 
  1. ¿qué pasa si un proveedor deja de operar así, sin más, como hizo Spanair? 
  2. Por mucho que tengamos garantías en forma de contratos, SLA, capacidad de hacer backup de datos, etc. ¿qué pasaría el día siguiente con esta aplicación?
  3. ¿Y con los datos? 
  4. ¿Y las integraciones con terceras aplicaciones?
Como es sabido, este modelo presenta sus incógnitas, por mucho que nos imaginemos que ciertos proveedores son "grandes y estables", como lo parecía Spanair para el público general.

Además de poder hacer "backup" de los datos, es conveniente para mitigar este riesgo poder cambiar de "operador de infraestructura" si el que usamos actualmente falla. Y eso, de momento sólo pasa por tener a mano el código.

¿Podemos usar aplicaciones (p.e. de código abierto) y operarlas en un cloud privado (p.e.Capside)? Puede ser una solución mientras los proveedores (o markets) no tienen en cuenta esta problemática.

sábado, 10 de marzo de 2012

Checklist para Scrum

En el blog de Javier Garzás he visto que Jeff Shuterland publica en su web un checklist que ayuda a comprobar la adherencia a las prácticas de Scrum.

Que un miembro de equipo de Scrum, p.e. Scrum Master, quiera conocer el grado de adherencia que tiene su equipo a Scrum parece totalmente razonable.

Por otro lado, la filosofía agile parece opuesta al "compliance". El Agile Manifesto habla de "Individuals and interactions over processes and tools". Por ello, ¿tendría sentido poder "puntuar" la adherencia de un equipo a Scrum, o bien, el provecho que está obteniendo de este proceso?

Otro punto es saber si una aproximación de certificación (como CMMI o ISO15504) puede usarse para conocer, mediante un esquema externo de puntuación. Este enfoque permite reforzar el seguimiento uniforme de Scrum en los proyectos, combinando CMMI y Agile, aunque supone hibridar Scrum con otros métodos.


viernes, 2 de marzo de 2012

Encuesta sobre el uso de SCRUM (3 de 4)


Encuesta sobre el uso de SCRUM (3 de 4)


Uso real de SCRUM

En el artículo anterior se analizaban las respuestas sobre las ventajas percibidas por Scrum, provinientes de la encuesta que pasé a algunos de mis alumnos del Máster en IT Project Management de la UPC School.
Como cada empresa adapta y evoluciona el uso de Scrum, quería saber cómo lo hacen en los aspectos básicos y aquí está el resultado.

P4.1. ¿Cuál es la duración de tus iteraciones?

Scrum recomienda que las iteraciones duren hasta un mes, aunque existen diferentes opiniones de cual es la duración óptima. Probablemente no haya una duración única recomendable para diferentes equipos y proyectos, por lo que la tendencia más aceptada corresponde a que cada equipo escoja la duración de sus iteraciones como parte del aprendizaje y evolución usando este proceso.
Una duración demasiado corta puede introducir una sobrecarga innecesaria de gestión, pruebas o reuniones, mientras que una duración excesiva puede hacer “perder el ritmo” tanto dentro del equipo como entre el equipo y el cliente.
Mi experiencia es que la mayoría de los grupos que han madurado Scrum suelen ir a una duración de 2 semanas, combinándolas con iteraciones de 3 semanas en caso que la iteración produzca una release. He visto otras duraciones y sí tengo constancia que casi todas las que iban más allá de 4 semanas provocaban problemas de desviaciones y bajadas en la confianza del equipo.
Los resultados de los que respondieron la encuesta parecen alinearse con esta tendencia, incluso manteniéndose muy estrictos en no superar las 2 semanas (2 de cada 3).
P4.1. ¿Cual es la duración de tus iteraciones?
Total
1. 1-2 semanas
8
2. 2-3 semanas
3
3. 1 mes
1
Respuestas
12
 

P4.2. ¿Cual es el tamaño de un equipo?

El tamaño de los equipos normalmente queda fuera del alcance de decisión de los equipos y es un factor ligado usualmente al tamaño de la empresa. Las empresas más pequeñas suelen realizar proyectos de menor tamaño y su dimensión no les permite formar equipos grandes.
En el caso de los participantes, es unánime el tamaño pequeño de los equipos, aunque este dato no puede correlacionarse con otros como el tamaño de la empresa o de los proyectos al carecer de estos últimos datos.
P4.2. ¿Cual es el tamaño de un equipo?
Total
1. 3-5 miembros
12
2. 6-10 miembros
0
3. 10-15 miembros
0
4. Más de 16 miembros
0
Respuestas
12
 

P4.3. ¿Desarrolláis un producto o proyectos para terceros?

Otra de las tendencias sobre Scrum, combinado también con su posicionamiento, es que esta metodología se usa mayoritariamente en proyectos internos o de desarrollo de producto.
Esto se suele deber a que los proyectos externos suelen tener alcances definidos y cerrados por contrato, mientras que el desarrollo de producto encaja muy bien con las condiciones que obtienen el mejor resultado de Scrum, como la confianza entre los roles y la flexibilidad que se requiere.
Los resultados de esta pregunta también pueden interpretarse según este posicionamiento, la casi totalidad de los encuestados desarrolla producto propio, aunque algunos lo compaginan con proyectos externos.
P4.3. ¿Desarrollais un producto o proyectos para terceros?
Total
1. Sólo producto propio
9
2. Producto propio y proyectos
2
3. Sólo proyectos
1
Respuestas
12
 


P4.4. ¿Cuántos proyectos habéis desarrollado con SCRUM?

Para poder realizar la encuesta con garantías, hice un sondeo previo que indicaba que la mayoría de los alumnos conocían Scrum y muchos lo habían usado en proyectos.
Como se menciona en otras preguntas, la madurez en el uso de Scrum suele influir en algunos parámetros de uso, como el tamaño de las iteraciones o mejora en la confianza que éste genera en la organización.
En este caso, la mayoría de los participantes en la encuesta han usado poco Scrum, aunque el planteamiento de las preguntas no deja claro si alguno de estos no ha usado este proceso en proyectos reales.
P4.4. ¿Cuántos proyectos habeis desarrollado con SCRUM?
Total
1. Menos de 5
8
2. De 5 a 10
0
3. Más de 10
0
Sin respuesta
4
Respuestas
12
 


P4.5. ¿Qué herramientas usais para SCRUM?

Finalmente, se preguntó por el medio usado para realizar la planificación y seguimiento del Sprint.
Las tendencias más puristas optan por el uso de elementos físicos como los PostIt para mostrar la evolución del trabajo en un lugar permanente y compartido por el equipo. Otras herramientas de software pueden ser centralizadas, como hojas de cálculo, o trackers funcionando sobre una base de datos.
Los resultados de la encuesta muestran que el uso está polarizado entre PostIt, probablemente combinando Scrum con Kanban, mientras que los demás usan trackers. Aquí, además de realizar la observación, no puedo realizar correlaciones con otras respuestas. A nivel personal, soy un claro partidario de usar un tracker (probablemente soportado por una pantalla o televisión grande) pues la eventual pérdida de espontaneidad queda sobradamente compensada por el mejor control del avance, del trabajo, de la trazabilidad con el repositorio, etc.
Una opción que sería interesante añadir a la pregunta sería el uso combinado de PostIt más tracker, ya que probablemente sea usado por algunos encuestados.
P4.5. ¿Qué herramientas usais para SCRUM?
Total
1. PostIT
7
2. Pizarra
0
3. Hojas de cálculo
0
4. Trackers tipo Jira-Redmine
5
Respuestas
12
 

Conclusiones

Las conclusiones generales de estas respuestas no permiten hacer grandes inferencias ni presentan descubrimientos demasiado sorprendentes.
Se observa que los participantes tienen, en media, poca experiencia con Scrum y han participado en proyectos pequeños, generalmente de desarrollo de producto.


Para saber más

Post de Javier Garzás sobre la Encuesta anual Versionone sobre el uso de Agile 

Encuesta sobre el uso de SCRUM (2 de 4)


Encuesta sobre el uso de SCRUM (2 de 4)

En el artículo anterior se analizaban las respuestas sobre las ventajas percibidas por Scrum, provinientes de la encuesta que pasé a algunos de mis alumnos del Máster en IT Project Management de la UPC School.
En esta continuación del análisis, me centraré en el bloque de preguntas que trata sobre otra parte que no suele “airearse” demasiado: las dificultades reales de adopción y aprovechamiento de Scrum.

Desafíos de SCRUM

P3.1. Adecuación a mi proyecto o empresa.

La primera pregunta se plantea como encaja Scrum con la empresa del encuestado, donde pueden influir factores como la cultura de la empresa, de las personas concretas que forman el equipo del encuestado, si la empresa realiza proyectos externos o internos, o si existe poca o mucha volatilidad de los miembros de los equipos, entre otras.
La opinión mayoritaria es bastante clara, 2 de cada 3 encuestados opina que no se adapta bien (poco o nada). Buscando una explicación a esta respuesta, en las preguntas del bloque Ventajas de Scrum se identifica la tendencia que los equipos aprecian los beneficios internos de Scrum más que en la interacción con otras figuras de la empresa, posiblemente porque éstas no conozcan bien o crean en la efectividad de Scrum.
En este caso, podríamos encontrarnos con una explicación similar, los miembros de los equipos pueden pensar que “quien manda” no está por la labor de adaptarse a la filosofía de Scrum, más que la posibilidad que la empresa no fuese capaz de sacar un rendimiento a su uso, como principal impedimento para la adopción de Scrum.
P3.1. Adecuación a mi proyecto o empresa.
Total
1. Nada
2
2. Poco
6
3. Bastante
4
Respuestas
12
 

P3.2. Credibilidad de los métodos ágiles respecto a los tradicionales.

Esta segunda pregunta se interesa por una de las posibles dificultades más habituales de cualquier cambio en una organización, la falta de credibilidad en el nuevo modelo.
Ya decía Maquiavelo en El Principe, su célebre tratado sobre política, que los cambios suelen ser difíciles porque quienes creen que van a perder con ellos oponen resistencia y quienes van a ganar, no suelen saberlo y por tanto, no presionan a favor de éstos.
Centrándonos más en el terreno práctico, creo es es una opinión consensuada que las metodologías ágiles son principalmente “de techies para techies”. Muchos jefes de proyecto con largo recorrido, y los directores de área, suelen ver su función más como un “control de horas” donde los “cambios” deben ser minimizados porque sólo traen desviaciones, que una participación activa en el proyecto para maximizar el valor entregado al cliente y mantener el equilibrio entre alcance y recursos de manera proactiva.
Otra opción realista, y en ocasiones compatible, es pensar que Scrum puede no adaptarse realmente a la empresa y al tipo de relación que se establece con los clientes. Algunos factores comunmente identificados (ver [1], [2] y [3]) son:
·         Proyectos con una gran inversión en materiales
·         Proyectos con un alcance y fecha comprometidos a priori
·         Mantenimientos correctivos urgentes (¡Kanban!)
·         Etc.
La metodología en general es poco conocida, apreciada y vista como una herramienta efectiva para solucionar los males endémicos de muchos grupos de desarrollo. Dentro de esta visión pesimista, las metodologías de gestión de proyectos tradicionales han conseguido abrirse paso más que las ágiles, probablemente porque muchos de aquellos que tienen capacidad de decisión hoy en día sobre si adoptarlas o no, se vieron expuestos a ellas en funciones de desarrollo antes de la llegada de las metodologías ágiles.
P3.2. Credibilidad de los métodos ágiles respecto a los tradicionales.
Total
1. Nada
2
2. Poco
7
3. Bastante
3
Respuestas
12
 

P3.3. Falta de soporte de la gerencia.

Este es otro de los factores clásicos, y fatales, para el cambio en las organizaciones. Sin el soporte de la gerencia, habitualmente con sus propias preocupaciones y percepción de las prioridades, es muy difícil que ningún cambio llegue a buen puerto y sea sostenible.
En este caso, no se observa un escenario tan desfavorable, 5 de los 12 opina que la gerencia le apoya bastante o mucho. Aún así, es una cifra baja que puede explicar porque muchos proyectos de implantación de Scrum fracasan y porqué la percepción de los miembros de los equipos es pesimista respecto a la capacidad de la organización de adoptar esta metodología (P3.1).
P3.3. Falta de soporte de la gerencia.
Total
1. Nada
4
2. Poco
3
3. Bastante
3
4. Mucho
2
Respuestas
12
 

P3.4. Falta de conocimientos internos para implentar SCRUM.

Esta pregunta trata de identificar la preparación de los encuestados, tanto teórica como práctica, para implementar esta metodología y trabajar regularmente con ella.
Dado que no todos los encuestados han usado Scrum en sus empresas, se puede considerar normal que sólo el 50% considere que esto no sería un problema.
P3.4. Falta de conocimientos internos para implentar SCRUM.
Total
1. Nada
3
2. Poco
3
3. Bastante
3
4. Mucho
3
Respuestas
12
 

Conclusiones

A nivel general, teniendo en cuenta los beneficios que observan los encuestados sobre Scrum y las dificultades que afirman, podría pensarse que Scrum es una metodología que se ve útil pero que no tiene un gran conocimiento y aceptación fuera de los equipos, y a menudo también dentro de los propios equipos.
Para vencer este desconocimiento y falta de credibilidad, los desarrolladores que quieren implementarlo deberían llevar la argumentación sobre los beneficios de Scrum al contexto y preocupaciones de los gerentes. Algunas de estos factores deberían ser:
·         Capacidad de vender y planificar los proyectos con un riesgo económico asumible
·         Capacidad de dar un seguimiento claro conjuntamente los clientes
·         Posibilidad de mantener el control por parte de la dirección

Para leer más


Encuesta sobre el uso de SCRUM (1 de 4)


Encuesta sobre el uso de SCRUM (1 de 4)

Que Scrum es una tendencia creciente en los últimos años, y que además entre 2010 y 2011 se ha situado probablemente en el liderazgo de las metodologías de desarrollo de software, ya no es ningún secreto.
Aún sabiendo esto y teniendo a nuestra disposición gran cantidad de información sobre el proceso, técnicas de apoyo, herramientas y otros, sabemos relativamente poco sobre el impacto real en las empresas.
Yo he pasado por diferentes empresas que utilizaban Scrum, de manera intencionada o usando aproximaciones, y tenía mis opiniones pero quería tener una base de datos más amplia.
Por ello desarrollé una encuesta y la pasé a mis alumnos del Máster en IT Project Management de la UPC School, obteniendo 16 respuestas. A partir del análisis de los resultados, he pensado publicar una serie de posts que hoy comienzo. Estos son:
  • Post 1: Ventajas de SCRUM
  • Post 2: Desafíos de SCRUM
  • Post 3: Adaptaciones de SCRUM
  • Post 4: Uso de prácticas ágiles dentro de SCRUM
También me gustaría poder compartir esta encuesta con los demás, como una apertura de este lab a aquellos que lo leais.
Por último, quería agradecer a David Coloma su apoyo técnico en el análisis de la encuestra.

Ventajas de SCRUM

Las preguntas de esta sección se engloban bajo el grupo “P2. ¿En que aspectos de la gestión de los proyectos podría ayudarte SCRUM?”.

P2.1. A estabilizar las jornadas de trabajo.

El primer análisis de esta pregunta es que, sorprendentemente, un 60% de los encuestados afirmen que la aplicación de Scrum les ayuda nada o poco.
Si revisamos el número de proyectos realizados con Scrum (P4.4) vemos que son pocos. Otro factor relevante podría ser la falta de conocimientos que reporta un 50% de los encuestados en la pregunta P3.4.
Otros factores que podrían influir son la falta de credibilidad de Scrum (P3.2) y de apoyo de la gerencia (P3.3). Esto último es una señal de alarma, pues son factores “asesinos” de la efectividad del cambio en cualquier organización.
Curiosamente, las respuestas a las preguntas P2.3 y P2.4 parecen indicar que los equipos sí tienen voz sobre la planificación y el seguimiento, hechos que parecerían ser contradictorios con los resultados de esta pregunta.
P2.1. A estabilizar las jornadas de trabajo.
Total
1. Nada
3
2. Poco
4
3. Bastante
4
4. Mucho
1
Respuestas
12
 
 

P2.2. A clarificar la relación con el cliente y el comercial.

Otra de las ventajas que frecuentemente se destaca de Scrum es la mejora en la comunicación con los actores externos al equipo, como son frecuentemente el cliente y el comercial.
Los números de esta pregunta admiten poco margen de explicación, más del 80% de los encuestados opina que no mejora la comunicación. La explicación de este hecho podría venir por la baja credibilidad de Scrum en la organización (P3.2) y el limitado apoyo por la dirección (P3.3).
Estos factores podrían indicar que si bien el equipo usa internamente Scrum, la gerencia y comerciales no están muy implicados en la comunicación con los clientes.
P2.2. A clarificar la relación con el cliente y el comercial.
Total
1. Nada
5
2. Poco
5
3. Bastante
1
4. Mucho
1
Respuestas
12
 
              
                                      

P2.3. A planificar más racionalmente los proyectos.

A pesar que las anteriores preguntas, reflejaban un balance negativo, parece que los equipos si reconocen una clara mejora interna en la gestión de los proyectos. 2/3 de los encuestados afirma que Scrum le ayuda bastante o mucho a planificar más racionalmente los proyectos.
Esto parece indicar que los equipos sienten más control sobre su trabajo, más aún teniendo en cuenta la sensación de tener más voz sobre los aspectos de planificación que se refleja en la siguiente pregunta (P2.4).
P2.3. A planificar más racionalmente los proyectos.
Total
1. Nada
4
3. Bastante
6
4. Mucho
2
Respuestas
12
 
 

P2.4. A dar más voz al equipo durante el seguimiento del proyecto.

Otra de las características principales de las metodologías ágiles es sin duda el enfoque más horizontal, autónomo y participativo de los equipos. Esto debería influir en la sensación de ser tenido en cuenta a la hora de tomar las decisiones.
Efectivamente 2/3 de los encuestados afirma que Scrum le permite mejorar su capacidad de influencia bastante o mucho en los proyectos, es relevante que más del 40% eleva este grado de participación a “mucho”.
P2.4. A dar más voz al equipo durante el seguimiento del proyecto.
Total
1. Nada
2
2. Poco
2
3. Bastante
3
4. Mucho
5
Respuestas
12
 
 

Conclusiones

Las conclusiones principales, en cuanto a las ventajas, parecen centrarse en la mayor capacidad de autogestión y a la planificación más acertada de los proyectos.
Por contra, las ventajas generalmente afirmadas de mejorar la comunicación con los actores externos al equipo y a estabilizar las jornadas de trabajo parecen no observarse. Podrían ser relevantes respecto a este punto, la experiencia limitada de los equipos y el limitado soporte de la organización.
En el siguiente post nos centaremos explícitament en los problemas que se observan respecto a la adopción de Scrum.

Para leer más

Sendas encuestas sobre esta materia realizadas por el Software Engineering Institute [1] y por James Brett de ScrumMaster.com.au [2], se han realizado sobre bases más amplias de usuarios de Scrum y aportan otros aspectos de interés.