archivo

Archivo de la etiqueta: Agile Software Development

Hace poco, publiqué un artículo donde comentaba la siguiente cita de Alistair Cockburn: “Todavía nos encontramos en la infancia de definir lo que realmente está ocurriendo en los proyectos de desarrollo de software”.

En su libro “Agile Software Development” continuaba dicha frase con lo siguiente: “La respuesta no está en los procesos, modelado o las matemáticas, aunque tengan influencia. La respuesta tiene mucho más que ver con el oficio, la comunidad, el orgullo y el aprendizaje”.

El planteamiento de Cockburn es agilista, ya que centra las claves principalmente en aspectos no formales y no le falta razón.

– Oficio: Ingeniería, artesanía, pueden parecer conceptos incompatibles, pero son perfectamente complementarios, de hecho el desarrollo de software debe tener parte de uno y de otro. En demasiadas ocasiones, sin embargo con proyectos donde no encontramos nada de cada uno o donde existe una desproporción importante entre ellos. El oficio permite alcanzar una situación de equilibrio (o por lo menos intentarlo o acercarse) en proyectos que son diferentes entre sí porque difícilmente nos encontraremos con dos iguales.

– Comunidad: El desarrollo de software necesita comunicación, cooperación y trabajo en equipo entre todas las partes que participan en el proyecto, entre sí y dentro de los propios equipos: proveedor, área usuaria, responsables técnicos del cliente, etc… Cuanto menos proporción encontremos de estos ingredientes, más complicado será sacar el trabajo adelante.

– Orgullo: Tengo que reconocer que me ha sorprendido que Cockburn haya considerado esta variable como clave, ya que se trata de un arma de doble filo. Sin embargo, si lo orientamos al amor propio, que no es más que otra forma de orgullo, la cosa cambia. El deseo de superarse, de hacer las cosas bien, de no dejarse vencer ante los problemas, crean actitud y eso es importante porque no solo de aptitud vive el desarrollo de software.

– Aprendizaje: Entendido como no dar nada por sentado, como el afán de aprovechar cada oportunidad para intentar ser mejor. Si se piensa que se está por encima de todo, se ignorarán probablemente las peculiaridades del proyecto, algo que no traerá probablemente buenos resultados porque el desarrollo de software son detalles.

Alistair Cockburn, firmante del manifiesto ágil, creador de la familia de metodologías Crystal, de la escala Cockburn de clasificación de proyectos e impulsor de la aplicación de la tećnica de casos de uso para la definición de la interacción actores y sistemas de información (casi nada), realiza la siguiente reflexión en su libro: “Agile Software Development” (traducción libre): “Todavía nos encontramos en la infancia de definir lo que realmente está ocurriendo en los proyectos de desarrollo de software”.

Es cierto que conocemos cosas importantes. Algunos ejemplos son los siguientes:

– Un software se considera de calidad si satisface las necesidades del usuario (principalmente) y se desarrolla dentro del presupuesto y plazo establecido (si ambos resultan razonables).

– Las personas, su correcta comunicación e interacción, la existencia de una relación de confianza, la motivación, la persecución de un fin común son fundamentales para que un proyecto tenga probabilidades de éxito.

– El desarrollo de software tiene una naturaleza adaptativa.

– Las metodologías proporcionan marcos de trabajo y no soluciones. Son un medio para alcanzar un fin y por tanto es conveniente que la técnica aplicada sea la más adecuada al proyecto, pero para conseguir el éxito son necesarias muchas variables más.

– La tecnología es un medio no un fin.

– Resulta complicado que en dos proyectos de desarrollo de software se produzcan las mismas contingencias.

Sin embargo, si todo fuera la aplicación de una serie de reglas todos los proyectos de desarrollo tendrían éxito y no es así. Solo disponemos de nuestra experiencia, nuestros conocimientos, de una serie de realidades que se podrían considerar comunes en los procesos de desarrollo (como las enumeradas anteriormente), una serie de metodologías y una serie de buenas prácticas. Todo lo anterior no es poco, pero como comenta Alistair Cockburn (aunque su cita sea del año 2001 y se haya progresado mucho desde entonces), todavía tenemos mucho que aprender, ya que hay que tener en cuenta que la disciplina de desarrollo de software es relativamente reciente.