En este blog podréis ir viendo el desarrollo día a día de un proyecto software bajo la Métrica v3 del grupo 3 de Ingeniería del Software III (Ingeniería Informática) de la Universidad Carlos III de Madrid.

domingo, 13 de enero de 2008

Desarrollo Software Ágil

Buenas noches a todos. En la entrada de hoy se va a hablar sobre el desarrollo de software ágil o lo que se conoce como métodos ágiles. Aunque no se ha comentado nada en la asignatura (debido al amplio temario que ya se tiene), nos parece un tema interesante y muy relacionado con la Ingeniería del Software. La descripción tratará de responder a la siguientes preguntas:
  1. ¿Qué son los métodos ágiles?
  2. ¿Para cúando son convenientes utilizarlos?

En cuanto a la primera pregunta, las técnicas basadas en métodos ágiles tratan de enfocar el desarrollo software al cambio de los requisitos (incluso aunque estos se sitúen ya dentro de la fase de diseño), de forma que el cliente se involucre en el trabajo (pues son las mayores fuentes de cambios en la creación de un sistema de información). Ahora la pregunta es inmediata, ¿cómo se enfoca el desarrollo al cambio? La idea es sencilla: teniendo lo antes posible un software que funcione, se podrá calcular el proceso completado en la construcción del sistema. Para ello es importante obtener las siguientes características:
  • El equipo de negocio y de desarrollo deben trabajar juntos y con una comunicación fluida y consistente, siendo lo más eficiente el trabajo "cara a cara".
  • Trabajar orientado a la simplicidad.
  • Intentar seguir patrones de diseño y la calidad técnica en la programación.
  • Intentar que el equipo se busque la forma de trabajo más eficiente y efectiva para su trabajo.
  • Enfocar el diseño de la arquitectura hacia componentes.

Respecto a la segunda pregunta, antes de todo hay que situar los antecedentes del desarrollo software, es decir, cómo estaba todo antes de aplicar estas nuevas técnicas. Básicamente el mundo de la ingeniería del software estaba en crisis: no había métodos de trabajo y producción predecibles y buenos ante la volatilidad de requisitos, los modelos de trabajo industriales eran difíciles de mapear a un proceso software y el boom del paradigma orientado a objetos hacía difícil de reutilizar los métodos de trabajo existentes. Por estas importantes razones se crearon las técnicas basadas en métodos ligeros, aunque también dio lugar a las basadas en CMM/CMMI (establecimiento y mejora de los procesos software) estudiadas en clase. Concretamente, el desarrollo software ligero intenta corregir la pérdida de la productividad (incluso en aumentarla) en los casos donde la especificación y validación de las necesidades del cliente cambia seriamente, pero también genera otra importante ventaja (directamente relacionada con la anterior): la disminución de la tasa de errores en los proyectos software, es decir, ahora hay un método de prevención o choque frente al cambio, que en proyectos que no lo tuviesen podría incluso ocasionar hasta la cancelación del mismo, llegando a provocar importantes pérdidas de dinero.

Pues hasta aquí la entrada de hoy. Espero que os sirva para entender a grosso
modo qué son los métodos ligeros, y si tenéis alguna duda, ya sabéis: ¡a los comentarios!

P.D.: Muchas gracias a Miguel Olivares por sus apuntes relacionados con este tema, obtenidos de la asignatura "Desarrollo de Herramientas Informáticas de Productividad".

No hay comentarios: