Las empresas ahora operan en un entorno global que cambia rápidamente. Deben responder a nuevas oportunidades y mercados, condiciones económicas cambiantes y la aparición continua y de forma acelerada de nuevos competidores en productos y servicios. Las metodologías ágiles para el desarrollo de software hacen parte de la formación de casi todas las operaciones comerciales; por esto es necesario desarrollar un nuevo software rápidamente para aprovechar las nuevas oportunidades y responder a la presión competitiva.
Por lo tanto, el desarrollo y la entrega de software es el requisito más crítico para la mayoría de los sistemas comerciales. La agilidad en el software nace por la necesidad de permitir la adaptabilidad de los procesos de desarrollo, que no permitían las metodologías tradicionales. Esta agilidad se basa en dos aspectos fundamentales, uno es el de retrasar las decisiones y el otro es el de permitir una planificación adaptativa; sin necesidad de tener que rehacer todo el proyecto. La agilidad da la capacidad de adaptarse más eficazmente en un entorno cambiante. Es una forma de lidiar con un entorno incierto y turbulento y, en última instancia, tener éxito. Realmente se trata de pensar en cómo comprender lo que está sucediendo en el entorno actual, qué incertidumbre tiene y cómo adaptarse con el tiempo.
El manifiesto ágil
Kent Beck, ingeniero de software estadounidense, experto en los modelos de mejora de desarrollo de software basados en procesos y autor del libro Extreme Programming Explained, libro en el que exponía una nueva metodología denominada Extreme Programming, convocó el 12 de febrero de 2001 en Snowbird, Utah a diecisiete expertos críticos de los modelos de desarrollo de software para discutir técnicas y procesos de desarrollo de software.
En el encuentro se acuñó el término “métodos ágiles” para definir los métodos que surgieron como alternativa a las metodologías formales (CMMI, SPICE). Mismos que se consideraron excesivamente pesados y rígidos por su carácter normativo y su gran dependencia de la planificación detallada antes del desarrollo. Los miembros presentes en el encuentro resumieron en cuatro postulados los principios en los que se basan los métodos alternativos. Estos se convirtieron en el ya famoso Manifiesto Ágil. Hasta 2005, las posiciones radicales eran comunes entre los defensores de los modelos de proceso y los defensores de los modelos ágiles, quizás más preocupados por descalificar al otro que por estudiar sus métodos y saber que mejoran los suyos.
En el Manifiesto Ágil, firmado por Kent Beck, Robert C. Martin, Mike Beedle, Arie van Bennekum, Ron Jeffries, Alistair Cockburn, Ward Cunningham, Martin Fowler, James Grenning, Jim Highsmith, Andrew Hunt, Jon Kern, Brian Marick, Steve Mellor, Jeff Sutherland, Dave Thomas y Ken Schwaber, afirman que:
Valorar más a los individuos y sus interacciones que a los procesos y las herramientas.
Este es quizás el principio más importante del manifiesto. Por supuesto, los procesos ayudan a operar. Son una guía de funcionamiento. Las herramientas ayudan a mejorar la productividad, pero sin personas con los conocimientos técnicos y la actitud adecuada, no se producen resultados.
Las empresas tienden a manifestar que sus empleados son lo más importante, pero la realidad es que la teoría de la producción basada en procesos y la reingeniería de procesos ha hecho que los trabajadores involucrados en los proyectos sean más relevantes, ya que muchas de las actividades son realizadas gracias al aporte del conocimiento y el talento del que disponen los empleados, los roles en los procesos son intercambiables.
Los procesos deben ser una ayuda y un soporte para orientar el trabajo. Deben adaptarse a la organización, equipos y personas, y no al revés. La defensa extrema de los procesos lleva a postular que con ellos se pueden obtener resultados extraordinarios con personas mediocres, y lo cierto es que este principio es peligroso cuando el trabajo necesita creatividad e innovación. Con cambios ocurriendo en todas las áreas y de una forma muy rápida, es innegable que los procesos y herramientas de una organización competitiva deben evolucionar de manera ágil. Para ello, es fundamental que las personas propongan iniciativas de cambio o se adapten rápidamente a estos cambios.
Valorar más el software funcionando que la documentación exhaustiva
Ser capaz de comprender de antemano el comportamiento de la función esperada en la parte completa del sistema prototipo o el sistema final, proporciona una retroalimentación muy estimulante y rica, las ideas generadas por esta retroalimentación son inimaginables al principio. Antes de iniciar el proyecto, es difícil obtener un documento que contenga requisitos detallados. La declaración no indica que no sean necesarios.
Estos documentos son soporte de software, permiten la transferencia de conocimiento, registran información histórica, en muchos asuntos legales o regulatorios, son obligatorios, pero se debe enfatizar que estos documentos no son tan importantes como los productos funcionales. La importancia de agregar valor al producto es baja. Los documentos no pueden reemplazar, ni pueden aportar la riqueza y la creación de valor que se logra mediante la comunicación directa entre personas y la interacción con prototipos.
Por lo tanto, la documentación, no afectará directamente el valor del producto y debe minimizarse su uso, tanto como sea posible. Si la organización y el equipo se comunican a través de documentos, además de perder la riqueza que genera la interacción con el producto, estos documentos eventualmente serán utilizados como método de defensa entre los diferentes departamentos o trabajadores.
Valorar más la colaboración con el cliente que la negociación contractual
Las prácticas ágiles son especialmente adecuadas para productos que son difíciles de definir en detalle al principio, o si se definen de esta manera, el valor final será menor que un producto que recibe una retroalimentación constante durante el proceso de desarrollo. También son adecuadas para situaciones en las que los requisitos se vuelven muy inestables debido a la velocidad del entorno empresarial.
Para un desarrollo ágil, el valor del resultado no es el resultado de la ejecución de acuerdo con el control del proceso, sino el resultado realizado directamente en el producto. El modelo de contrato de trabajo no es adecuado con la agilidad, este no aumentará el valor del producto, solo permitirá establecer una línea divisoria entre responsabilidades y establecer un punto de referencia para las disputas contractuales que pueden ocurrir entre clientes y proveedores. En el desarrollo ágil, el cliente es un miembro más del equipo y este se integra y participará en el grupo de trabajo.
Valorar más la respuesta ante el cambio que seguir un plan
Para el modelo de desarrollo derivado de un entorno inestable en continua evolución y cambio, resulta beneficioso un desarrollo rápido y continuo que aporta mayor valor que monitorear y garantizar un plan prefabricado. El principal valor de la gestión ágil radica en la anticipación y la adaptación; es diferente de la gestión tradicional de proyectos que se centra en la planificación y control que deben evitar desviaciones del plan.
El desarrollo de software efectivo
El software es una herramienta que actualmente todos utilizamos de alguna u otra manera. Esto se debe a la gran cantidad de funciones que ofrece, en cualquier ámbito existirá un software para ayudarnos o facilitarnos cualquier tarea. Esto se lo debemos a los profesionales en programación e informática, que mediante la capacitación constante, desarrollan a diario nuevas tecnologías.
TECH Universidad Tecnológica se ha posicionado actualmente como la mayor universidad virtual del mundo. Esto se debe a su amplio portafolio educativo, donde no ha pasado por alto ninguna área profesional. En el caso de su Facultad de Informática se pueden encontrar programas como el Máster en Tecnología Específica de Telecomunicación y el Máster en Visual Analytics & Big Data. Sin embargo, para aquellos profesionales que busquen complementar sus conocimientos en el área de la programación y el desarrollo de software, no cabe duda que su mejor decisión será optar por el Máster en Ingeniería de Software y Sistemas de Información.