lunes, 23 de abril de 2012

METODOLOGIAS DE DESARROLLO DE SOFTWARE TRADICIONALES VS AGILES

 1.                  Resumen.-
Desarrollar software implica muchas cosas, desde su planificación hasta la puesta en marcha se deben de seguir un sinnúmero de pasos o actividades. Hoy en día existen diversas metodologías para hacerlo, sin embargo es necesario definir primero la naturaleza del software antes de elegir un determinado ciclo de vida.
En el presente trabajo se detallan los dos grandes enfoques, tanto metodologías tradicionales y metodologías ágiles, las primeras están pensadas para el uso exhaustivo de documentación durante todo el ciclo del proyecto mientras que las segundas ponen vital importancia en la capacidad de respuesta a los cambios, la confianza en las habilidades del equipo y al mantener una buena relación con el cliente. Se verán diferencias, ventajas, desventajas y cual puede encajar en un proyecto de software para interés del lector.
Palabras Claves ¾ Metodología, RUP, MSF AUP, Scrum, Metodología Tradicional, Metodología Ágil


2.                  Metodologías tradicionales.-
Al inicio el desarrollo de software era artesanal en su totalidad, la fuerte necesidad de mejorar el proceso y llevar los proyectos a la meta deseada, tuvieron que importarse la concepción y fundamentos de metodologías  existentes en otras áreas y adaptarlas al desarrollo de software. Esta nueva etapa de adaptación contenía el desarrollo dividido en etapas de manera secuencial que de algo mejoraba la necesidad latente en el campo del software.

Entre las principales metodologías tradicionales tenemos los ya tan conocidos RUP y MSF entre otros, que centran su atención en llevar una documentación exhaustiva de todo el proyecto y centran su atención en cumplir con un plan de proyecto, definido todo esto, en la fase inicial del desarrollo del proyecto.

Otra de las características importantes dentro de este enfoque tenemos los altos costos al implementar un cambio y al no ofrecer una buena solución para proyectos donde el  entorno es volátil.

Las metodologías tradicionales (formales) se focalizan en documentación, planificación y procesos. (Plantillas, técnicas de administración, revisiones, etc.), a continuación se detalla RUP uno de los métodos más usados dentro de los métodos tradicionales
Rational Unified Process (RUP)
Proceso Unificado Rational

RUP es un proceso formal: Provee un acercamiento disciplinado para asignar tareas y responsabilidades dentro de una organización de desarrollo.
Fases
Las cuatro fases del ciclo de vida son:
Ø  Concepción
Ø  Elaboración
Ø  Construcción
Ø  Transición




Ventajas
Ø  Evaluación en cada fase que permite cambios de objetivos
Ø  Funciona bien en proyectos de innovación.
Ø  Es sencillo, ya que sigue los pasos intuitivos necesarios a la hora de desarrollar el software.
Ø  Seguimiento detallado en cada una de las fases.

Desventajas
Ø  La evaluación de riesgos es compleja
Ø  Excesiva flexibilidad para algunos proyectos
Ø  Estamos poniendo a nuestro cliente en una situación que puede ser muy incómoda para él.
Nuestro cliente deberá ser capaz de describir y entender a un gran nivel de detalle para poder acordar un alcance del proyecto con él.


Microsoft Solution Framework (MSF)
MSF es un compendio de las mejores prácticas en cuanto a administración de proyectos se refiere. Más que una metodología rígida de administración de proyectos, MSF es una serie de modelos que puede adaptarse a cualquier proyecto de tecnología de información.
Todo proyecto es separado en cinco principales fases:
·         Visión y Alcances.
·         Planificación.
·         Desarrollo.
·         Estabilización.
·         Implantación.
Modelo de Equipo de MSF


Microsoft Operation Framework.-
El modelo de proceso MOF está formado por cuadrantes, revisiones de la administración de las operaciones y revisiones de la administración de los servicios. En la figura 1 se muestra el funcionamiento del ciclo de MOF.
Ciclo de Microsoft Operations Framework

En la figura, se observa que el modelo de proceso MOF se desplaza en sentido de las agujas del reloj y se divide en los cuatro cuadrantes integrados siguientes:
Ø  Cambios 
Ø  Operaciones
Ø  Soporte técnico
Ø  Optimización
3.                  Metodologías Agiles.-
Extreme Programming (XP)

Los defensores de XP consideran que los cambios de requisitos sobre la marcha son un aspecto natural, inevitable e incluso deseable del desarrollo de proyectos. Creen que ser capaz de adaptarse a los cambios de requisitos en cualquier punto de la vida del proyecto es una aproximación mejor y más realista que intentar definir todos los requisitos al comienzo del proyecto e invertir esfuerzos después en controlar los cambios en los requisitos.


Scrum



4.      Diferencias:
Diferencias entre Metodología Tradicionales y Ágiles
Metodologías Tradicionales
Metodologías Agiles
Basadas en normas provenientes de estándares seguidos por el entorno de desarrollo
Basadas en heurísticas provenientes de prácticas de producción de código
Cierta resistencia a los cambios
Especialmente preparados para cambios durante el proyecto
Impuestas externamente
Impuestas internamente (por el equipo)
Proceso mucho más controlado, con numerosas políticas/normas
Proceso menos controlado, con pocos principios.
El cliente interactúa con el equipo de desarrollo mediante reuniones
El cliente es parte del equipo de desarrollo
Más artefactos
Pocos artefactos
Más roles
Pocos roles
Grupos grandes y posiblemente distribuidos
Grupos pequeños (<10 integrantes) y trabajando en el mismo sitio
La arquitectura del software es esencial y se
expresa mediante modelos
Menos énfasis en la arquitectura del software
Existe un contrato prefijado
No existe contrato tradicional o al menos es bastante flexible

5.      Conclusión.-
Ø  El retrasar las decisiones en un proyecto de software permite potenciar el valor del producto tanto para el cliente como al equipo o empresa que desarrolla
Ø  Para que un grupo de desarrollo adopte una metodología ágil debe poseer experiencia  trabajando con metodologías tradicionales, ya que la experiencia es la que predomina en los mementos cruciales del proyecto, además debe tener la capacidad de ser equipos  auto-gestionados, altamente motivados y con gran innovación
Ø  Las metodologías tradicionales son pesadas y que suponen obligatoriamente un “todo o nada”.
Ø  Las metodologías ágiles son más modernas y mejores que cualquiera de las tradicionales.
Ø  Las actividades “de calidad” son inútiles y sólo funcionan en equipos grandes, no se adaptan a nuestros proyectos. Cualquier cosa que nos quite tiempo de tareas técnicas (programar, etc.) es una pérdida de tiempo.
Ø  El uso de metodologías tradicionales es esencial al inicio en un equipo de desarrollo de software
Ø  Las metodologías ágiles se deberían aplicar en proyectos donde exista mucha incertidumbre donde el entorno es volátil, donde los requisitos no se conocen con exactitud, mientras que las metodologías tradicionales obligan al cliente a tomar las decisiones al inicio del proyecto.

6 comentarios:

  1. Muy buen artículo, hasta con imágenes y todo.
    Me pregunto cual será tu metodologia de desarrollo de software, nosotros usamos varias en el desarrollo de sistemas, siempre depende de lo que se quiere lograr.

    ResponderEliminar
  2. Gracias por la info!!!! desde el 2000 y tantos :D

    ResponderEliminar
  3. Casino Games - JtmHub
    Enjoy a 여수 출장샵 great 계룡 출장마사지 experience at the Jtm Casino Resort. We 동해 출장샵 provide our users with a fantastic casino experience. Join our team of professional dealers 순천 출장샵 to  Rating: 5 하남 출장샵 · ‎10 votes

    ResponderEliminar