Descarga la aplicación para disfrutar aún más
Vista previa del material en texto
METODOLOGÍAS ÁGILES Y OTRAS FILOSOFÍAS DE DESARROLLO DE SOFTWARE Actualmente las metodologías de ingeniería de software pueden considerarse como una base necesaria para la ejecución de cualquier proyecto de desarrollo de software que se considere serio, y que necesite sustentarse en algo más que la experiencia y capacidades de sus programadores y equipo. Un amplio y buen conocimiento de estas metodologías servirá de base teórica y permitirá comprender completamente todo lo que requiere el análisis, diseño, desarrollo e implantación de un sistema. Lo más importante en una primera etapa es poder identificar qué metodología de ingeniería de software se adecúa de la mejor manera a nuestro proyecto, para así lograr el mejor resultado en tiempo y forma. INTRODUCCIÓN METODOLOGIAS DE DESARROLLO DE SOFTWARE ÁGILES La metodología para el desarrollo de software es un modo sistemático de realizar, gestionar y administrar un proyecto para llevarlo a cabo con altas posibilidades de éxito. Una metodología para el desarrollo de software comprende los procesos a seguir sistemáticamente para idear, implementar y mantener un producto software desde que surge la necesidad del producto hasta que cumplimos el objetivo por el cual fue creado. DEFINICIÓN: Se caracterizan por hacer énfasis en la comunicación cara a cara, es decir, se basan en una fuerte y constante interacción, donde clientes desarrolladores y desarrolladores trabajan constantemente juntos estableciéndose así una estrecha comunicación. Estas metodologías están orientadas al resultado del producto y no a la documentación; exige que el proceso sea adaptable, permitiendo realizar cambios de último momento. METODOLOGIAS DE DESARROLLO DE SOFTWARE ÁGILES CARACTERISTICAS: LAS PRINCIPALES METODOLOGIAS ÁGILES SON: Kanban Scrum Lean Programación extrema (XP) KANBAN Lo creó David J. Anderson en Japón en los 40´s. Se basa en los sistemas Lean Manufacturing, esta diseñada para soportar un control productivo y desesntralizado por demanda. En el desarrollo de software ágil es usado para visualizar los proyectos, al colocar una seria de tarjetas en un panel o soporte, denominado tareas kanban https://profile.es/blog/lean-valores-y-herramientas/ KANBAN Se basa en un sistema de señalización en el que se visualizan las tareas de producción por demanda con el objetivo de minimizar el trabajo en progreso y el stock entre procesos. El metodo kanban organiza las tareas en columnas depedendiendo de la complejidad o fases de desarrollo del procesos. KANBAN Algunas de las divisiones mas comunes para el desarrollo de software son: Lista de tareas (to do), engloba las tareas pendientes que se pueden hacer inmediatamente, en orden de mayor a menor prioridad. En desarrollo (doing) las tareas serán movidas hasta ser completadas, si algo falla mover la tarea a la columna anterior. Pruebas se realizan pruebas a las tareas para determinar si se ha finalizado correctamente, si es así pasa a la siguiente, en caso contrario regresa a desarrollo. Despliegue validado el código se añaden a esta columna para su producción en el sistema Terminado tareas terminadas por completo. Utilizar Kanban en el desarrollo de software. A grandes rasgos el objetivo principal de este sistema es reducir el trabajo en proceso analizando las tareas que está realizando el equipo y limitando el numero máximo de estas mismas, identificando los cuellos de botella e incidiendo en ellos. La finalidad es enfocar esfuerzos en cerrar tareas, no en abrirlas. KANBAN SCRUM Es un marco que permite el trabajo colaborativo entre equipos. Al igual que un equipo de rugby (de donde proviene su nombre) cuando entrena para un gran partido, scrum anima a los equipos a aprender a través de las experiencias, a autoorganizarse mientras aborda un problema y a reflexionar sobre sus victorias y derrotas para mejorar continuamente. SCRUM Aunque son los equipos de desarrollo de software los que utilizan con mayor frecuencia este tipo de scrum, sus principios y lecciones se pueden aplicar a todo tipo de trabajo en equipo. Esta es una de las razones por las que es tan popular. Aunque se considera a menudo un marco de gestión de proyectos ágil, scrum incluye un conjunto de reuniones, herramientas y funciones que, de forma coordinada, ayudan a los equipos a estructurar y gestionar su trabajo.. 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 Busca optimizar los procesos de gestión y productivos. Tiene como objetivo limpiar las actividades que no aportan nada . Su máxima está en reducir la inversión, el tiempo y el esfuerzo. PRINCIPIOS LEAN VENTAJAS AL APLICAR LA METODOLOGIA Reduce costes Satisfacción de los clientes Menos riesgos Reducción del plazo de ejecución y de las actividades sin valor Trabajo en equipo Caso de éxito En el año 2011, Nike decidió cambiar susistema de producción y adaptarlo a la filosofía Lean: Garantizar la calidad del producto El cambio vino de la mano de un importante proceso de formación de sus trabajadores: reducir el tiempo de producción, en este caso, gracias a la mejora de las capacidades del equipo. 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.. La metodología XP es un conjunto de técnicas que dan agilidad y flexibilidad en la gestión de proyectos. También es conocida como Programación Extrema (Extreme Programming) y se centra crear un producto según los requisitos exactos del cliente. De ahí, que le involucre al máximo durante el método de gestión del desarrollo del producto. ¿QUÉ ES LA METODOLOGÍA XP? CARACTERÍSTICAS DE LA METODOLOGÍA XP Comunicación constante entre el cliente y el equipo de desarrollo. Respuesta rápida a los cambios constantes. La planificación es abierta con un cronograma de actividades flexible. El software que funciona está por encima de cualquier otra documentación. Los requisitos del cliente y el trabajo del equipo del proyecto son los principales factores de éxito del mismo. https://www.sinnaps.com/blog-gestion-proyectos/cronograma-online PROGRAMACIÓN EXTREMA (XP) VALORES Comunicación: el código comunica mejor cuanto más simple sea. Simplicidad: Es la base de XP, se simplifica el diseño para agilizar el desarrollo y facilitar el mantenimiento. Retroalimentación (feedback): Al estar el cliente integrado en el proyecto, su opinión sobre el estado del proyecto se conoce en tiempo real. Valentía o coraje: La valentía le permite a los desarrolladores que se sientan cómodos con reconstruir su código cuando sea necesario, otro ejemplo es saber cuándo desechar un código: para quitar código fuente obsoleto, sin importar cuánto tiempo invirtió. PROGRAMACIÓN EXTREMA (XP) Esta metodología constituye un modelo de trabajo compartido, además existe la conexión entre el cliente y el desarrollador, lo que permitirá la construcción del sistema de acuerdo a los requerimientos establecidos por el cliente en un principio. METODOLOGIAS DE DESARROLLO DE SOFTWARE OTRAS FILOSOFIAS Para la metodología del desarrollo del proyecto GA3 se utilizó principalmente el modelo reciente Ganar-ganar ya quecon este existen ganancias para todas las partes implicadas. GANAR - GANAR El Proceso Unificado de Desarrollo Software o simplemente Proceso Unificado es un marco de desarrollo de software que se caracteriza por estar dirigido por casos de uso, centrado en la arquitectura y por ser iterativo e incremental. PROCESO UNIFICADO (UP) La ingeniería web es la aplicación de metodologías sistemáticas, disciplinadas y cuantificables al desarrollo eficiente, operación y evolución de aplicaciones de lata calidad en la World Wide Web. INGENIERIA WEB Es visto como una variacion del modelo en espiral que utiliza una aplicación cíclica para el desarrollo incremental de sistemas de software Busca que ambas partes ganen, compartiendo el beneficio Se basa en la negociación entre el cliente y el desarrollador, se negocia coste frente a funcionalidades, rendimiento, calidad, o simplemente el gestor del proyecto le pregunta al cliente qué necesita y él proporciona la información para continuar. METODOLOGIAS DE DESARROLLO DE SOFTWARE OTRAS FILOSOFIAS Ganar - Ganar METODOLOGIAS DE DESARROLLO DE SOFTWARE OTRAS FILOSOFIAS Proceso unificado (UP) Lo Mejor de Cada Metodología: Se comporta básicamente como una recopilación de las mejores partes de cada una de las metodologías Ideal para Proyectos Grandes: Este proceso es óptimo para la realización de grandes proyectos, los cuales necesitan una metodología detallada no tan estresante Orientado a Objetos: Si estás en busca de una metodología que se adapte a un lenguaje de programación orientada a objetos, entonces el Proceso Unificado UML es su Aliado: Si en un determinado momento necesitas de representación visual para lo que estas proyectando. Entonces tienes la fortuna de contar con UML METODOLOGIAS DE DESARROLLO DE SOFTWARE OTRAS FILOSOFIAS Ingeniería o modelado del negocio: Analizar y entender las necesidades del negocio para el cual se está desarrollando el software. Requisitos: proveer una base para estimar los costos y tiempo de desarrollo del sistema. Análisis y diseño: trasladar los requisitos analizados anteriormente a un sistema automatizado y desarrollar una arquitectura para el sistema. Implementación: crear software que se ajuste a la arquitectura diseñada y que tenga el comportamiento deseado. Pruebas: asegurarse de que el comportamiento requerido es correcto y que todo lo solicitado está presente. Despliegue: producir distribuciones del producto y distribuirlo a los usuarios. Proceso unificado (UP) METODOLOGIAS DE DESARROLLO DE SOFTWARE OTRAS FILOSOFIAS Ingenieria web Consiste en la disposición y empleo de fundamentos científicos, de ingeniería y gestión y con orientaciones metódicas y disciplinadas del boom y desarrollo, utilización y mantenimiento de sistemas y aplicaciones basados en el Web de alta calidad En esta nueva generación, las metodologías tradicionales de desarrollo de software fueron quedando obsoletas en determinados sectores, en los que la propia demanda de los usuarios es más rápida que la capacidad de producción de las empresas ancladas a las viejas metodologías de gestión de proyectos de sistemas informáticos. Este gran impacto en las tecnologías, ha generado la necesidad de encontrar y crear nuevas metodologías de trabajo y gestión, que aseguren la entrega en tiempo y forma del producto. CONCLUSIÓN Esta necesidad de calidad, eficiencia, flexibilidad y rapidez en la entrega de un producto informático se volvió prioridad y en conjunto con su necesidad se crearon las nombradas Metodologías Agiles. Ambas metodologías, pueden fracasar si son mal implementadas, gestionadas y administradas. Sin embargo, la tendencia natural actual indica que las metodologías ágiles están ganando terreno muy rápidamente lo que en algunos años podrían generar la extinción definitiva de las metodologías tradicionales. CONCLUSIÓN
Compartir