Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

IS1 - Cap3 - Desarrollo Ágil PDF

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 35

E-commerce: Business. Techology.

Society.
Ingeniería de
Software I
Ingeniería de Software. Un
Enfoque Práctico
Septima edicion

Roger S. Pressman

Slide 8-1
CAPÍTULO 3.

Desarrollo de software Ágil.


Aspectos éticos, sociales y
políticos en el Comerci

Roger S. Pressman

Copyright © 2011 Pearson Education, Inc.


Objetivos
A través de este capítulo el estudiante:

 Comprenderá las razones de los métodos de desarrollo ágil


de software, el manifiesto ágil, así como las diferencias
entre el desarrollo ágil y el dirigido por un plan;
 Conocerá las prácticas clave en la programación extrema y
cómo se relacionan con los principios generales de los
métodos ágiles;
 Entenderá el enfoque de Scrum para la administración de
un proyecto ágil;
 Reconocerá los conflictos y problemas de escalar los
métodos de desarrollo ágil para el diseño de sistemas de
software grandes.
Desarrollo Ágil de Aplicaciones.
Los procesos de desarrollo del software rápido se diseñan para producir
rápidamente un software útil. El software no se desarrolla como una
serie de incrementos, y cada uno de ellos incluye una nueva
funcionalidad del sistema. comparten algunas características
fundamentales:
 Los procesos de especificación, diseño e implementación están
entrelazados. No existe una especificación detallada del sistema, y la
documentación del diseño se minimiza o es generada
automáticamente por el entorno de programación
 El sistema se desarrolla en diferentes versiones. Los usuarios finales y
otros colaboradores del sistema intervienen en la especificación y
evaluación de cada versión.
 Las interfaces de usuario del sistema se desarrollan usando con
frecuencia un sistema de elaboración interactivo, que permita que el
diseño de la interfaz se cree rápidamente en cuanto se dibujan y
colocan iconos en la interfaz.
Manifiesto
La filosofía detrás de los métodos ágiles se refleja en el
manifiesto ágil, que acordaron muchos de los desarrolladores
líderes de estos métodos. Este manifiesto afirma:
 Estamos descubriendo mejores formas para desarrollar
software, al hacerlo y al ayudar a otros a hacerlo. Gracias a
este trabajo llegamos a valorar:
 A los individuos y las interacciones sobre los procesos y las
herramientas Al software operativo sobre la documentación
exhaustiva
 La colaboración con el cliente sobre la negociación del
contrato La respuesta al cambio sobre el seguimiento de un
plan
 Esto es, aunque exista valor en los objetos a la derecha,
valoraremos más los de la izquierda.
Métodos de Desarrollo Ágil
 Programación Extrema (XP)
 SCRUM
 De Desarrollo de Software Adaptativo
 Desarrollo dirigido a Características

El éxito de dichos métodos condujo a cierta integración con


métodos más tradicionales de desarrollo, basados en el
modelado de sistemas, lo cual resulta en la noción de
modelado ágil y ejemplificaciones ágiles del Proceso
Unificado
Características Comunes XP y SCRUM
Los métodos ágiles han tenido mucho éxito para ciertos tipos de
desarrollo de sistemas:
1. Desarrollo del producto, donde una compañía de software
elabora un producto pequeño o mediano para su venta.
2. Diseño de sistemas a la medida dentro de una
organización, donde hay un claro compromiso del cliente
por intervenir en el proceso de desarrollo, y donde no
existen muchas reglas ni regulaciones externas que
afecten el software.
Principios de Desarrollo Ágil
Principio Descripcióm
Participación del Los clientes deben intervenir estrechamente durante
Cliente el proceso de desarrollo.
Entrega Incremental El software se desarrolla en incrementos y el cliente
especifica los requerimientos que se van a incluir en
cada incremento.
Personas, No Procesos Tienen que reconocerse y aprovecharse las
habilidades del equipo de desarrollo
Adoptar el Cambio Esperar a que cambien los requerimientos del sistema
y, de este modo, diseñar el sistema para adaptar
dichos cambios.
Mantener Simplicidad Enfocarse en la simplicidad tanto en el software a
desarrollar como en el proceso de desarrollo.
Principios
 Es atractiva la idea del involucramiento del cliente en el proceso de
desarrollo, su éxito radica en tener un cliente que desee y pueda
pasar tiempo con el equipo de desarrollo.
 Quizás algunos miembros del equipo no cuenten con la
personalidad adecuada para la participación intensa característica
de los métodos ágiles
 Priorizar los cambios sería difícil, sobre todo en sistemas donde
existen muchos participantes
 Mantener la simplicidad requiere trabajo adicional
 Muchas organizaciones pasan años cambiando su cultura, de tal
modo que los procesos se definan y continúen.
Desarrollo dirigido por un Plan y Desarrollo
Ágil
Desarrollo dirigido por un Plan y Desarrollo Ágil
Para decidir sobre el equilibrio entre un enfoque basado en un plan y uno
ágil, se deben responder algunas preguntas técnicas, humanas y
organizacionales:
 ¿Es importante tener una especificación y un diseño muy detallados
antes de dirigirse a la implementación? un enfoque basado en un
plan.
 ¿Es práctica una estrategia de entrega incremental, donde se dé el
software a los clientes y se obtenga así una rápida retroalimentación
de ellos? Considere el uso de métodos ágiles.
 ¿Qué tan grande es el sistema que se desarrollará? Los métodos ágiles
son más efectivos cuando el sistema logra diseñarse con un pequeño
equipo asignado que se comunique nformalmente
 ¿Qué tipo de sistema se desarrollará? Los sistemas que demandan
mucho análisis antes de la implementación necesitan un diseño
bastante detallado. Quizá sea mejor un enfoque basado en un plan.
Desarrollo dirigido por un Plan y Desarrollo Ágil
 ¿Cuál es el tiempo de vida que se espera del sistema? Los sistemas
con lapsos de vida prolongados podrían requerir más documentación
de diseño, para comunicar al equipode apoyo los propósitos originales
de los desarrolladores del sistema. los defensores de los métodos
ágiles argumentan acertadamente que con frecuencia la
documentación no se conserva actualizada, ni se usa mucho para el
mantenimiento del sistema a largo plazo.
 ¿Qué tecnologías se hallan disponibles para apoyar el desarrollo del
sistema? Los métodos ágiles se auxilian a menudo de buenas
herramientas para seguir la pista de un diseño en evolución
 ¿Cómo está organizado el equipo de desarrollo? Si el equipo de
desarrollo está distribuido, o si parte del desarrollo se subcontrata,
entonces tal vez se requiera elaborar documentos de diseño para
comunicarse a través de los equipos de desarrollo.
Desarrollo dirigido por un Plan y Desarrollo Ágil
 ¿Existen problemas culturales que afecten el desarrollo del sistema?
Las organizaciones de ingeniería tradicionales presentan una cultura
de desarrollo basada en un plan, pues es una norma en ingeniería. 9.
¿Qué tan buenos son los diseñadores y programadores en el equipo
de desarrollo?
 Se argumenta en ocasiones que los métodos ágiles requieren niveles
de habilidad superiores a los enfoques basados en un plan, en que los
programadores simplemente traducen un diseño detallado en un
código.
 ¿El sistema está sujeto a regulación externa? Si un regulador externo
tiene que aprobarel sistema (por ejemplo, la Agencia de Aviación
Federal [FAA] estadounidense aprueba el software que es crítico para
la operación de una aeronave), entonces, tal vez se le requerirá
documentación detallada como parte del sistema de seguridad
Programación Extrema (XP)

Slide 8-14
Programación Extrema (XP)

El ciclo de liberación de la programación extrema


Principios XP
 Planeación Incremental  Programación en
(The Planning Game) Parejas (Pair
 Pequeñas entregas Programming)
(small releases)  Propiedad Colectiva
 Metáfora (Metaphor) (Collective Ownership)
 Diseño Simple (Simple  Integración Colectiva
Design) (Continous Integration)
 Pruebas (Testing)  40 horas semanales
 Refactorzación  Cliente en Casa
(Refactoring)  Estándares de
Codificación
Interrogantes económicas y psicológicas
 La dificultad de estimar cuánto va a costar un
proyecto.
 Los efectos que puede causar la refactorización no
están del todo claros.
SCRUM
Qué es SCRUM
Scrum es un proceso en el que se aplican de manera
regular un conjunto de buenas prácticas para trabajar
colaborativamente, en equipo, y obtener el mejor
resultado posible de un proyecto.
En Scrum se realizan entregas parciales y regulares del
producto final, priorizadas por el beneficio que aportan al
receptor del proyecto. Por ello, Scrum está especialmente
indicado para proyectos:
 En entornos complejos, donde se necesita obtener
resultados pronto,
 Donde los requisitos son cambiantes o poco
definidos,
 Donde la innovación, la competitividad,
laflexibilidad y la productividad son fundamentales.
Roles SCRUM
 Un proyecto de desarrollo se puede llevar a cabo
mediante uno o más equipos Scrum.
 Un equipo Scrum está formado por personas que juegan
tres tipos de roles: Product Owner, Scrum Master y
Development team menber.
 Un equipo Scrum se auto-organiza y no necesita jefes o
gestores, aunque si serán necesarios en el contexto de la
organización: contratación, formación, establecimiento y
control de objetivos, gestión económica, asignación de
personas y tareas, etc
Actores SCRUM. Product Owner.
Un product owner es uno de los futuros usuarios del sistema,
alguien que sabe lo que quieren los usuarios del sistema en
desarrollo.
El product owner es clave en un proyecto ágil. Y si no realiza su
trabajo puede poner en riesgo el proyecto.
7 responsabilidades vitales de un product owner:
 Escribir buenas historias de usuario
 Decidir qué construir… ¡y qué no!
 Fijar criterios de aceptación para cada historia de usuario.
 Definir “productos mínimos viables”.
 Priorizar historias de usuario, tener claro el valor de las ellas y
el valor que necesita el producto en cada momento.
 Estar accesible, y disponible, para explicar al equipo técnico
dudas funcionales, para validar entregas y participar en
reuniones.
 Definir el plan de releases (o la visión estratégica).
Actores SCRUM. SCRUM Máster.
 Velar por que todos los participantes del proyecto sigan
los valores y principios ágiles, las reglas y proceso
de Scrum y guiar la colaboración intra-equipo y con
el cliente de manera que las sinergias sean máximas.
Esto implica:
 Asegurar que exista una lista de requisitos priorizada
y que esté preparada antes de la siguiente iteración.
 Facilitar las reuniones de Scrum (planificación de la
iteración, reuniones diarias de sincronización del
equipo, demostración, retrospectiva), de manera que
sean productivas y consigan sus objetivos.
 Enseñar al equipo a autogestionarse. No da
respuestas, sino que guía al equipo con preguntas
para que descubran por sí mismo una solución.
Actores SCRUM. Scrum Máster.
 Quitar los impedimentos que el equipo tiene en su
camino para conseguir el objetivo de cada iteración
(proporcionar un resultado útil al cliente de la manera más efectiva)
y poder finalizar el proyecto con éxito. Estos obstáculos
se identifican de manera sistemática en las reuniones
diarias de sincronización del equipo y en las reuniones
de retrospectiva.
 Proteger y aislar al equipo de interrupciones externas
durante la ejecución de la iteración (introducción de
nuevos requisitos, De esta manera, el equipo puede
mantener su productividad y el compromiso que
adquirió sobre los requisitos que completaría en la
iteración [el equipo debe reservar tiempo para colaborar
con el cliente en la preparación de la lista de requisitos
para la próxima iteración]
Historias de Usuario
Una historia de usuario describe:
 Funcionalidad que será útil para el usuario, o
comprador, de un sistema software.
 La conversación que conllevan, ya que son una
herramienta para interactuar.
 El cómo se confirma su implementación, las pruebas y
verificación de la misma.
Suelen escribirse en post-it o tarjetas.
Las historias de usuario sólo dicen el “qué”.
Una historia de usuario no es la especificación de un
requisito software
Historias de Usuario
Se recomienda que las historias de usuario se escriban en
un espacio reducido, y que el soporte físico, el post-it o la
tarjeta, tenga apenas una frase.
Una historia de usuario debería ser:
 pequeña,
 memorizable, y
 que pudiera ser desarrollada por un par de
programadores en una semana.
En tan reducido espacio no pueden contener el diseño, las
pruebas, normativa, etc. Ni tampoco detalles para codificar.
Su objetivo es, entre otros, lograr la interacción con el
equipo y con el usuario mas que documentar.
Metodología de Trabajo
 Equipos de entre 6 y 10 personas revisan los
requisitos, la tecnología disponible y evalúan los
conocimientos para Colectivamente determinar
como incrementar la funcionalidad.
 Reuniones diarias, antes de empezar a trabajar,
con una duración máxima de 4 hrs.
 Se llevan a cabo hasta que el proyecto este listo
para ser puesto en producción o ser lanzado al
mercado.
Metodología de Trabajo
 En la primera reunión se explica al equipo la
forma de trabajo, especificando que son
reuniones cortas para coordinar trabajo y no
para solucionar problemas.
 Se establecen los criterios para arreglar los
errores por prioridades (base del éxito del
sistema).
 En cada reunión las preguntas claves a contestar
son:
 Qué es lo que se hizo desde la última
reunión?
 Qué es lo que se va a hacer hasta la siguiente
reunión?
 Cómo se va a llevar a cabo?
Artefactos SCRUM. Sprint
 Es la base del desarrollo Scrum.
 Su duración máxima es de 30 días.
 Se llevan a cabo las tareas pre-
establecidas y no se puede modificar el
trabajo acordado en el backlog.
 Sólo el Scrum Master puede abortar un
sprint si lo considera no viable por
alguna de las siguientes razones:
 Las circunstancias del negocio han
cambiado.
 La tecnología acordada no funciona.
 El equipo ha tenido interferencias.
Artefactos SCRUM. Product Backlog
 Especifica la serie de tareas que se van
a desarrollar según los requisitos
señalados.
 Estas tareas tienen una duración de
entre 4 y 6 hrs. de trabajo.
 Las de mayor duración intentar
descomponerlas en Sub-Tareas dentro
de ese rango de tiempo.
 Al final del sprint se busca un
incremento en la funcionalidad.
Artefactos SCRUM. Print Backlog

 Especifica la serie de tareas que se van


a desarrollar según los requisitos
señalados.
 Estas tareas tienen una duración de
entre 4 y 6 hrs. de trabajo.
 Las de mayor duración intentar
descomponerlas en Sub-Tareas
dentro de ese rango de tiempo.
 Al final del sprint se busca un
incremento en la funcionalidad.
Proceso SCRUM.
En Scrum un proyecto se ejecuta en bloques
temporales cortos y fijos (iteraciones que normal-
mente son de 2 semanas, aunque en algunos equipos
son de 3 y hasta 4 semanas, límite máximo de
feedback y reflexión). Cada iteración tiene que
proporcionar un resultado completo, un incremento
de producto final que sea susceptible de ser
entregado con el mínimo esfuerzo al cliente cuando lo
solicite.
El proceso parte de la lista de objetivos/requisitos
priorizada del producto, que actúa como plan del proyecto.
En esta lista el cliente prioriza los objetivos
balanceando el valor que le aportan respecto a su
coste y quedan repartidos en iteraciones y entregas.
Proceso SCRUM.
Las actividades que se llevan a cabo en Scrum son las
siguientes:
 Planificación de la iteración
 Seelección de lo requisitos (4 horas)
 Planificación de la iteración (4 horas)
 Ejecución de la iteración
 Reunión de sincronización (Diario, 15 minutos)
 El cliente con el equipo refinan la lista de requisitos
 Inspección y Adaptación
 Demostración (4 horas)
 Retrospectiva (4 horas)
Flujo de SCRUM
https://proyectosagiles.org/que-es-scrum/
Conclusiones SCRUM
 Valor para la organización ante todo, representado en
software funcional
 Es preferible tener el 70% de funcionalidad a tiempo que
tratar de lograr el 100% y fallar .
 Metodología sencilla pero efectiva.
 Visibilidad durante todo el proyecto.
 No existen sorpresas.
 Scrum no dice como desarrollar, el equipo de desarrollo
escoge la metodología

También podría gustarte