Como algunos sabrán, el desarrollo Ágil (Agile) es una metodología de procesos que permite a las empresas producir software con más rapidez. Se trata de un método colaborativo incremental que apunta a producir software de alta calidad de manera oportuna y eficaz en función de costos.
En los comienzos del desarrollo ágil, las aplicaciones a las que este método estaba destinado tenían un alcance más reducido y usos de negocio relativamente directos. Hoy el panorama es completamente distinto. Puesto que las empresas quieren aplicar el desarrollo Ágil a un conjunto más amplio de proyectos, esta metodología debe adaptarse para abordar las numerosas complejidades técnicas, organizacionales y de negocios que hoy enfrentan las organizaciones de desarrollo de software.
Para analizar adecuadamente el costo de la transición hacia el desarrollo Ágil, se deben considerar los costos y los beneficios, teniendo en cuenta las reducciones de los riesgos del desarrollo. Por ejemplo, un compromiso con una metodología Ágil requiere cambiar la forma en que los ingenieros dedican su tiempo y encaran todas las actividades de desarrollo. Aquí se destacan algunos puntos clave que explican por qué existe ese cambio de foco, que incluye:
– Personas e interacciones (más que procesos y herramientas)
– Software que funcione (más que documentación integral)
– Colaboración con clientes (más que negociación de contratos)
– Respuesta al cambio (más que seguir un plan)
Quien se proponga adoptar esta metodología también deberá considerar el papel que desempeñará como gerente. La mayoría de los gerentes de programas de desarrollo Ágil y ligero suelen adoptar el enfoque de mantenerse al margen. Permiten a los miembros del equipo liderar aspectos específicos de proyectos para promover el tipo de entorno que se necesita para permitir una transición más exitosa al desarrollo Ágil y ligero.
El desarrollo Ágil aumenta la eficiencia de un equipo en la provisión de software, lo cual se traduce en satisfacción de clientes y aumento de los ingresos. La eficiencia tiene que ver con eliminar el desperdicio en una actividad en particular, que puede o no tener un impacto en el objetivo más amplio. Sin embargo, la eficiencia no siempre implica que uno esté haciendo lo correcto o haciendo las cosas en el orden correcto. La eficiencia es un concepto más grande y más importante, porque supone lograr un objetivo.
Entre otros principios importantes del desarrollo Ágil se encuentran el involucramiento constante de los clientes y, como se mencionó brevemente, la colaboración permanente de los equipos. El feedback de las partes interesadas acerca del código en funcionamiento y el desarrollo con test-drive son también aspectos esenciales para implementar un proyecto exitoso. Las partes interesadas –que incluyen al personal de negocios, operaciones y soporte, y otros profesionales de TI empresarial-deben participar desde el principio y con frecuencia en los proyectos de desarrollo ágil durante toda la vida del proyecto, con un rol activo en las iniciativas de modelado y testeo, y a veces incluso en la fase de desarrollo. Esta activa participación les permite ver cómo funcionan los esfuerzos de desarrollo de software “desde adentro”. Motiva a los desarrolladores a concentrarse en las prioridades de sus interlocutores en lugar de sus propias prioridades que tal vez no mejoren el uso que se da al producto.
Estos principios sirven de base a las empresas para prepararse y responder rápidamente a los requisitos cambiantes. Por ejemplo, utilizando Scrum (in método de desarrollo ágil que toma su nombre prestado de una jugada de rugby), se lleva a cabo una reunión (“scrum”) diaria con todos las partes interesadas. Todos los días, los desarrolladores responden tres preguntas:
1. ¿Qué ha hecho desde ayer?
2. ¿Qué planea hacer hasta mañana?
3. ¿Tiene algún problema que le impida cumplir su objetivo?
Esta reunión diaria asegura que todos asuman la rendición de cuentas por lo que están haciendo y que sus compañeros de equipo puedan señalar errores e incompatibilidades antes de que se conviertan en catástrofes. También asegura que alguien pueda responder de inmediato si surge alguna emergencia.
Al Desarrollo Ágil suele criticársele ser indisciplinado: algo muy alejado de la realidad. La comunicación y la disciplina son los dos componentes fundamentales del Desarrollo Ágil. Cuanto más corto el ciclo, mayor la disciplina que se requiere para hacerlo funcionar; por ejemplo, la capacidad de dar valor de negocios concreto y medible a modo de software que funcione en cada iteración.
Si bien la disciplina en el desarrollo de software sigue estando abierta a debate, hay algo indudable: el interés en el desarrollo ágil y magro va en aumento. Por ejemplo, en IBM solamente, en los últimos dos años, la cantidad de proyectos de desarrollo ágil aumentó de 5 a 200.
Sue McKinney es vicepresidente de transformación e integración de desarrollo en IBM. Actualmente es responsable de las actividades transformacionales de desarrollo en el Grupo de Software IBM.