Documente Academic
Documente Profesional
Documente Cultură
El camino al éxito
está siempre en
construcción
• Datos
7 8
Controlar
Diseñar Configur
a-ción
Estimar Planificar
Disciplinas de Soporte
Disciplinas Técnicas
Disciplinas de Gestión
• Requerimient • Planificación • Gestión de Recolecta
os de Proyecto Configuración r
Requeri-
• Análisis y • Monitoreo y de Software mientos
Desarroll
Diseño Control de • Aseguramient ar Program
Estimar Planificar
Recolecta
r
Requeri-
mientos
Desarroll
Program
12
ar
Software ar
Revisar Definición de un Proceso de Software
Desarrollar Software
Técnica-
Proceso: La secuencia de
pasos ejecutados para un
Probar
mente
propósito dado (IEEE)
Monitore
Proceso de Software: Un
conjunto de actividades,
métodos, prácticas,ar
y y B
transformaciones que la A D
gente usa paraControlar
desarrollar C Procedimientos y métodos
o mantener software y sus
productos asociados (Sw-
CMM)
Personas con
habilidades,
entrenamiento y PROCESO
motivación
Herramientas y
Equipos
13 14
15 16
Reque
rimien
tos de
Negoc
io
Requerimientos de Usuario
Requerimientos
Requerimientos de Software Reque
rimien
tos de
“La parte más difícil de construir un Negoc
sistema de software es decidir io Dom
precisamente qué construir. Ninguna otra de
Requerimientos de Usuario Probl
parte del trabajo conceptual, es tan difícil
como establecer los requerimientos
técnicos detallados... Ninguna otra parte
del trabajo afecta tanto el sistema Requerimientos de Software
resultante si se hace incorrectamente.
Ninguna otra parte es tan difícil de
rectificar más adelante” Dominio
Fred Brooks - “No Silver Bullet - Essence and de la
Accidents of Software Engineering”. IEEE
Computer, Abril de 1987. Solución
25 26
28
Un enfoque ágil para el tratamiento de los El cara-a-cara permite que fluya información
Requerimientos vocal, subvocal, gestual con realimentación rápida.2 personas
el pizarrón
Efectividad en la Comunicación
2 personas
en el teléfono
Video
2 personas
en el chat
Audiotaped
Papel
Tarjeta
Conversaci
ón
Historias de Usuario
(User Stories) Confirmació
n
Base de Datos
• Testeable (Verificable)
Proyecto: Características
¿Qué es un proyecto?
Es un esfuerzo temporal que se lleva a cabo para crear un • Temporal
producto, servicio o resultado único • Productos, Servicios o Resultados únicos
• Orientado a Objetivos
• Elaboración Gradual
43
47
Ley de Parkinson
La tardanza se trasmite en la programación Se
Foco en la distribuye
Actividades no independientes Plan
Alienta el
Fallas
planificació
Planificación por actividades no por características
Multitarea causa demoras adicionales
n más que
en el plan
plan
fácilmente
modificable
a lo largo
del
proyecto
Las características no se entregan por prioridad
Ignoramos la incertidumbre
Ley de Parkinson
Estimaciones se vuelven compromisos
La tardanza se trasmite en la programación
Actividades no independientes
Fallas
Ignoramos la“PREDICTION
incertidumbre
en cada
Iteracion iteración. IS VERY
es cortas.
Trabajar como DIFFICULT, ESPECIALLY
equipo. ABOUT THE FUTURE.”
Estimaciones se vuelven compromisos
La predicción es muy
Entregamo
s valor de difícil, especialmente
negocio, no
piezas de acerca del futuro.
software.
—NIELS BOHR,
Inspeccion
ar y
adaptar
¿Qué es estimar? Estimaciones en el software:
• El proceso de encontrar una aproximación sobre una medida, lo consideraciones
que se ha de valorar con algún propósito. Por definición una estimación no es precisa
• El resultado del proceso es utilizable incluso si los datos de Estimar no es planear y planear no es
entrada estuvieran incompletos, inciertos, o inestables. estimar.
• Las estimaciones tienen asociado un valor de probabilidad, Las estimaciones son la base de los planes
dado que no se realizan estimaciones en universos de pero los planes no tienen que ser lo mismo
certeza. que lo estimado.
• Cuando una estimación resulta ser incorrecta, A mayor diferencia entre lo estimado y
se denomina “sobreestimar” si la estimación superó el resultado lo planeado mayor riesgo.
real y “subestimar” si la estimación fue un valor inferior respecto del
resultado real.
Las estimaciones no son compromisos.
54
59 60
64
Estimaciones en
ambientes ágiles
más rápido.
Foco en Certeza
no en Precisión Se obtiene una mejor dinámica
Use tamaños
relativos versus
grupal
absolutos Se emplea mejor el tiempo de
análisis de las stories
Tamaño NO ES esfuerzo
67
70
Opinión Experta
Discusión Intensa
Dimensionamiento
relativo
Influencia de
estimaciones históricas
72
¿Cómo
Estimación como esfuerzo colaborativo basado en la experiencia “decodificar” las estimaciones?
0: Quizás Ud. no tenga idea de su producto o funcio
Juan * este punto.
Alicia *
José *
1/2, 1: funcionalidad pequeña (usualmente cosméti
María * 2-3: funcionalidad pequeña a mediana. Es lo que qu
Estimaciones
5: Funcionalidad media. Es lo que queremos
8: Funcionalidad grande, de todas formas lo podemo
pero hay que preguntarse sino se puede partir o div
más pequeño. No es lo mejor, pero todavía
Juan *
Alicia * 13: Alguien puede explicar por que no lo podemos d
José *
20: Cuál es la razón de negocio que justifica semeja
María *
más fuerte aún, por qué no se puede dividir?.
Estimaciones 40: no hay forma de hacer esto en un sprint.
100: confirmación de que está algo muy mal. Mejor
arrancar.
74
SON NO SON
La forma más barata y Utilizadaspara encontrar
efectiva de encontrar fallas soluciones a las fallas
Una forma de proveer Usadas para obtener la
métricas al proyecto aprobación de un producto
de trabajo
Una buena forma de proveer
conocimiento cruzado
91 92
94
Tipos de Pruebas
Principios del Testing
• Un programador debería evitar probar su propio código. • Testing Funcional
• Una unidad de programación no debería probar sus propios desarrollos.
•
– Las pruebas se basan en funciones y característic
Examinar el software para probar que no hace lo que se supone que debería hacer.
• (descripta en los documentos o entendidas por los
Examinar el software para detectar que hace lo que no se supone que debería hacer.
• analistas de prueba) y su interoperabilidad con sis
No planificar el esfuerzo de testing sobre la suposición de que no se van a encontrar
defectos.
• El testing es una tarea extremadamente creativa e intelectualmente desafiante. específicos
• Testing temprano, lo más temprano posible. • Basado en Requerimientos
• La paradoja del pesticida • Basado en los procesos de negocio
• El testing es dependiente del contexto:
• Falacia sobre la ausencia de errores: que no encontremos errores no significa que no
estén ahí.
93
95 96
Tipos de Pruebas
Niveles de Prueba
• Testing No Funcional
– Es la prueba de “cómo” funciona el sistema
– NO HAY QUE OLVIDARLAS!!!! Los requerimientos no funcionales son tan importantes como
los funcionales
Aceptaci
• Performance Testing ón
Sistema
• Pruebas de Carga
Integraci
• Pruebas de Stress ón
Unidad
• Pruebas de usabilidad,
• Pruebas de mantenimiento
• Pruebas de fiabilidad
• Pruebas de portabilidad
97 98
99 100
Planif
El Proceso de Prueba de Software ón
El Proceso de Prueba de Software Con
• La Planificación de las pruebas es la actividad de verificar que se
entienden las metas y los objetivos del cliente, las partes interesadas
(stakeholders), el proyecto, y los riesgos de las pruebas que se pretende
abordar.
Planificaci Evaluació • Construcción del Test Plan:
Análisis y • Riesgos y Objetivos de la prueba
ón y Ejecución ny
Diseño • Estrategia de prueba
Control Reportes • Recursos
• Criterio de Aceptación
• Controlar:
• Revisar los resultados de la prueba
• Cobertura y criterio de aceptación
103 104
El Software
La Administración de Configuración del Software
111 112
– reportar
cumple con sus expectativas los cambios y su estado de
de costo
Diseño ¿Febrero?
Requerimientos
Fuente 1 Fuente 2 Fuente 3 Fuente 4 Fuente 5 Fuente 6 Diseño
Objeto 2 Objeto 3 O
115 116
evaluaciones de impacto de D e v o lu c ió n
los cambios propuestos. ( C h e c k in )
a c t u a liz a
C S e c u e n c ia
Pueden ser una o varias c o n s tr u c c i ó n
bases de datos.
Variante
Evolución de una configuración
128
Actividades Fundamentales de la
El Comité de Control de Cambios Administración de Configuración de Software
• Está formado por
representantes de todas las Control de
áreas involucradas en el Cambios
desarrollo:
131
13
©2001, Kent Beck, Mike Beedle, Arievan Bennekum, Alistair Cockburn, Ward Cunningham, Martin Fowler, James Grenning,
Highsmith, Andrew Hunt, Ron Jeffries, Jon Kern, Brian Marick, Robert C. Martin, Steve Mellor, Ken Schwaber, Jeff Sutherland,
Thomas, 850+ signers
Individuos motivados
Medio comunicación: cara a cara Entregas
Proximida
s
frecuente Calidad
Métrica de progreso: software funcionando d
s
Herramient
en el
as
Ritmo de desarrollo sostenible trabajo
139 140
Colaboración Auto-organizació
Valores de SCRUM Empirismo
Cimientos
de
Scrum
Prio
Time Boxing
141
Responsabilida
Participa en la planificación
des
Define el criterio de aceptación y
verifica si no se cumple
Coach Auto-organizado
Características
Líder de Servicio Habilidades en forma de “T”
Tamaño correcto
Focalizado y comprometido
Escudo de interferencia
Larga vida
Flujo
Sería lindo
tener
Tamaño original
del Ítem Refinar Ítem
No lo
tendrá
Borrar Ítem
Planificación
Listo del Sprint
147 148
Story Time
Timebox de
La planificación del Sprint hasta un mes
es la primera actividad
calendario
de cada Sprint
Sprint 1 Artefacto: Sprint Backlog
Suma
Sprint Backlog Cada característica…
… se divide en un conjunto de tareas. horas-
de las
esfuerz
Cada Sprint tiene su o
estimad
IPBs Tareas
Sprint Backlog 8
Crear Esquema BD as
Codificar la IU Automatizar Pruebas
19
Hs=5 Hs=8 Hs=6
+
Crear Esquema BD
Codificar la IU Automatizar Pruebas
Agregar registro error Crear iconos Buffer para prueba
Hs=5 Hs=8 Hs=6
5 Hs=12 Hs=8 Hs=2 22
+
Agregar registro error Crear iconos Buffer para prueba
Hs=12 Hs=8 Hs=2 Instalar LibreríaAutomatizar Pruebas
3 de Gráficos Hs=8 Hs=6 14
152
Resumiendo Roles
• Scrum Master
• Product Owner
Sprint
Execution
SCRUM… • Scrum Team
• Sprint Plan
Artefacto: Roles • Daily Scrum
Versión del Producto Ceremonia • Sprint Rev
so • Sprint
Incremento Reuniones
del producto Retrospect
potencialment • Story Time
e entregable
(opcional)
• Product Backlo
• Sprint Backlog
Artefactos
Sprint Review • Versión del
Producto
Ceremonia
so
Reuniones
Programación Extrema (Extreme Programming)
Extreme
Programm
ing
Artefactos
158
160
0. Leer el
requerimien
Pruebas) 5. Re
factorizar
1. Agregar
una prueba
4. Ejecutar 2. Ejecutar
la prueba la Prueba
3.
Implementa
r