archivo

Archivos diarios: mayo 22, 2011

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.

La productividad es la capacidad de realizar una mayor cantidad de trabajo efectivo y útil por unidad de tiempo. Avanzar en esa línea tiene una serie de ventajas:

– La realización de un trabajo de mayor calidad sin tener que recurrir al overtime (que al final, si se sostiene durante demasiado tiempo, degenera en trabajo de peor calidad y desmotivación del personal).

– Poder disponer de más tiempo libre para poder aplicarlo donde entiendas que te puede resultar de mayor utilidad. Tiempo libre no es sinónimo de tareas de ocio (que también son importantes) sino también de poder continuar la evolución personal y profesional de cada uno.

¿Quién quiere ser productivo? Todo aquel que quiera ser efectivo en su trabajo, que sienta que las tareas que realiza sirven para algo, que quieren seguir mejorando, progresando, evolucionando y que deseen aprovechar el tiempo de la mejor forma posible.

¿Quién no quiere serlo? Los conformistas, los que sienten que no deben moverse o ir más lejos de su posición de comodidad.