Metodologías de Desarrollo de Software Parte 1

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 3

METODOLOGÍAS DE DESARROLLO DE SOFTWARE

1- ¿Qué es una metodología de desarrollo de software?

Las metodologías de desarrollo de software se utilizan en el ámbito de la


programación, entre otros, con el objetivo de trabajar en equipo de manera
organizada. Estas metodologías han ido evolucionando a lo largo del tiempo,
pasando de ser un mero trámite de organización a ser una base importantísima
a la hora de desarrollar software de una manera productiva y eficaz.

Las metodologías de desarrollo de software son un conjunto de técnicas y


métodos organizativos que se aplican para diseñar soluciones de software
informático. El objetivo de las distintas metodologías es el de intentar organizar
los equipos de trabajo para que estos desarrollen las funciones de un programa
de la mejor manera posible.

2. ¿Qué tipos de metodologías de desarrollo de software existen?

En la actualidad se pueden diferenciar dos grandes grupos de metodologías


de desarrollo de software: las ágiles y las tradicionales .

3. Metodologías de desarrollo de software tradicionales

Las metodologías de desarrollo de software tradicionales se caracterizan por


definir total y rígidamente los requisitos al inicio de los proyectos de ingeniería
de software. Los ciclos de desarrollo son poco flexibles y no permiten realizar
cambios. La organización del trabajo de las metodologías tradicionales es
lineal, no se adaptan nada bien a los cambios.. Las principales metodologías
tradicionales son:

 Waterfall (cascada): es una metodología en la que las etapas se


organizan de arriba a abajo, de ahí el nombre. Se desarrollan las
diferentes funciones en etapas diferenciadas y obedeciendo un riguroso
orden. Antes de cada etapa se debe revisar el producto para ver si está
listo para pasar a la siguiente fase. Los requisitos y especificaciones
iniciales no están predispuestos para cambiarse, por lo que no se
pueden ver los resultados hasta que el proyecto ya esté bastante
avanzado.
 Prototipado: se basa en la construcción de un prototipo de software que
se construye rápidamente para que los usuarios puedan probarlo y
aportar feedback. Así, se puede arreglar lo que está mal e incluir otros
requerimientos que puedan surgir. Es un modelo iterativo que se basa
en el método de prueba y error para comprender las especificidades del
producto.
 Espiral: es una combinación de los dos modelos anteriores, que añade
el concepto de análisis de riesgo. Se divide en cuatro etapas:
planificación, análisis de riesgo, desarrollo de prototipo y evaluación del
cliente. El nombre de esta metodología da nombre a su funcionamiento,
ya que se van procesando las etapas en forma de espiral. Cuanto más
cerca del centro se está, más avanzado está el proyecto.
 Incremental: en esta metodología de desarrollo de software se va
construyendo el producto final de manera progresiva. En cada etapa
incremental se agrega una nueva funcionalidad, lo que permite ver
resultados de una forma más rápida en comparación con el modelo en
cascada. El software se puede empezar a utilizar incluso antes de que
se complete totalmente y, en general, es mucho más flexible que las
demás metodologías.
 Diseño rápido de aplicaciones (RAD): esta metodología permite
desarrollar software de alta calidad en un corto periodo de tiempo. Los
costes son mucho más altos y el desarrollo más flexible, aunque
requiere una mayor intervención de los usuarios. Por otro lado, el código
puede contener más errores, y sus funciones son limitadas debido al
poco tiempo del que se dispone para desarrollarlas. El objetivo es iterar
el menor número posible de veces para conseguir una aplicación
completa de forma rápida.

4. Metodologías de desarrollo de software ágiles

Son las más utilizadas hoy en día debido a su alta flexibilidad y agilidad. Los
equipos de trabajo que las utilizan son mucho más productivos y eficientes, ya
que saben lo que tienen que hacer en cada momento. Las metodologías ágiles
se basan en la metodología incremental, en la que en cada ciclo de desarrollo
se van agregando nuevas funcionalidades a la aplicación final.

Este tipo de metodologías permite construir equipos de trabajo autosuficientes


e independientes que se reúnen cada poco tiempo para poner en común las
novedades. Poco a poco, se va construyendo y puliendo el producto final, a la
vez que el cliente puede ir aportando nuevos requerimientos o correcciones, ya
que puede comprobar cómo avanza el proyecto en tiempo real.

Las principales metodologías ágiles son:

 Kanban: metodología de trabajo inventada por la empresa de


automóviles Toyota. Consiste en dividir las tareas en porciones mínimas
y organizarlas en un tablero de trabajo dividido en tareas pendientes, en
curso y finalizadas. De esta forma, se crea un flujo de trabajo muy visual
basado en tareas prioritarias e incrementando el valor del producto.
 Scrum: es también una metodología incremental que divide los
requisitos y tareas de forma similar a Kanban. Se itera sobre bloques de
tiempos cortos y fijos (entre dos y cuatro semanas) para conseguir un
resultado completo en cada iteración. Las etapas son: planificación de la
iteración (planning sprint), ejecución (sprint), reunión diaria (daily
meeting) y demostración de resultados (sprint review). Cada iteración
por estas etapas  se denomina también sprint. 
 Lean: está configurado para que pequeños equipos de desarrollo muy
capacitados elaboren cualquier tarea en poco tiempo. Los activos más
importantes son las personas y su compromiso, relegando así a un
segundo plano el tiempo y los costes. El aprendizaje, las reacciones
rápidas y potenciar el equipo son fundamentales.
 Programación extrema (XP): es una metodología de desarrollo de
software basada en las relaciones interpersonales, que se consideran la
clave del éxito. Su principal objetivo es crear un buen ambiente de
trabajo en equipo y que haya un feedback constante del cliente. El
trabajo se basa en 12 conceptos: diseño sencillo, testing, refactorización
y codificación con estándares, propiedad colectiva del código,
programación en parejas, integración continua, entregas semanales e
integridad con el cliente, cliente in situ, entregas frecuentes y
planificación.

5. Las Diferencias entre las metodologías ágiles y tradicionales

TRADICIONAL ÁGIL
 Se define todo desde el principio.  Refactorización
 Predictivos  Adaptables
 Plan detallado  Trabaja sobre funcionalidades básicas
 Contratos estrictos  Contratos de alcance variable
 Esconde el error  Detecta el error cuanto antes para
resolverlo.
 Incertidumbre descontrolada  Alta incertidumbre

6. Metodologías tradicionales y ágiles ventajas y desventajas

VENTAJAS
TRADICIONAL ÁGIL
 Objetivos claramente definidos.  Se establecen prioridades flexibles.
 Procesos controlables.  Se empieza a entregar antes.
 Documentación clara.  Costes y plazos conocidos.
 Mayor responsabilidad.  Mejora la calidad final.
 Mayor transparencia

DESVENTAJAS
TRADICIONAL ÁGIL
 En el trabajo día a día, es muy  Fuerte dependencia de los líderes
difícil seguir una secuencia lineal,  Falta de documentación
 Requiere mucho tiempo para ver  Soluciones erróneas en etapas
el producto terminado ya que no largas
se puede avanzar hasta que la
etapa previa haya culminado.
 Cualquier error detectado en la
etapa de prueba, requiere de un
rediseño y nueva programación, lo
cual aumenta los costos y el tiempo
del desarrollo.

También podría gustarte