Aseguramiento de calidad.
Para asegurar la calidad, según Robert Martin…
“Usamos metodologías por que tenemos miedo a desarrollar un mal producto, miedo a desarrollar un producto de mala calidad, miedo a los retrasos <…>”
¿Por qué los proyectos fallan?
Desarrollar un producto de software con calidad es una tarea compleja que sin la planificación y las precauciones adecuadas puede llevarnos a disparatadas situaciones como sucede en la siguiente viñeta.

Cuando la noche es larga y la compañía escasa es mejor hacer dibujitos
Debido a estas situaciones se presenta la:
Utilización de métodos de análisis y diseño
Metodologías de desarrollo.
Las metodologías aparecen en la construcción de software como un conjunto de métodos y técnicas fundamentados en una filosofía de trabajo, preestablecida como guía en la consecución del objetivo esencial, la construcción de un producto software, y en el proceso necesario para construirlo.
La utilización de metodologías se encuentran:
# Metodologías tradicionales
# Metodologías ágiles.
Las metodologías tradicionales:
- -están basadas en normas de estándares.
- -son relativamente resistentes a cambios.
- -tienen un alto grado de control, con muchas políticas y normas.
- -están sujetas a acuerdos contractuales.
- -existe reuniones con el cliente mediante reuniones.
- -son con grupos de trabajos muy grandes y con posibilidad de estar distribuidos.
- -la arquitectura es esencial.
Pero en cambio las metodologías ágiles:
- -Son basadas en heurísticas provenientes de prácticas de producción de código.
- -Están preparadas para cambios en cualquier momento del proyecto.
- -Existe un bajo grado de control.
- -El cliente forma parte del equipo de desarrollo.
- -Son para grupo de trabajos pequeños.
- -Existe poco énfasis en la arquitectura.
Revisión de Técnicas Formales
Los modelos de los métodos clásicos difieren bastante en su conformación y en su naturaleza, pero exaltan casi siempre las virtudes del planeamiento y poseen un espíritu normativo. Comienzan con la elicitación y el análisis completo de los requerimientos del usuario. Después de un largo período de intensa interacción con usuarios y clientes, los ingenieros establecen un conjunto definitivo y exhaustivo de rasgos, requerimientos funcionales y no funcionales. Esta información se documenta en forma de especificaciones para la segunda etapa, el diseño, en el que los arquitectos, trabajando junto a otros expertos en temas puntuales (como ser estructuras y bases de datos), generan la arquitectura del sistema. Luego los programadores implementan ese diseño bien documentado y finalmente el sistema completo se prueba y se despacha
En una metodología ágil deberíamos encontrar, entre otros, los siguientes atributos:
Velocidad: Desarrollos más rápidos, siempre en comparación con las metodologías tradicionales.
Agilidad: Capacidad de improvisar y desarrollar nuevas soluciones al vuelo.
Adaptabilidad: Desarrollos dinámicos, capaces de reaccionar ante entornos cambiantes.
Ingenio: Capaz de tomar decisiones meditadas o bajo cierta disciplina.
Algunas metodologías ágiles, están:
· Extreme Programming
· Scrum
· Evo
· Crystal Methods
· Feature Driven Development
· RUP
· Dynamic Systems Development Method
· Adaptive Software Development
· Agile Modeling
· Lean Development.
En definitiva, las metodologías tradicionales aportaban la organización y el orden del que carecía el desarrollo de software.
Por su parte, las metodologías ágiles pretenden flexibilizar el proceso (sin que por ello se resienta la calidad del producto final). Un factor clave es la mejora de la comunicación entre los diversos actores del proyecto, desde el propio equipo de trabajo hasta el cliente final.
Saludos
Isaac Salgado