¿Qué tan ágiles somos?

Decidí escribir este artículo para realizar un análisis sobre el desarrollo ágil, su definición, sus bases y definir que tan ágiles podemos ser en el desarrollo de una solución.

El primer punto que voy a analizar es un interrogante, ¿Cuándo surgen las ideas sobre el desarrollo ágil?

Este interrogante se responde de forma muy simple, las ideas sobre el desarrollo ágil han estado presentes por muchos años, pero no ha sido hasta la década pasada que se han cristalizado y consolidado en un "movimiento". En esencia, los métodos ágiles se desarrollaron en un intento por superar las debilidades advertidas y reales en la ingenieria de software convencional. El desarrollo ágil proporciona beneficios importantes, pero recuerden es imposible aplicarlo a todos los proyectos, productos, personas y situaciones.

Bien, hasta este punto linda la introducción pero, es necesario, indispensable definir la ingenieria de software ágil, el concepto combina una filosofía y un conjunto de directrices de desarrollo. La filosofía busca la satisfacción del cliente y la entrega temprana de software incremental; equipos de proyecto pequeños y con alta motivación; métodos informales; un mínimo de productos de trabajo de la ingeniería del software y una simplicidad general del desarrollo.

En este punto me gustaría destacar algo sobre las directrices que propone el desarrollo ágil, se resalta la entrega sobre el análisis y diseño (¿les suena este punto?), comunicación activa entre desarrolladores y clientes (¿se aplica?).

¿Qué paso debo seguir para desarrollar ágil?

Sus actividades básicas son comunicación con el cliente, planeación, modelado, construcción, entrega y evolución, analizando el esquema conceptual desarrollado, una de las líneas objetivas es arrastrar el equipo a la construcción y entrega.

¿Los ingenieros de software deben ser ágiles?

Los ingenieros de software deben ser tan ágiles como para responder a un ambiente de negocios fluido, día a día uno experimenta muchas situaciones que comienzan desde el negocio y van fluctuando incesantemente a los largo del modelado de la solución, esto valida el principio de amoldamiento que tenemos que manejar de forma consistente para entregar a nuestro cliente un solución correcta con la mayor performance posible.

Siempre ocurre que cada uno de los ingenieros de software muestra una gran variedad de estilos de trabajo y diferencias significativas en su grado de habilidad, creatividad, orden y consistencia ahora como abordamos este tema en el marco de un proyecto de desarrollo, les voy a dejar un extracto de Cockburn.

"Cockburn argumenta que los modelos de proceso pueden enfrentar las debilidades comunes de la gente con disciplina o tolerancia, y que los modelos de proceso más prescriptivos eligen la disciplina. Como la consistencia en la acción es una debilidad humana, las metodologías que exigen un alto grado de disciplina son frágiles."

¿Qué es Agilidad?

Obviamente lo que quiero lograr con este concepto es abordar el marco del software, jeje.

Veamos una síntesis de lo que dice Jacobson:

"Agilidad se ha convertido actualmente en la palabra de moda en cuanto se describe un moderno procesos de software. Un equipo ágil es un equipo rápido que responde de manera apropiada a los cambios. En cualquier actividad de software se debe incluir un soporte para los cambios, esto es algo que adoptamos porque es el alma y corazón del software".

Bien según Jacobson la insistencia en el cambio es el conductor primordial hacia la agilidad, y este enfoque que lo desmienta cualquier persona implicada en el desarrollo de software.

Finalmente voy a dejar algunos principios importantes que define la Alianza Ágil:

  • Satisfacer al cliente mediante la entrega temprana y continua de software.
  • Entregar con frecuencia software en funcionamiento.
  • Gente de negocios y de desarrollo trabajando juntos a diario.
  • Construir en torno a personas motivadas.
  • Conversación cara a cara.
  • Atención continúa a la excelencia técnica y al buen diseño mejor la agilidad.
  • Simplicidad
  • Equipos auto organizados
  • Esquema de intervalos regulares en los equipos para mejoras generales.

Después de repasar el detalle de este artículo, tenemos que empezar a definir un esquema conceptual en donde nos encontramos, analizar que podemos utilizar de esta metodología y cultura de desarrollo o bien utilizar esta síntesis como información contextual.

Espero les sea de utilidad, hasta la próxima.

Referencias: Ingenieria de Software – Un enfoque práctico – Pressman.

Entradas más populares de este blog

7 arquetipos #Polymer 1.0 puntos esenciales prácticos

El potencial de la nube en 5 pasos desde Buenos Aires y junto al ecosistema regional

El potencial de la nube en 5 pasos, Evento en The Pool Mexico DF