Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Adsi 581708
Historia:
La definición moderna de desarrollo ágil de software evolucionó a mediados de la década de 1990 como parte
de una reacción contra los métodos de "pico pizado", muy estructurados y estrictos, extraídos del modelo de
desarrollo en cascada. El proceso originado del uso del modelo en cascada era visto como burocrático, lento,
degradante e inconsistente con las formas de desarrollo de software que realmente realizaban un trabajo
eficiente.
Los métodos de desarrollo ágiles e iterativos pueden ser vistos como un retroceso a las prácticas
observadas en los primeros años del desarrollo de software (aunque en ese tiempo no había
metodologías formales). Inicialmente, los métodos ágiles fueron llamados métodos de "peso
liviano".
Kent Beck creó el método de Programación Extrema (usualmente conocida como XP) en 1996
como una forma de rescatar el proyecto del Sistema exhaustivo de compensaciones de Chrysler
(C3). Mientras Chrysler cancelaba ese proyecto, el método fue refinado por Ron Jeffries.
Conceptualización:
Desarrollar software no es una tarea nada fácil y más en la actualidad donde los conocimientos y
metodologías propuestas en este campo nos llevan a consideran diversas dimensiones de
desarrollo , por una parte vemos los métodos básicos y simples que de alguna forma incurren en lo
tradicional y se centran básicamente en el control del proceso , estableciendo una serie de
herramientas y parámetros para el desarrollo , como son las actividades involucradas , los
artefactos o productos a producir y las herramientas con las cuales llegar a este fin .
El método ágil ASD (Adaptive Software Development) traducido en español significa Desarrollo
Adaptable de Software es un modelo de implementación de patrones ágiles para desarrollo de
software. Al igual que otras metodologías ágiles, su funcionamiento es cíclico y reconoceque en
cada iteración se producirán cambios e incluso errores.
proyecto.
COLABORACIÓN
APRENDIZAJE
Crystal CleaAgile Unified Process, en español Proceso Unificado Ágil de Scott Ambler o
(AUP) en inglés, es una versión simplificada del Proceso Unificado de Rational (RUP). Este
describe de una manera simple y fácil de entender la forma de desarrollar aplicaciones de
software usando técnicas ágiles y conceptos que aún se mantienen válidos en RUP.r.
Característica de AUP
Historia:
Lean SoFue desarrollada por Jeff De Luca y Peter Coad a mediados de los años 90. Esta
metodología se enfoca en iteraciones cortas, que permiten entregas tangibles del producto
en un periodo corto de tiempo, de como máximo dos semanas. ftware Development (LSD).
Carateristicas :
Se preocupa por la calidad, por lo que incluye un monitoreo constante del proyecto.
Propone tener etapas de cierre cada dos semanas. Se obtienen resultados periódicos y tangibles.
Se basa en un proceso iterativo con iteraciones cortas que producen un software funcional que el
cliente y la dirección de la empresa pueden ver y monitoriar.
Define claramente entregas tangibles y formas de evaluación del progreso del proyecto.
No hace énfasis en la obtención de los requerimientos sino en como se realizan las fases de
diseño y construcción.
Ventajas :
El equipo de desarrollo no malgasta el tiempo y dinero del cliente desarrollando soluciones
innecesariamente generales y complejas que en realidad no son un requisito del cliente.
Cada componente del producto final ha sido probado y satisface los requerimientos.
Rápida respuesta a cambios de requisitos a lo largo del desarrollo.
Entrega continua y en plazos cortos de software funcional.
Trabajo conjunto entre el cliente y el equipo de desarrollo.
Minimiza los costos frente a cambios.
Importancia de la simplicidad, al eliminar el trabajo innecesario.
Atención continua a la excelencia técnica y al buen diseño.
Mejora continua de los procesos y el equipo de desarrollo.
Evita malentendidos de requerimientos entre el cliente y el equipo.
Desventajas :
Falta de documentación del diseño. El código no puede tomarse como una documentación.
En sistemas de tamaño grande se necesitar leer los cientos o miles de páginas del listado de
código fuente.
Problemas derivados de la comunicación oral. Este tipo de comunicación resulta difícil de
preservar cuando pasa el tiempo y está sujeta a muchas ambigüedades.
Fuerte dependencia de las personas. Como se evita en lo posible la documentación y los
diseños convencionales, los proyectos ágiles dependen críticamente de las personas.
Falta de reusabilidad. La falta de documentación hacen difícil que pueda reutilizarse el
código ágil.
Procesos:
Desarrollar un modelo global: Al inicio del desarrollo se construye un modelo teniendo en cuenta la
visión, el contexto y los requisitos que debe tener el sistema a construir. Este modelo se divide en
áreas que se analizan detalladamente. Se construye un diagrama de clases por cada área.
Roles y responsabilidades:
El equipo de trabajo está estructurado en jerarquías, siempre debe haber un jefe de proyecto, y
aunque es un proceso considerado ligero también incluye documentación (la mínima necesaria
para que algún nuevo integrante pueda entender el desarrollo de inmediato).
Cuando usarla:
Toda metodología debe ser adaptada al contexto del proyecto (recursos técnicos y humanos,
tiempo de desarrollo, tipo de sistema).
Exigiendo un esfuerzo considerable para ser adaptadas, sobre todo en proyectos pequeños y con
requisitos muy cambiantes.
Las metodologías ágiles ofrecen una solución casi adecuada para una gran cantidad de proyectos.
Kanban.
Definición :
¿Qué es Kanban?
El objetivo de Kanban es minimizar el TEP (Trabajo En Progreso), o stock, entre los procesos. Para
lograr esto Kanban se asegura que el proceso superior produzca partes sólo si el proceso inferior
las necesita. "Por demada" significa que los trabajadores del proceso inferior consumen las partes
que necesitan de los procesos superiores.
Kanban - Un visual gestión de procesos de sistema que le dice qué producir, cuándo
producirlo, y cuánto producir.
El método Kanban - Una aproximación a, la mejora del proceso evolutivo gradual para las
organizaciones.
2.- Si se usa un sistema informatizado, permite conocer la situación de todos los ítems en
cada momento y dar instrucciones basadas en las condiciones actuales de cada área de
trabajo.
2.- Posibilidad de priorizar la producción: el tipo de producto con más importancia o urgencia
se pone primero que los demás.
Fase 1: Diseñar el sistema Kanban que se usará posteriormente y formar al personal en los
principios de Kanban, y los beneficios de usarlo.
Fase 4: En la última fase debe realizar la revisión del sistema Kanban, para mejorarlo en
base a la experiencia previa.
Scrum :
es un marco de trabajo para la gestión y desarrollo de software basada en un proceso iterativo e
incremental utilizado comúnmente en entornos basados en el desarrollo ágil de software.
Aunque Scrum estaba enfocado a la gestión de procesos de desarrollo de software, puede ser
utilizado en equipos de mantenimiento de software, o en una aproximación de gestión de
programas: Scrum de Scrums.
Historia
En principio se definió como "una estrategia de desarrollo flexible y holística, donde un equipo de
desarrollo trabaja como una unidad para llegar a una misma meta" contrario a lo que dijo Ikujiro
Nonaka en 1986 en el libro "El nuevo nuevo juego de desarrollo de productos", donde decía: "un
enfoque secuencial y tradicional". Takeuchi y Nonaka difieren en "La compañía creadora de
conocimiento" que es una forma de "creación de conocimiento organizacional, [...] especialmente
bueno trayendo información de innovación continua, incremental y espiralmente.
A principios de 1990, Ken Schwaber uso en su compañía lo que se volvería Scrum, los Métodos
Avanzados de Desarrollo, y Jeff Sutherland, junto a John Scumniotales y Jeff McKenna, desarrolló
un enfoque similar en la Corporación Easel, y fueron los primeros en referirse a este con una única
palabra, Scrum. En 1995, Sutherland y Schwaber presentaron juntos un trabajo describiendo la
metodología Scrum por primera vez en la Business Object Design and Implementation Workshop
que fue parte del Object-Oriented Programming, Systems, La guages & Applications '95 (OOPSLA
'95) en Austin, Texas. Schwaber y Sutherland colaboraron los siguientes años para combinar los
escritos anteriores, sus experiencias y las mejores prácticas de la industria en lo que hoy se
conoce como Scrum.
En 2001, Schwaber trabajó con Mike Beedle para describir el método en el libro "Desarrollo de
Software Ágil con Scrum. Su enfoque para planear y manejar proyectos es cambiar la autoridad de
la toma de decisiones al nivel de propiedades de operación.
pesar que la palabra no es un acrónimo, algunas compañías que implementan el proceso han
usado la palabra con letras mayúsculas como SCRUM. Esto puede ser por uno de los primeros
escritos de Ken Schwaber donde el título se escribió de esta forma.
Luego, Schwaber junto a otros fundó la Alianza Scrum y creó los programas Certified Scrum
Master y sus derivados. Ken dejó la Alianza Scrum en otoño de 2009, y fundó Scrum.org para
mejorar aún más la calidad y efectividad de Scrum
Características de Scrum
SCRUM es un modelo de referencia que define un conjunto de prácticas y roles, y que puede
tomarse como punto de partida para definir el proceso de desarrollo que se ejecutará durante un
proyecto. Los roles principales en Scrum son el ScrumMaster, que mantiene los procesos y trabaja
de forma similar al director de proyecto, elProductOwner, que representa a
los stakeholders (interesados externos o internos), y el Team que incluye a los desarrolladores.mi
Durante cada sprint, un periodo entre una y cuatro semanas (la magnitud es definida por el
equipo), el equipo crea un incremento de software potencialmente entregable(utilizable). El
conjunto de características que forma parte de cada sprint viene del Product Backlog, que es un
conjunto de requisitos de alto nivel priorizados que definen el trabajo a realizar. Los elementos
del Product Backlog que forman parte del sprint se determinan durante la reunión de Sprint
Planning. Durante esta reunión, el Product Owneridentifica los elementos del Product Backlog que
quiere ver completados y los hace del conocimiento del equipo. Entonces, el equipo determina la
cantidad de ese trabajo que puede comprometerse a completar durante el siguiente
sprint.1 Durante el sprint, nadie puede cambiar el Sprint Backlog, lo que significa que
los requisitos están congelados durante el sprint.
Un principio clave de Scrum es el reconocimiento de que durante un proyecto los clientes pueden
cambiar de idea sobre lo que quieren y necesitan (a menudo llamadorequirements churn), y que
los desafíos impredecibles no pueden ser fácilmente enfrentados de una forma predictiva y
planificada. Por lo tanto, Scrum adopta una aproximación pragmática, aceptando que el problema
no puede ser completamente entendido o definido, y centrándose en maximizar la capacidad del
equipo de entregar rápidamente y responder a requisitos emergentes.
Las características más marcadas que se logran notar en Scrum serían: gestión regular de las
expectativas del cliente, resultados anticipados, flexibilidad y adaptación, retorno de inversión,
mitigación de riesgos, productividad y calidad, alineamiento entre cliente y equipo, por último
equipo motivado. Cada uno de estos puntos mencionados hacen que el Scrum sea utilizado de
manera regular en un conjunto de buenas prácticas para el trabajo en equipo y de esa manera
obtener resultados posibles.
Existen varias implementaciones de sistemas para gestionar el proceso de Scrum, que van desde
notas amarillas "post-it" y pizarras hasta paquetes de software. Una de las mayores ventajas de
Scrum es que es muy fácil de aprender, y requiere muy poco esfuerzo para comenzarse a utilizar.
Roles en Scrum
Roles Principales
Product Owner:
El Product Owner representa la voz del cliente. Se asegura de que el equipo Scrum trabaje
de forma adecuada desde la perspectiva del negocio. El Product Owner escribehistorias de
usuario, las prioriza, y las coloca en el Product Backlog.
ScrumMaster (o Facilitador)
El Scrum es facilitado por un ScrumMaster, cuyo trabajo primario es eliminar los obstáculos
que impiden que el equipo alcance el objetivo del sprint. El ScrumMaster no es el líder del
equipo (porque ellos se auto-organizan), sino que actúa como una protección entre el
equipo y cualquier influencia que le distraiga. El ScrumMaster se asegura de que el
proceso Scrum se utiliza como es debido. El ScrumMaster es el que hace que las reglas se
cumplan.
Equipo de desarrollo
Roles Auxiliares
Los roles auxiliares en los "equipos Scrum" son aquellos que no tienen un rol formal y
no se involucran frecuentemente en el "proceso Scrum", sin embargo deben ser
tomados en cuenta. Un aspecto importante de una aproximación ágil es la práctica de
involucrar en el proceso a los usuarios, expertos del negocio y otros interesados
(stakeholders). Es importante que esa gente participe y entregue retroalimentación
con respecto a la salida del proceso a fin de revisar y planear cada sprint.