| |
Metodologías de Desarrollo de Software
En la actualidad, PSL despliega dos principales metodologías de desarrollo de software: desarrollo de software ágil bajo SCRUM y desarrollo de software bajo RUP.
Desarrollo de Software Ágil
Las metodologías ágiles, muy en boga en los EEUU y otros mercados altamente dinámicos e innovadores, buscan desarrollar aplicaciones de manera rápida y adaptativa. Contrario a metodologías que buscan ser predictivas como las aproximación RUP o “en cascada”, las metodologías agiles (SCRUM, XP) no pretenden conceptualizar y diseñar la totalidad de un software previo a comenzar su construcción o codificación. Por el contrario, reconocen que un software es un emprendimiento flexible, que durante su ciclo de construcción sufrirá cambios, modificaciones y mejoras. Aun más, reconocen que estos cambios no pueden ser anticipados, pues se generan en reacción a ambientes dinámicos tanto creativos (a la gente se le ocurren nuevas ideas a medida que avanza el proyecto) como de mercado (el software debe reaccionar a condiciones cambiantes generadas de manera impredecible por nuestros competidores).
Por esta razón, las aproximaciones ágiles apuntan a desarrollar software de manera iterativa e incremental, entregándole al cliente software ejecutable cada mes, el cual el cliente puede explorar, criticar y mejorar. Como cada iteración (o SPRINT) incorpora nuevos conocimientos, se despliega un proceso de constante aprendizaje y refinamiento del producto final. Adicionalmente, como se entrega software de manera temprana, el cliente puede comenzar a utilizar la herramienta y acelerar así el retorno sobre la inversión. Igualmente, esta aproximación mantiene la moral del equipo en alto, puesto que el producto se logra tangibilizar y utilizar desde un principio –distinto a tantos desarrollos donde después de meses lo único que se tiene son documentos técnicos en papel.
A nuestro concepto, la principal razón por la cual esta metodología todavía no domina el mercado Latinoamericano parte de la necesidad expresada por muchos clientes de conocer el costo total del desarrollo antes de comenzarlo. Las metodologías ágiles, si bien son muy eficientes y en el análisis final son más eficientes que las metodologías predictivas, por su definición misma no pueden predecir con exactitud el costo total de un proyecto.
Desarrollo de Software bajo RUP
Por muchos años, PSL ha desplegado con éxito cientos de desarrollos de software bajo metodologías RUP (Rational Unified Process). Las metodologías RUP son predictivas, por lo que permiten estimar el esfuerzo requerido –y por ende el costo—para completar un proyecto. A grandes rasgos, la metodología RUP divide un proyecto en dos fases. Durante la primera, de Concepción y Elaboración, el cliente determina el alcance funcional del software en su totalidad, mientras que el equipo técnico diseña los fundamentos arquitectónicos y tecnológicos de la solución (algo así como diseñar los planos detallados de un edificio antes de construirlo). Con esta información, PSL puede someter los diseños y requerimientos técnicos elicitados a simuladores de esfuerzo propietarios. Como PSL es una empresa que controla estadísticamente su procesos, podemos proyectar el esfuerzo requerido (en puntos de función y luego en líneas de código) para producir un software particular. Una vez esto ocurra, podemos pactar con el cliente un rango de precio fijo para la elaboración del proyecto.
Bajo el esquema RUP, los cambios o mejoras que se quieran agregar al software una vez su construcción se manejan bajo esquemas de control de cambios, donde el impacto del cambio es estimado y el costo de éste es previamente aprobado por el cliente. Debido al control estricto de los cambios y a la documentación de requerimientos en altos niveles de detalle, los esquemas RUP son más pesados de administrar, lo que hace que parte de los recursos destinados al proyecto se destinen a tareas ejecutivas y de producción de documentos, en vez de dedicarse a la elaboración de código funcional –por ende, en el análisis final, los esquemas ágiles son más costo-efectivos que las aproximaciones RUP, a pesar de que bajo esquemas ágiles el costo total no se sabe desde el comienzo. Bajo esta misma lógica, los proyectos RUP también tienden a ser menos flexibles y adaptativos. Sin embargo, producen también resultados de altísima calidad y robustez.
Describir en detalle cada una de las metodologías de desarrollo de software usadas en PSL tomaría mucho más tiempo y espacio. Para conocer más sobre cómo PSL podría ayudar a su compañía desplegando servicios de desarrollo de software de clase mundial, por favor, no dude en contactarnos y con gusto exploraremos éstos temas directamente con usted.
|