Tuesday, February 10, 2015

Los dos pilares del desarrollo Ágil de software


Si, ya se, todo el mundo suele comentar que los pilares del desarrollo de software ágil son tres:

  • La cultura, principios y valores
  • Los métodos y artefactos de gestión (liturgias y procesos correspondientes a scrum, kanban, etc.)
  • Las prácticas técnicas y la búsqueda de la excelencia técnica (Pair programing, TDD, collective code ownership, Integración continua, etc.)

Pero tengo la sensación que para un desarrollo de software que aporte valor a los clientes y que sea sostenido en el tiempo, principalmente nos hacen falta dos, y desgraciadamente nos son los valores que más suelo ver...

Como siempre, no todo es blanco o negro así en cada momento en el tiempo cada pilar lo podemos tener más o menos interiorizado, por lo que a continuación comento varias de las combinaciones que he visto y el efecto que creo que tienen.

Cultura ágil interiorizada, métodos ágiles conocidos y en uso, prácticas técnicas muy mediocres, suele derivar en bola de lodo inmantenible, eso si, en menos tiempo y con más eficiencia que sin métodos ágiles.

Cultura ágil no interiorizada, métodos ágiles conocidos y en uso, prácticas técnicas correctas o buenas, deriva en un buen flujo de funcionalidades, pero que será complicado de mantener en el tiempo, puesto que será difícil conseguir un equipo de desarrollo estable y cohesionado. Así que funciona en estos momentos, pero es difícil de mantener en el tiempo.

Cultura ágil no interiorizada, métodos ágiles conocidos y en uso y practicas técnicas muy mediocres, es lo que se conoce como Scrum de chichinabo (tm) y es un fiasco total, a muy corto plazo puede dar alguna pequeña victoria, pero suele derivar en situaciones peores que antes del intento de implantación del desarrollo ágil.

Cultura ágil interiorizada, métodos ágiles mínimos, prácticas técnicas correctas o buenas, deriva en en un buen flujo de funcionalidades que se pueden mantener en el tiempo con un ritmo sostenible.


Vamos, que si tengo que elegir dos pilares, elijo, sin duda alguna, Cultura ágil y prácticas técnicas. Por cierto, que ese espíritu creo que encaja muy bien con la Programación Extrema y con el movimiento de Artesania de Software.


Cultura Ágil
+
Prácticas Técnicas


Ni que decir tiene que con una buena cultura se puede conseguir todo lo demás, pero hay que saber hacia donde se quiere ir y dedicarle tiempo y esfuerzo...

Por supuesto, esto es mi opinión y sólo está basada en los contextos que he ido viviendo, pero para eso es mi blog, no? ;-)

Si alguien conoce implantaciones en las que con mal conocimiento y prácticas técnicas se ha conseguido un buen resultado a medio largo plazo que me lo comente que seguro que tiene muchas cosas de las que se puede aprender.

8 comments:

Homo Minimus said...

Interesante reflexión, Eduardo.
Siento también que sin cultura todas las prácticas(no importa lo buenas que sean) fracasan, o, como dices tú, no son sostenibles.
Me has recordado a algo que leí hace tiempo sobre un gurú del management:
Jack Welch, el CEO de GE, en los 80 y 90, hizo una distinción similar a la tuya:
1. Cultura-valores 2. Excelencia técnica-competencia.
Creaba una matriz 2x2 combinando ambas dimensiones para valorar el trabajo de los directivos y otros empleados.
Si tenían cultura y competencia, ¡excelente!; si compartían la cultura-valores de GE, pero no eran competentes, se les daba otra oportunidad; si tenían competencia y resultados buenos, pero no cultura, era implacable: ¡los echaba!, porque sin valores asumidos por todos ninguna organización podía funcionar.

Parte de los valores de Jack Welch para GE incluían la transparencia en las comunicaciones, la reducción de estructura o jerarquías y el "empoderamiento" de los empleados, Valores que creo que también pertenecen a los métodos ágiles.

Como te comenté en nuestra larga charla en diciembre, creo que los métodos ágiles se podrían aplicar a otros mundos, como el de la consultoría, en el que solemos trabajar por proyectos.

Tengo una pregunta para ti.

¿Me podrías recomendar un par de buenos libros que me permitieran aplicar las ideas ágiles ( sobre todo su cultura, pero quizá también algunas técnicas o prácticas extrapolables) en mi próximo proyecto de consultoría (que no tiene nada que ver con el software)?

Juan Ignacio Rodríguez de León said...

El concepto "Scrum de chichinabo" es cojonudo y muy útil. Me lo apropio.

Enrique Martín Martín said...

No entiendo como llegas a esta conclusion:

"Cultura ágil no interiorizada, métodos ágiles conocidos y en uso, prácticas técnicas correctas o buenas, [...] puesto que será difícil conseguir un equipo de desarrollo estable y cohesionado.
"

¿Que tiene que ver el interiorizar la cultura agil y no tener un equipo de desarrollo estable?

Eduardo Ferro Aldama said...

Enrique, a lo que me refiero es que cuando no hay una cultura fuerte y unos valores compartidos por el equipo (transparencia, coraje, responsabilidad, etc), es difícil que el equipo trabaje a largo plazo de forma estable y corre el riesgo de convertirse en una competición de tener mejores prácticas, perdiendo el foco en el valor aportado y en el equipo.

Para mi, el valor aportado por un equipo es un efecto colateral del funcionamiento del equipo.

En cualquier caso, este caso de prácticas buenas y muy poca cultura, creo que se da muy, muy poco...

Eduardo Ferro Aldama said...

Homo Minimus, muy buen apunte...
Me voy a pensar qué libros te pueden cuadrar. Ya te digo algo.

Homo Minimus said...

Excelente.

Cesar Ortiz said...

Fantástica reflexión

Eduardo Ferro Aldama said...

Gracias Cesar :)