martes, 22 de noviembre de 2011

Participación en Bcn Dev Conference 2011

El pasado jueves 17 participé en la Bcn Dev Conference 2011, un evento para desarrolladores con más de 1000 asistentes, celebrado en el Museu Maritim de Barcelona.


El título de la ponencia era Mejorando la gestión de los equipos de desarrollo, y en ella hablaba de la experiencia de los proyectos de mejora de procesos IT con CMMI, coordinados por Bdigital, dentro del marco del Plan Avanza.


La presentación, que llenó la sala principal, tuvo una buena acogida y me permitió el contacto con muchos desarrolladores.


Los puntos más importantes de la presentación fueron:
  • Qué es CMMI
  • Cuales son los problemas habituales de una PIME que produce software y cuales fueron las soluciones propuestas
  • Ejemplos de integración entre CMMI y SCRUM
  • Ejemplos de herramientas implementadas
  • Ejemplos de prácticas realizadas ágilmente
La verdad es que fue un gusto poder compartir mis experiencias con los demás desarrolladores y espero volver el año que viene.


También quería felicitar a la organización, pues fue su primer evento y les salió muy bien.


Existe más información en la página de Mejora de procesos, CMMI y SCRUM en la Web de Cynertia.

















domingo, 23 de octubre de 2011

Combinando CMMI y SCRUM (2)


Nota: este artículo se publicó originalmente en el LAB SCRUM de la web THEPROJECT.
Este tercer artículo concluye la serie dedicada a revisar la relación entre metodologías tradiciones y ágiles, y más concretamente a que pueden aportarse entre sí un modelo de procesos como CMMI y una metodología ágil como SCRUM.
Para ilustrar este último punto, se discutirán algunos aspectos que suelen discutirse durante las implantaciones de CMMI en entornos cercanos a SCRUM, además de dar algún ejemplo práctico de cómo se ha implementado.
Como desplegarlo (CMMI&SCRUM)
Aunque hace algunos años había la creencia extendida que CMMI y SCRUM eran vías paralelas, en el sentido que nunca se cruzarían, la aparición de literatura como [1] y de primeras implantaciones donde se combinaban [2] llevó a la comunidad CMMI (auditores, consultores y miembros de organizaciones con CMMI) a considerar que ambos enfoques no eran únicamente “compatibles”, sinó que podían amplificar sus fortalezas combinándose.
¡Las prácticas son el QUÉ, la metodología es el CÓMO!
Uno de los conceptos del modelo CMMI que pueden pasar inadvertidos a primera vista es que las prácticas (p.e. PP SP1.1 – Estimar el alcance del proyecto) no son actividades recomendadas de un proceso, sinó requisitos que deben cumplir las actividades de los procesos propios de cada organización.
Aunque sin conocer de cerca el modelo CMMI, el párrafo anterior pueda parecer confuso, se puede resumir en que “las prácticas CMMI son el QUÉ, y las actividades de los procesos de cada organización son el CÓMO”. Esto quiere decir que las actividades que realizamos pueden utilizar otros productos de trabajo y tareas que las sugeridas mientras se cumpla el objetivo. ¡De esta manera, es mucho más fácil entender el encaje de Scrum!
Ejemplos de las AP con ágil
Dos ejemplos de interpretación de prácticas CMMI con SCRUM son:
  • PP SP1.2 - Establish Estimates of Work Product and Task Attributes. Puede parecer que es obligatorio realizar un análisis de los requisitos y estimar usando los atributos de los productos de trabajo descubiertos, pero utilizando las técnicas de SCRUM (backlog, planning poker, análisis en la iteración) se puede conseguir perfectamente el objetivo.
  • PMC SP1.1 - Understand Requirements. La reunión de planificación de Sprint de los diferentes roles del proyecto (product owner, scrum master, etc.) junto con el Sprint Backlog cumplen perfectamente esta práctica. También se podría añadir una checklist para que los desarrolladores se aseguren que entienden los requisitos.
Las anteriores muestras se pueden ampliar fácilmente para demostrar que SCRUM y CMMI no sólo no son incompatibles, sinó que contrariamente se combinan muy bien para dar respuesta a equipos que quieren ser ágiles pero conservar un nivel de institucionalización de la metodología que asegure un funcionamiento uniforme entre los diferentes equipos de la organización.
Algunas implantaciones de CMMI y SCRUM
Para finalizar este artículo propongo una serie de productos de trabajo con herramientas libres que pueden dar respuesta a una implementación de SCRUM y CMMI para equipos pequeños y medios:
  • Estimación inicial y requisitos de alto nivel: OpenOffice Calc [3]
  • Análisis de requisitos: Wiki de Redmine [4]
  • Estimación detallada de tareas: OpenOffice Calc [3]
  • Carga automatizada en herramienta de seguimiento: Script de OpenOffice Calc [3]
  • Repositorio de código y documentación: Subversion [5] / Tortoise [6]
  • Pruebas automatizadas de interfaz (web): Selenium [7]
Para leer más

Participación en Bcn Dev Conference 2011

Hola a todos,

finalmente han escogido mi ponencia "MEJORANDO LA GESTIÓN DE LOS EQUIPOS DE DESARROLLO" para presentar en el Barcelona Developers Conference 2011.

El objetivo principal de dicha ponencia es mostrar las experiencias de mejora de procesos de software con CMMI e ISO 15504-SPICE en varias pimes, dentro del Plan Avanza, de la mano de Bdigital y Cynertia Consulting.

Dentro de esta presentación se destacarán aspectos de este proyecto, como la gestión del cambio, la buena sintonía entre modelos como CMMI y metodologías ágiles como SCRUM, los beneficios obtenidos y las problemáticas halladas.

Os esperamos en las sesiones BcnDevCon 2011, no dejeis de saludarnos si nos vemos por allí.

Alex Ballarin @ Cynertia Consulting

lunes, 3 de octubre de 2011

Combinando CMMI y SCRUM (I)


Estos posts han sido publicados inicialmente en el Lab "Project Management SCRUM" de TheProject.ws.


En el anterior artículo se introdujo el contexto de los diferentes tipos de metodologías, tanto tradicionales como ágiles, y algunos factores que determinan el éxito de su aplicación a las organizaciones.
En este artículo se profundiza en algunos de dichos factores y se comparan dos enfoques que han ganado mucha popularidad en última década: el modelo de madurez CMMI y la metodología de gestión de proyectos Ágiles.

Equipos grandes vs pequeños

El tamaño de los equipos, y como están organizados entre ellos, es uno de los factores más importantes que se debería tener en cuenta a la hora de escoger qué enfoque metodológico y organizativo queremos seguir.

Equipos pequeños, grandes y organizaciones de múltiples equipos pequeños

Los equipos pequeños, p.e. menores de 10 miembros, típicamente incorporan con más facilidad las metodologías ágiles como SCRUM debido a dos motivos fundamenteales: 1) afrontan proyectos con menos riesgo, y por tanto, con menores necesidades de mitigarlo mediante las prácticas de calidad y 2) tienen menos personal y eso dificulta su dedicación a las mencionadas prácticas de calidad.
Los equipos grandes, p.e. mayores de 15 o 20 personas, por contra muy probablemente realicen proyectos con un tamaño y riesgo mucho mayor que justifica la realización de muchas actividades de calidad, y además podrán tener miembros dedicados a actividades de calidad concreta (p.e. diseño de procesos, testing, auditorías, métricas). Estos equipos típicamente pueden adoptar y adaptar una metodología como RUP [1] y obtener el provecho de tener definidos los procesos de desarrollo donde participan equipos grandes con muchos roles diferentes.
Existen otros escenarios donde una organización mediana o grande tiene múltiples equipos que tienen poca o ninguna relación entre ellos. Esto puede pasar en una empresa que realice proyectos para clientes o bien, en menor grado, en una que desarrolle un producto complejo con equipos encargándose de componentes o subproductos. En ambos casos,
En estos escenarios, especialmente si no existe un departamento de procesos o una tradición en la gestión de procesos, suele ser más sencillo extender el modelo monoequipo de SCRUM a múltiples equipos debido a la facilidad que éste introduce para el seguimiento de los equipos (con las herramientas roadmap y sprint backlog).

Por tipos de proyecto (web, alta tecnología)

La naturaleza de los productos realizados por los proyectos es otro factor que determina que enfoque metodológico y organzativo es más ventajoso.
El desarrollo de software presenta condicionantes diferentes al de otro tipo de productos. En general son proyectos donde la tecnología es mucho más dinámica, la duración del proyecto y de las tareas individuales suele ser reducida, su coste fundamental viene dado por el esfuerzo del personal y la realización de cambios es relativamente rápida y barata.
Esto ha facilitado que muchos de los proyectos se hagan con una planificación muy deficiente y aún así alcancen parcialmente sus objetivos. Por otro lado, estas características fueron las que originaron las metodologías ágiles como SCRUM que responden bastante bien a estos condicionantes.
Los enfoques que indico, basados en el tamaño de los equipos o en el tipo de proyecto, no son en absoluto únicas sino tendencias de la industria basadas en la facilidad de implantación y las prácticas actuales. Cualquier organización con suficiente conocimiento de metodología y una visión clara de sus fortalezas, debilidades y objetivos puede adoptar un enfoque diferente con éxito.

Como se complementan

En la sección anterior se discute factores que recomiendan que una organización se base en una metodología tradicional (p.e. RUP) o en una ágil (p.e. SCRUM).
Tanto si se escoge la aproximación tradicional o la ágil, la implementación en cada organización puede ser más efectiva si se basa en un modelo de referencia que ayude a la organización a que dicha implementación no descuide ningún aspecto importante y a que el proceso definido sea más eficaz y se mantenga efectivo a lo largo del tiempo.
Considerando la metodología ágil más popular, SCRUM, y el modelo de madurez más extendido, CMMI, veamos cómo pueden complementarse. Para ello, es necesario conocer tanto las actividades, roles y productos de SCRUM [3] como la estructura y áreas de proceso de CMMI [4].
Las principales mejoras mutuas que puede traer el uso conjunto de SCRUM y CMMI son:

Mejoras que CMMI aporta a SCRUM

1.       CMMI ayuda a determinar de una manera más formal las mejoras que se pueden introducir en los procesos, p.e. mediante las métricas o las auditorías internas.
2.       La planificación formal ayuda a capturar y dar seguimiento a las decisiones de gestión del proyecto, especialmente cuando los proyectos y la organización crecen y la presión aumenta.
3.       Ayuda a involucrar de manera común al resto de la organización y a los actores externos, tanto en el seguimiento de los proyectos como en el aprendizaje y difusión de las mejoras.
4.       Define más claramente los roles a nivel de equipo y fuera de los equipos, hecho que facilita la asunción clara de las responsabilidades.
5.       Facilita que se determine la formación que no puede adquirirse autónomamente por los miembros de los equipos, especialmente importante en proyectos grandes.
6.       Normaliza la realización de ciertas tareas, de manera que puede reaprovecharse mejor el conocimiento, se es más eficiente y se evitan problemas de calidad.
7.       El desarrollo más formal de requisitos de cliente ayuda a estimar y planificar mejor el proyecto que un simple “roadmap” de producto.

Ventajas de implementar CMMI usando SCRUM

1.       Los procesos que se definen se suelen realizar realmente, ya que se diseñan ligeros y de un seguimiento frecuente y compartido por el equipo.
2.       El aprendizaje en los proyectos es continuo, mediante las reuniones SCRUM y las retrospectivas, y esto suele llevarse fácilmente de vuelta a los procesos.
3.       La verificación y el seguimiento a los riesgos se realizan de una manera manual mediante las reuniones del equipo y las demostraciones al cliente.
4.       Los proyectos pequeños no se ven penalizados por metodologías pesadas. Se pueden definir “perfiles de proyecto” que añadan nuevos procesos y actividades sólo para “proyectos grandes”.
5.       Los miembros del equipo están en contacto frecuente con el jefe de proyecto, hecho que le aporta información muy valiosa para la planificación y seguimiento del proyecto.
6.       La planificación de las tareas basadas en un roadmap ayuda a mantener el trabajo centrado en las prioridades de cada momento y evitar realizar trabajo innecesario.

Para leer más

sábado, 3 de septiembre de 2011

Metodologías ágiles vs tradicionales


Introducción

Mi experiencia en los proyectos tecnológicos comenzó en dos multinacionales del software y la tecnología, donde pude experimentar “en mis carnes” las glorias y las miserias de proyectos innovadores y en contextos organizativos frecuentemente complejos.

El abuso del “modelo heroico”, donde equipos altamente motivados pero no bien organizados, alcanzan los objetivos del proyecto al precio de un alto sobreesfuerzo personal que asumen (más o menos voluntariamente) los miembros del equipo, me hizo entrar con entusiasmo en el mundo de las metodologías de desarrollo y gestión de proyectos (RUP, PMBOK, SCRUM, Metrica3, etc.).

Conseguí trasladar este interés personal a la práctica profesional y me dediqué unos años a la venta de metodología y herramientas para el desarrollo y gestión de grandes proyectos. En este periodo tuve varias oportunidades para conocer las metodologías ágiles en sus inicios a través de practitioners entusiastas de estas y de tener con éstos encendidos debates acerca de cuál era el mejor enfoque.

En mi tercera etapa profesional dentro del mundo de la tecnología aplicada a la gestión, me dedico a la consultoría general sobre tecnología y a la mejora de procesos TIC en organizaciones que adoptan crecientemente metodologías ágiles. De hecho, la adopción de SCRUM que hace unos pocos años era marginal, ahora si no es mayoritaria si es muy frecuente.

Así pues, a partir del enfoque de alguien que ha conocido el caos (creativo), las metodologías “tradicionales” y también las metodologías ágiles, tanto como usuario como consultor que ha ayudado a implantarlas, espero hacer una aportación interesante a este LAB de SCRUM.

En una serie de tres artículos, me propongo introducir el contexto de las metodologías y los modelos, identificar como las aplicar con éxito las metodologías en función del contexto del equipo y como combinar el modelo CMMI y la metodología SCRUM.

Metodologías ágiles vs tradicionales

1. Historia de las metodologías y de los modelos.

Desde el inicio del desarrollo masivo de software [1] se ha querido encontrar las mejores prácticas y distribuir la experiencia obtenida a través de la práctica. Esto se ha hecho tradicionalmente mediante metodologías impulsadas por universidades y grandes empreses de tecnología a través de “metodologías”, como la programación estructurada (1969), SSADM (1980), RAD (1991), RUP y SCRUM (1998) o XP (1999).

Además, se han generado diferentes “modelos” de calidad que identifican actividades del desarrollo determinadas como buenas prácticas (el QUE) pero que no prescriben la manera de realizarlas concretamente (el COMO), de manera que los equipos que los adoptan pueden elegir cual es la manera de realizar estas prácticas que mejor se adapta a sus contextos y características.

2. Donde aplican cada uno

Simplificándolo mucho, se puede decir que las metodologías tradicionales (SSAD, RUP, etc.) ponen por encima de lo demás los objetivos de la definición y del control del trabajo, mientras que las metologías ágiles priman la libertad del equipo, la comunicación entre el cliente y el equipo, realizar sólo las tareas que aportan valor al cliente, y finalmente definir el trabajo tal y como éste se va realizando para el conocimiento adquirido durante su desarrollo evite realizar tareas innecesarias.

Una consideración importante es el tamaño de los equipos. La inmensa mayoría de los proyectos se realizan por empresas o equipos muy pequeños (p.e. 1-10 personas) donde las metodologías tradicionales son difíciles de aplicar, e incluso imposibles si se quiere hacer de manera exhaustiva.

Otro aspecto influyente es el contexto y misión de los equipos, que pueden ser estables en su actividad (p.e. desarrollo de un producto) o cambiar más o menos frecuentemente de miembros o proyecto.

3. Mitos y realidades

Mi experiencia pasando por muchas organizaciones que desarrollan software me dice varias cosas:
  1. Cada empresa es un mundo, lo que funciona en un sitio puede fracasar en otro.
  2. El compromiso de la dirección con la mejora está por encima de todo lo demás. Cuando toca cambiar los roles de las personas, introducir actividades que no se realizaban antes o atajar malas prácticas, si la dirección no marca públicamente el camino y acepta los problemas temporales que trae el cambio, la mejora fracasará parcial o totalmente.
  3. La experiencia y capacidad de las personas lo cambia todo, un gran método de trabajo no suplirá el valor de las personas.
  4. Una de las principales dificultades radica en el cambio de las personas. ¿Conseguimos que éstas entiendan y se adapten a los roles que les asigna la metodología? O por el contrario, el nuevo proceso se ve limitado a los cambios que los miembros estén dispuestos a aceptar.


Existen diversas creencias falsas que pueden perjudicar la adopción de una nueva metodología, sea del tipo que sea.
  1. Las metodologías tradicionales son pesadas y que suponen obligatoriamente un “todo o nada”.
  2. Las metodologías ágiles son más modernas y mejores que cualquiera de las tradicionales.
  3. Las actividades “de calidad” son inútiles y sólo funcionan en equipos grandes, no se adaptan a nuestros proyectos. Cualquier cosa que nos quite tiempo de tareas técnicas (programar, etc.) es una pérdida de tiempo.
  4. Trabajar con una metodología ágil no supone aplicar disciplina alguna, sinó que es una manera fácil de dar estructura su caos imperante sin añadir actividades de calidad. ¿Seguir SCRUM evita realizar testing?


Como resúmen, existen dos grandes conclusiones:
  1. No hay varitas mágicas para conseguir mejorar la calidad y rendimiento de los equipos de manera radical sin cambiar profundamente la manera de trabajar. Y esto no supone en absoluto que los cambios sean difíciles si la dirección y los miembros de la organización creen en ello decididamente.
  2. Cada organización en mundo. Aplicar una metodología estándar de manera rápida y sin trabajar abierta y reflexivamente con los miembros de un equipo suele ser una buena receta para el desastre.
En los siguientes artículos se entrará en detalle en los factores que pueden ayudar a aplicar correctamente los modelos y las metodologías a equipos según su tamaño, su objetivo o su contexto.

Para leer más


Servicios de Cynertia para el Coaching en metodología y gestión de proyectos.

viernes, 10 de junio de 2011

THP: Video ThePuzzle

Como primer resúmen gráfico del bonito evento-fiesta donde se presentó TheProject en sociedad, se ha lanzado esta primera entrega de una serie de videos ThePuzzle donde algunos de los nodos de TheProject hablan sobre este proyecto.

¡Una combinación de personas, proyectos y pasiones sorprendentes!

ThePuzzle from The Project on Vimeo.

lunes, 30 de mayo de 2011

TheProject ya llegó!

TheProject ya está aquí. 






De hecho, esta red de profesionales ya existía antes, pero ha querido ponerse en valor mediante una nueva web curiosa e innovadora. 

¿Cómo se entra en The Project?
Curiosamente, yo estoy dentro pero no puedo decir gran cosa de como entré. Quizás fue que dediqué esfuerzos a escribir blogs, participar en redes sociales profesionales, eventos, trabajar el SEO de mi empresa u otro motivo.




El Sr. Lobo de Pulp Fiction

El caso es que un buen día recibí un mensaje de Marta Padilla me puso en contacto con María Salido. Necesitaba alguien que le ayúdase para lanzar una plataforma colaborativa para la gestión de un proyecto sencillo pero estratégico. ¡Y lo necesitaba rápido!

Inicialmente no parecía un trabajo voluminoso pero percibí mucha energía y pasión en el contenido del proyecto, con lo cual me lancé a fondo. El reto era ponerlo en macha y ofrecer una calidad de servicio exquisita para usuarios muy sénior y con poco tiempo para aprender funcionalidades complejas.

Después de mucho sudor, horarios difusos, ilusión por ofrecer el mejor servicio posible y la inestimable colaboración de otros profesionales en la órbita de María, el proyecto salió adelante y fue un éxito.

No lo sabía, pero ya había entrado en The Project. Y cada vez estoy más a gusto dentro.

Àlex Ballarin

pd: en la fiesta de presentación de TheProject, María me describió como "alguien que siempre está ahí, como el Sr. Lobo de Pulp Fiction". La verdad es que nunca me habían descrito de una manera parecida, ¡pero me encanta!

miércoles, 25 de mayo de 2011

The Project - Red de consultoría

The Project está viniendo.


ThPresentación from The Project on Vimeo.

Sessió informativa del MÀSTER en IT PROJECT MANAGEMENT

Hola a tots,

ja podeu demanar informació del IT PROJECT MANAGEMENT. 2a edició.


Aquesta 2a edició del màster, que va ser un èxit en la seva primera edició 2010-2011, es proposa aportar els coneixements i l'experiència pràctica de professionals IT en la gestió de projectes, planificació estratègica de sistemes, seguretat IT, millora de processos, IT governance, etc.

Està dirigit als professionals IT que volen progressar en la seva carrera professional.

SESSIÓ INFORMATIVA DEL MÀSTER EN IT PROJECT MANAGEMENT

OBJECTIUS
• Aprendre de manera integral els conceptes, mètodes i tecnologies rellevants en la gestió de projectes informàtics.
• Gestionar de forma eficient una cartera de projectes en una organització, amb les conseqüents problemàtiques, diferents de la pròpia gestió individual d'un sol projecte.
• Estudiar el conjunt d'activitats que comporta la governança IT, un factor clau en les organitzacions que s'enfronten a la gestió d'un nombrós grup de projectes.
• Exposar els aspectes de gestió d' IT que són específics d'una organització amb orientació a serveis.

A QUI VA DIRIGIT
• Enginyers Informàtics Superiors o Tècnics.
• Titulats amb coneixements equivalents adquirits en l'exercici professional o amb formació addicional.
• Responsables dels Serveis d'Informació a les seves companyies que vulguin obtenir una titulació de màster.


MATÈRIES

Gestió de Projectes IT
Obligatòria. 10 ECTS. 60 hores lectives.
1. Disseny de projectes fases, mètodes
2. Tècniques d'estimació, planificació i seguiment
3. Lideratge i gestió d'equips
4. Gestió econòmica i finançera
5. Gestió de riscos

Gestió de la qualitat en projectes IT
Obligatòria. 5 ECTS. 30 hores lectives.
1. Qualitat del software i els sistemes: producte i procés
2. Models de qualitat: CMMI - DEV i CMMI - ACQ
3. Mesura de la qualitat

Planificació de sistemes d'informació corporatius
Obligatòria. 4 ECTS. 24 hores lectives.
1. Conceptes generals de IT governance
2. Planificació estratègica
3. Sistemes d'Informació a les organitzacions

Marcs per a la IT Governance
Obligatòria. 6 ECTS. 36 hores lectives.
1. Execució del pla de sistemes: COBIT, PPM - PMO
2. IT Enterprise Architecture

Complements a la IT governance
Obligatòria. 5 ECTS. 30 hores lectives.
1. Enginyeria de Requisits
2. Gestió de la seguretat

Introducció a la Service Science i Gestió de Serveis
Obligatòria. 7 ECTS. 42 hores lectives.
1. Visió general de la Service Science
2. Disseny i estratègia de serveis
3. Innovació en serveis

Models per a la gestió dels serveis
Obligatòria. 5 ECTS. 30 hores lectives.
1. CMMI - SERV
2. ITIL

Business Modelling
Obligatòria. 4 ECTS. 24 hores lectives.
1. Conceptes de modelització de processos
2. Notació BPMN (Business Process Modelling Notation)
3. Introducció a BPEL (Business Process Execution Language)

Service Oriented Computing
Obligatòria. 6 ECTS. 36 hores lectives.
1. SOA (Arquitectura Orientada a Serveis)
2. Web services
3. SaaS (Software as a Service)
4. Conceptes de Cloud Computing

Creativitat i Generació de noves idees
Obligatòria. 2 ECTS.
Modalitat online

Final IT Project
Obligatòria. 6 ECTS.