Logo Studenta

A05_OsvaldoRC - osvaldo campos

¡Este material tiene más páginas!

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

Otros materiales

Materiales relacionados