Una metodología es un conjunto integrado de técnicas y métodos que permite abordar de forma homogénea y abierta cada una de las actividades del ciclo de vida de un proyecto de desarrollo. Una definición estándar de metodología puede ser el conjunto de métodos que se utilizan en una determinada actividad con el fin de formalizarla y optimizarla. Determina los pasos a seguir y cómo realizarlos para finalizar una tarea.
- Optimiza el proceso y el producto software.
- Es una guía en la planificación y en el desarrollo del software.
- Define qué hacer, cómo y cuándo durante todo el desarrollo y mantenimiento de un proyecto.
Una metodología define una estrategia global para enfrentarse con el proyecto. Entre los elementos que forman parte de una metodología se pueden destacar:
- Fases: tareas a realizar en cada fase.
- Productos: E/S de cada fase, documentos.
- Procedimientos y herramientas: apoyo a la realización de cada tarea.
- Criterios de evaluación: del proceso y del producto. Saber si se han logrado los objetivos.
Las metodologías más utilizadas a nivel mundial en orden cronológico:
Década de los 70s
- Programación Estructurada Jackson desde 1975
Década de los 80s
- Structured Systems Analysis and Design Methodology (SSADM) desde 1980
- Structured Analysis and Design Technique (SADT) desde 1980
- Ingeniería de la Información (IE/IEM) desde 1981
Década de los 90s
- Rapid Application Development (RAD) desde 1991.
- Programación Orientada a Objetos (OOP) a lo largo de la década de los 90's
- Virtual Finite State Machine (VFSM) desde 1990s
- Dynamic Systems Development Method desarrollado en UK desde 1995.
- Rational Unified Process (RUP) desde 1999
Año 2000 en adelante
- Extreme Programming (XP) desde 1999
- Enterprise Unified Process (EUP) extensiones RUP desde 2002
- Constructionist Design Methodology (CDM) desde 2004 por Kristinn R. Thórisson
- Agile Unified Process (AUP) desde 2005 por Scott Ambler
Modelos de procesos en el desarrollo de software:
- La necesidad de solucionar un problema (surgimiento de necesidades)
- Inicio del proceso (desarrollo), dentro de esta fase se encuentra la definición del proyecto, el análisis del contexto, definición de requerimientos, diseño del sistema, construcción del sistema, pruebas e implantación.
- Operación y mantenimiento, donde realiza ajustes y se buscan fallas.
-
Diferencias entre los modelos de proceso convencionales y ágiles
Metodologías ágiles:
- Están basadas en heurística provenientes de prácticas de producción de códigos.
- Están preparadas para cambios durante el proyecto.
- Son impuestas internamente (por el equipo).
- Proceso menos controlado.
- No existe contrato tradicional.
-
- El cliente es parte del equipo de desarrollo.
- Grupos pequeños y trabajando en el mismo sitio.
- Menos énfasis en la arquitectura del software.
Metodologías convencionales:
- Basadas en normas provenientes de estándares.
- Presentan cierta resistencia a los cambios.
-
- Proceso mucho mas controlado, con numerosas políticas.
- Existe un contrato prefijado.
-
- El cliente interactúa con el equipo de desarrollo mediante reuniones.
- Grupos grandes y posiblemente distribuidos.
- La arquitectura del software es esencial y se expresa mediante modelos.
¿Que metodología es conveniente usar?
Tener metodologías diferentes para aplicar de acuerdo con el proyecto que se desarrolle resulta una idea interesante. Estas metodologías pueden involucrar prácticas tanto de metodologías ágiles como de metodologías tradicionales. De esta manera podríamos tener una metodología para cada proyecto, la problemática sería definir cada una de las prácticas, y en el momento preciso definir parámetros para saber cual usar.Es importante tener en cuenta que el uso de un método ágil no es para todos. Sin embargo, una de las principales ventajas de los métodos ágiles es su peso inicialmente ligero y por eso las personas que no estén acostumbradas a seguir procesos encuentran estas metodologías bastante agradables. Por otro lado, las metodologías tradicionales o convencionales permiten crear software de manera mas segura ya que estas entan mas establecidas según por sus pasos.