Esta entrada corresponde a la primera sesión en la que se ha trabajado el Tema 3, que trata las diferentes metodologías de desarrollo de sistemas. En esta ocasión no pude asistir a la clase presencial así que lo aprendido ha sido de manera autodidacta siguiendo la documentación de la asignatura y con la colaboración de los compañeros.
Esta introducción a la metodología, como toda introducción, consiste inicialmente en centrar el contexto y definir el tema a estudiar. Así, definimos metodología como el conjunto de métodos
seguidos en una investigación o exposición. Sin embargo, orientado a los
sistemas de la información y al desarrollo de software, la metodología es el
conjunto de herramientas y técnicas utilizadas para la creación del software.
Las metodologías tendrán como objetivos los siguientes:
- Determinar
los requisitos
- Proporcionar
un método de desarrollo
- Construir
un sistema a tiempo y con costes razonables
- Que el
sistema construido sea sencillo de mantener y esté bien documentado
- Que sea
capaz de identificar rápidamente los cambios necesarios
- Que el
sistema satisfaga a todas las partes implicadas en la creación de este
Además, toda metodología deberá seguir de forma genérica las fases de planificación, análisis, diseño, implantación y mantenimiento del sistema a construir. Así, a la hora de elegir una metodología se tendrán en cuenta las siguientes características deseables en estas:
- Existencia
de reglas
- Cobertura
de todo el ciclo de desarrollo
- Planificación
y control
- Fácil
formación sobre esta
- Determinación
de las herramientas a emplear
- Soporte
para el mantenimiento
- Soporte
para la reutilización
Actualmente se distingue entre las metodologías tradicionales y las actuales también denominadas ágiles. La
diferencia fundamental se centra en la reacción a los cambios. Mientras las
tradicionales plantean unos objetivos y generan un desarrollo en base a ellos,
las metodologías actuales son capaces de reaccionar a cambios de objetivos
producidos incluso durante la fase de desarrollo.
Este cambio de tradicionales a las ágiles actuales se basa en la necesidad de adaptarse a
los continuos cambios propuestos por los clientes de los S.I. Las metodologías
ágiles son más capaces de adaptarse a entornos cambiantes y reaccionar a las
continuas peticiones de los clientes.
Entre las metodologías tradicionales encontramos Merise, SSADM y Métrica v.3, siendo esta propia de la Administración Pública española.
Merise, desarrollada por le gobierno francés tiene en su ciclo de vida el estudio previo, estudio detallado (compuesto por análisis y diseño), realización y puesta en marcha y, por último, el mantenimiento.
SSADM (Structures Systems Analysis and Design Method) fue desarrollada por el gobierno británico y enfatiza en los usuarios, con el siguiente ciclo de vida: viabilidad, estudio del sistema actual, opciones de sistema del negocio, definición de requisitos, opciones técnicas, diseño lógico y, finalmente, diseño físico.
Métrica v.3, como ya se comentó, es la metodología oficial de desarrollo de la administración española. Su ciclo de vida se compone de: Planificación,
Desarrollo (Estudio de viabilidad, análisis, diseño,
construcción e implantación y aceptación) y mantenimiento.
Por otro lado encontramos las metodologías ágiles: XP (Programación externa), Crystal, Desarrollo adaptable, Scrum y Método de desarrollo de sistema dinámico (DSDM).
Scrum es una metodología indicada para proyectos que tengan muchos cambios de requisitos. Es muy simple y su ciclo de vida se divide en:
- Visión
general del producto a desarrollar, especificando aspectos según prioridad
- Desarrollo
en iteraciones (sprint) cada una de un mes de duración
- Finalizada
la iteración, es revisada por todo el personal
Se desarrollan los cambios de forma incremental y continua.
Por su parte, DSDM propone cinco fases: estudio de viabilidad, estudio del negocio, modelado funcional, diseño y construcción e implementación, siendo las tres últimas iterativas con realimentación.
Sabiendo que las metodologías ágiles son más flexibles y permiten una mejor adaptación a los cambios, siendo una característica muy necesaria en la actualidad ya que los requisitos son modificados con asiduidad, también existen varias críticas a estas metodologías.
Entre estas críticas se destacan la falta de estructura y documentación, la alta necesidad de encuentros entre cliente y desarrollador con altos costes para el cliente, además de que puede generar negociaciones contractuales más complejos.