Metodologías para mejorar los procesos de programación

Una muestra de las ventajas en las empresas

Adaptables, ágiles y de peso ligero son los nuevos conceptos que que se manejan actualmente en las metodologías de programación. Su reacción ante los diferentes tipos de datos introducidos por el usuario, sus frecuentes iteraciones y test continuos y su puesta en marcha mediante pequeños equipos de trabajo que no dan tanta importancia a la documentación son los métodos empleados. Las denominadas metodologías de desarrollo ágil se emplean cada vez con mayor frecuencia en las organizaciones. Este concepto parte del consultor independiente, especializado en localizar y corregir fallos en el desarrollo de aplicaciones de los servicios bancarios y financieros. Cuando comienza a trabajar en un proyecto, éste suele encontrarse ya inmerso en graves problemas y la dirección de la empresa está generalmente dispuesta a intentar solucionarlo con las nuevas metodologías de desarrollo ágil que emplea. Agil es el término que se aplica a una cantidad cada vez mayor de metodologías con nombres como Scrum, Crystal, Adaptable, Desarrollo por características y Método de Desarrollo Dinámico de Sistemas (DSDM) (ver cuadro adjunto). Estos nuevos métodos de desarrollo se basan en la premisa de que si se contrata a desarrolladores competentes estarán más capacitados para escribir codificación. El resultado es que aunque existan dificultades graves, los desarrolladores no se enfrentarán a problemas de codificación, sino a cuestiones centradas en la propia organización y en la comunicación, y estos son los aspectos que intentan resolver los métodos de programación ágil. Un ejemplo práctico de la metodología se materializó en un proyecto que tenía graves problemas para su puesta en marcha. El equipo de trabajo estaba desarrollando un sistema complejo a nivel de empresa en un banco y se hallaba bajo una gran presión para producir resultados rápidamente. Tras ello se decidió entonces seguir el método Crystal y se trasladó al equipo de desarrollo a una instalación remota. Posteriormente, se entregó al equipo dos conjuntos de tarjetas indexadas en blanco, cada una con un color diferente, y pidió a los desarrolladores que escribieran en unas las cosas que hacían en el pasado y que aceleraban el desarrollo, mientras que en el otro grupo debían registrar los aspectos que les hacían más lentos Tras analizar las tarjetas, establecieron rápidamente un proceso que se centraba sólo en aquellas cosas que aceleraban el desarrollo, evitando al mismo tiempo las que hacían más lento el trabajo de las personas. Con este método comenzaron a realizar la iteración del sistema en unas pocas semanas y consiguieron cumplir con el plazo previsto. Aunque existen métodos diferentes de programación ágil, todos ellos presentan algunos aspectos comunes. Por una parte están destinados a producir software que puede modificarse rápidamente, y todos ellos especifican iteraciones cortas y maximizan la cantidad de tiempo empleado one-to-one. Por otro, también se concentran en mantener la moral del equipo, de tal manera que “no se puede hablar de metodologías ágiles sin hablar de la moral del equipo”. Los métodos de programación ágil difieren en muchos aspectos de la programación extrema (XP), aunque todas ellas son metodologías denominadas de “peso ligero”. Estas metodologías prescinden de gran parte del esfuerzo extra de desarrollo de software que hace más lentos a los programadores, así como de las grandes definiciones y la extensa documentación de los requerimientos del sistema. Sin embargo, XP difiere de los métodos de programación ágil en que es mucho más prescriptiva. Aunque XP ha existido en varias formas durante algunos años, las empresas de Tecnologías de la Información comienzan ahora a considerarla como una alternativa. El obstáculo más importante es que algunas prácticas prescritas por XP contradicen normas y políticas de TI establecidas desde hace mucho tiempo. Por ejemplo, XP especifica “programación en pares”, en la que dos programadores crean codificación codo con codo en una misma estación de trabajo. Aunque este tipo de programación parece bastante ineficiente, diversos estudios han confirmado que genera menos defectos de codificación, lo que se traduce en una mayor rapidez de respuesta. XP requiere también que el cliente para el que se escribe el software asuma a su vez un papel activo y permanente en el proceso de desarrollo, de tal manera que incluso se le puede pedir que escriba un test para probar el funcionamiento de una función solicitada antes de que sea realmente codificada. En XP los clientes escriben las funciones deseadas en tarjetas indexadas (una función por tarjeta), mientras que los desarrolladores calculan cuánto tiempo será necesario para desarrollar la función. En función de estas estimaciones, el cliente decide qué funciones hay que abordar primero. Posteriormente, el cliente escribe un test, al tiempo que los desarrolladores escriben la codificación necesaria para superar ese test. Aunque esto requiere un compromiso serio por parte del cliente, éste obtiene a cambio exactamente lo que ha pedido. El método aplicado por XP a la especificación de los requerimientos del sistema ahorra ya por sí solo un esfuerzo enorme. Sin embargo, XP no es perfecto y esta entidad bancaria ha estudiado otros métodos de programación ágil, ya que asegura que XP no aborda el problema del despliegue de aplicaciones. Programación de ‘peso ligero’ Los vendedores de software independientes y las nuevas empresas Internet que no tienen un proceso de desarrollo de software firmemente establecido se han convertido en pioneras en adoptar las metodologías de “peso ligero”. En opinión de los expertos, estos métodos funcionan mejor en proyectos en los que los requerimientos cambian de forma rápida y frecuente. En realidad, el posible paso a la programación ágil incide en uno de los aspectos más sensibles de las empresas: la necesidad de una comunicación franca y honesta. Durante años, el nivel TI corporativo y los usuarios han trabajado por separado. Las metodologías de ‘peso ligero’ sitúan a todo los agentes cara a cara y les mantienen ahí. Sistemas de programación agil -------------------------------------------- Programación Extrema. Este método, creado en torno a doce prácticas básicas, parte de la programación en pares a la “refactorización frecuente” y es más prescriptivo que otras metodologías. Scrum. Basada en el modelo de control de procesos empírico, la programación Scrum se realiza por equipos autodirigidos, al tiempo que prescinde de gran parte de la programación, de la definición de tareas y de informes de gestión avanzados. Crystal. Este método permite al equipo definir el proceso de desarrollo y optimizarlo en iteraciones subsiguientes hasta que es estable. Adaptable. Basada en teorías más adaptables que determinísticas, este método ofrece una serie de marcos o frameworks para aplicar principios de adaptación y promover la colaboración. Desarrollo por características. Este proceso de iteraciones cortas controlado por modelos surge en torno a la denominada característica o “feature”, una unidad que tiene significado para el cliente y el desarrollador y que es lo suficientemente pequeña para completarla rápidamente. Método de Desarrollo de Sistemas Dinámicos. El método DSDM (Dynamic Systems Development Method), concebido como una metodología de rápido desarrollo de aplicaciones, emplea un conjunto de normas o principios que incluyen equipos delegados, entrega frecuente de resultados, desarrollo incremental y tests integrados.

Contenido Patrocinado

Forma parte de nuestra comunidad

 

¿Te interesan nuestras conferencias?

 

 
Cobertura de nuestros encuentros
 
 
 
 
Lee aquí nuestra revista de canal

DealerWorld Digital