Upload
daniel-gil
View
262
Download
1
Embed Size (px)
Citation preview
El#reto:#¿Cuál#es#la#dificultad?#
Agile?: Para reflexionar El cliente no siempre tiene el tiempo (reuniones, pruebas…) Liberación de versiones muy frecuentes = percepción de mala calidad Agile está dirigido por lo que el usuario quiere, dejando del lado algunos aspectos no funcionales Es casi imposible de realizar estimados de esfuerzo realistas para hacer un presupuesto Dificiles negociaciones entre comerciales y equipo de desarrollo Algunos omiten diseñar su trabajo de la mejor manera Puede incluir mucho re-trabajo (que tal un defect backlog)
Agile: Nuestro juego Quienes desarrollan los productos de software: el equipo de desarrollo --su disciplina, habilidades y compromiso.
Deberes del equipo:
– Motivarse a sí mismo – Negociar compromisos – Controlar su avance y trabajo – Producir con alta calidad y excelencia – Confiar en su capacidad – Ser disciplinados
Derechos del equipo – Ser asignados a tareas dignas – Tener la confianza y el respaldo de la gerencia
PSP no es… • La solución para todo • Una aproximación distinta al desarrollo de sw • Un nuevo lenguaje ó paradigma de programación • Algo para controlar tiempos • No es un proceso de dllo Waterfall
PSP es más… • Un proceso que permite hacer planeación y conocer el status de tus
actividades • Un vehículo para medir y conocerte • Una manera de mejorar tu calidad • Enfocarse en el individuo
PSP: Proceso de Software Personal
Proceso definido para construir productos de alta calidad a tiempo y con el presupuesto establecido
¿de qué vamos a hablar?
• Fundamentos y Conceptos básicos • Medición de tamaño y estimación • Construir y hacer seguimiento a planes de
proyecto • Planeación y seguimiento a la calidad de
software • Diseño de software • Adaptación del proceso
Proceso definido: Definición
secuencia documentada de pasos para hacer un trabajo especifico. • PSP: Proceso de software personal • TSP: Team Software Process • Patrón de proceso – operativo
Planes vs Procesos
Planes incluye pasos del proceso y otros elementos como recursos, roles, calendario,
presupuesto, metas, compromisos, riesgos
Fases del proceso
Elementos#del#
proceso#
Guiones#
Métricas#
Formularios#
Estándares#
Principios de medición
Métrica exacta
Métrica precisa
Para qué se usan las medidas? Evaluar – estimar – predecir
Elementos de estadística
Distribución: Conjunto de valores numéricos generados por un proceso común
Elementos de estadística
• Correlación: Relación entre conjunto de datos • Significancia: Probalidad de que dos conjuntos de datos tengan un alto grado
de correlación por casualidad • Regresión lineal: Determina la línea a través de los datos que minimiza la
varianza de los datos con respecto a dicha línea • Intervalo de predicción: Proporciona un rango alrededor de una estimación
hecha mediante mediante la regresión lineal • Regresión múltiple: se usa cuando las estimaciones dependen de más de una
variable
Conceptos básicos
Fidelidad: Grado en el que los individuos siguen su propio proceso
Recolección de datos
• Son recolectados por las personas • La info debe ser precisa y relevante • Uso de herramientas automatizadas • útiles para hacer planes personales y precisos • conjunto de datos es mejor que nada
Metricas
• Postmortem • Metricas de desempeño y combinadas • Analizar los datos históricos
Analisis de datos: precisión de la estimación de tamaño y esfuerzo
Con qué frecuencia está lo estimado contra lo real dentro del 70% del intervalo de predicción? Hay tendencia a omitir partes del diseño conceptual? Que se puede hacer para mejorar las estimaciones? Se juzgan bien los tamaños? La productividad es estable? por que si y por que no?
Analisis de datos: yields Identificar si existe relación entre el yield y la tasa de revisión para las revisiones de diseño y código Los defectos se encuentran en las fases adecuadas? Se llevan a cabo las revisiones? Que apalancamientos se tienen de eliminación de defectos para las diversas combinaciones de las fases evaluación/falla y cómo se pueden mejorar?
Analisis de datos: defectos inyectados por fase
• Qué tipos de defectos se encuentran con mayor frecuencia?
• Qué tipos de defectos tardan más en encontrarse y en corregirse?
• Analizar tendecnias por fase - densidad de defectos
el costo del retrabajo % del tiempo que tomará hacer una prueba libre de defectos Cuanto tiempo toman las pruebas? Tipos de defectos más costosos por corregir Tipos de defectos más encontrados en compilación y pruebas Tipo de defectos más encontrados en las pruebas y en el producto entregado
Mejora de procesos
• Metas de mejora del desempeño basados en históricos
• Registro de PIPs • Monitorear los resultados del
desempeño evitando el bolstering y el clutching
Medición de tamaño y estimación
Por qué usar las métricas?
Para lograr consistencias, normalizar datos y mejorar estimaciones de tamaño y mejorar
los planes
Tipos de métricas
• Absolutas o relativas • Explicitas o derivadas • Objetivas o subjetivas • Dinamicas o estáticas • Predictivas o explicativas
Criteros para la selección de una métrica
Relacionadas con el esfuerzo de desarrollo Contables automáticamente Adecuadas para la planeación temprana Se utilizan estandares de conteo
Conteo de tamaño
Added & Modified
Deleted
Added
Untouched
Modified
New Reusable
New Reusable
Reused
Qué medidas de tamaño podemos usar?
Qué retos obtenemos al estimar el tamaño?
La estimación es incierta Estimar es un proceso de aprendizaje Estimar es una habilidad Estimaciónes están sujetas a error Estimación a detalle
Peor aún… si vamos a estimar con las medidas de tamaño, las tenemos al inicio de la planeación?
Ejemplo: Estime la construcción de su casa
El problema
• Usted quiere saber cuanto le cuesta • Su constructor le dice que está relacionado
con el tamaño en metros cuadrados • Cómo sabría ud el presupuesto?
La solución Su constructor probablemente tenga históricos de otras construcciones de acuerdo a las habitaciones
Sería más fácil para usted ahora?
Tamaños'rela+vos'
Tipo#de#habitacion#
Pequeña# Mediana# Grande#
Dormitorio# 25# 40# 70#
Baño# 5# 10# 15#
Sala# 40# 70# 120#
…#
Proxy: Una medida sustituta
• Usar proxys en lugar de una métrica de tamaño • La mayoría de las métricas de tamaño no están
disponibles durante la planeación • Un proxy es una métrica sustituta que relaciona
el tamaño del producto con la funcionalidad planeada
• El proxy proporciona un medio en la fase de planeación para juzgar el tamaño probable de un producto
Criterios para seleccionar un proxy
• Correlaciona con el esfuerzo y los costos de desarrollo
• Se debe poder contar directamente • Facil de visualizar al inicio del proyecto • Adaptable a las necesidades de cadad proyecto • Sensible a las variaciones de implementación que
afectan el costo o el esfuerzo
Uso de tablas de tamaño relativo
• Se utilizan para organizar los datos de los proxys, para que los datos históricos puedan ser utilizados al estimar el tamaño de partes nuevas semejantes
• Para construirlas se usan dos metodos: – Método de ordenamiento – Método de la desviación
Procedimiento para estimar el tamaño y esfuerzo : PROBE
1.#Definir#el#diseño#conceptual#
2.#IdenMficar#y#darle#tamaño#a#los#proxies#
3.#EsMmar#los#otros#elementos#
EsMmar#el#tamaño#del#soQware#según#el#método#apropiado#
Calcular#intervalos#de#predicción#
WBS#(Work#Breakdown#Structure)#
Partes#y#tamaños#relaMvos#
Base,#reuMlizadas,#borradas,#A&M#
A# B# C# D#
A tener en cuenta…
• Datos amontonados o agrupados
• Puntos de datos extremos • Productos sin precedentes • Rango de datos
Práctica PSP0
Recordemos en PSP0…
Construir y dar seguimiento a planes de proyecto
Principios de planeación
Planear antes de comprometerse Deben participar quienes ejecutan
Basarse en historicos Planee y replanee
Típicamente en la planeación hacemos…
• Un entendimiento de los requisitos • Estimamos el tamaño • Estimamos el esfuerzo • Hacemos una lista de tareas • Hacemos un calendario
Qué esperamos de un plan PSP?
Define#el#trabajo#(las#partes)#
Es#una#base#para#el#costo,#calendario#y#recursos#a#solicitar#para#un#proyecto#
Es#una#estructura#de#organización#para#el#trabajo#
Marco#para#la#obtención#de#recursos#
Registro#de#lo#que#inicialmente#fue#compromeMdo#
Orientan#a#las#personas#y#les#permite#hacer#seguimiento#a#su#trabajo#
Permiten#hacer#proyecciones#realistas#y#ser#más#producMvos#
Marco de planeación: Componentes de un plan
Tamaño#del#proyecto#y#Mempo#
Estructura:#secuencia#de#tareas#
Estado#del#proyecto:#Poder#medir#el#estado#y#proyectar#su#finalización#
Evaluación:Comparar#datos#reales#versus#lo#
esMmado#
Componentes#de#un#plan#
Marco de planificación
1.#Definir#los#requerimientos#
2.#Generar#un#diseño#conceptual#(Entender)#
3.#Generar#la#esMmación#del#tamaño#del#producto#
4.#Generar#la#esMmación#de#recursos#(Mempo)#
5.#Generar#el#calendario#
Statement#of#work#
WBS#
PROBE#
PROBE#
Recordemos los proxys: medidas sustitutas
Procedimiento para estimar el tamaño y esfuerzo : PROBE
1.#Definir#el#diseño#conceptual#
2.#IdenMficar#y#darle#tamaño#a#los#proxies#
3.#EsMmar#los#otros#elementos#
EsMmar#el#tamaño#del#soQware#según#el#método#apropiado#
Calcular#intervalos#de#predicción#
WBS#(Work#Breakdown#Structure)#
Partes#y#tamaños#relaMvos#
Base,#reuMlizadas,#borradas,#A&M#
A# B# C# D#
Relación entre tamaño y esfuerzo del software para la planificación
• Correlación de tamaño con esfuerzo: los datos de tamaño son adecuados para la planificación si el valor de r2 > 0.5 y si el area de la cola en el calculo de la significancia es <= 0.05
• Productividad: Se mide en tamaño x hora, es la relación del tamaño del producto con el tiempo que se toma en desarrollarlo
PROBE utiliza datos históricos y herramientas estadísticas para producir estimados
Tiempo de desarrollo=B0 + B1*Tamaño estimado proxy(E) E=BA+PA+M
Script#
Planeacion de tareas y calendario
Accesible# Claro#
Específico# Preciso#
CaracterísMcas#de#un#plan#de#proyecto#
Planes de calendario PSP
1.#Elija#un#periodo#de#Mempo#adecuado#
2.#Distribuya#el#Mempo#esMmado#disponible#para#tareas#a#lo#largo#de#la#duración#del#calendario#del#proyecto#
3.#Calcule#el#acumulado#de#horas#calendario#planeadas#hasta#el#final#del#periodo#del#
proyecto#
Semana'No.' Horas'planeadas'Horas'Planeadas'acumuladas' Nro'tareas'
1# 15# 15#1,2#
2# 15# 30#3,4,5#
3# 15# 45#6,7#
4# 15# 60#8,9#
5# 15# 75#10,11#
Planes de tareas PSP
1.#EsMmar#el#Mempo#de#tareas#en#horas#
2.#Calcular#la#suma#del#total#de#horas#
planeadas#
3.#Calcular#el#plazo#del#plan#en#que#cada#tarea#planea#ser#
terminada#
3.#Calcular#la#fecha#planeada#de#
finalización#del#proyecto#
Tareas#nro.# Tarea# Hrs#EsMmadas#
Horas#acumuladas#esMmadas# Semana#nro.#
1#Elemento#1#DLD# 8# 8# 1#
2#Elemento#1#DLDR# 4# 12# 1#
3#Elemento#1#CODE# 10# 22# 2#
4#Elemento#1#CR# 5# 27# 2#
5#Elemento#1#UT# 2# 29# 2#
6#Elemento#2#DLD# 9# 38# 3#
7#Elemento#2#DLDR# 4# 42# 3#
8#Elemento#2#Code# 12# 54# 4#
9#Elemento#2#CR# 5# 59# 4#
10#Elemento#2#UT# 3# 62# 5#11#PM# 1# 63# 5#
Seguimiento al calendario
Valor planeado PV: % respecto al total del tiempo planeado para el proyecto Valor ganado EV: PV aportado por una tarea cuando es completada. En ese momento se suma su valor PV al acumulado del EV
Seguimiento al calendario
EV supone que la tasa de finalización de las tareas será aproximadamente la misma que se lleva al momento. Si ese no es el caso, la proyección no será valida EV mide el progreso con respecto al plan, por lo que si el plan no es exacto el EV tampoco lo será EV asume con los recursos del proyecto son uniformes, es decir, no tiene en cuenta las variaciones que pueda traer cambios en el número de personal
Análisis del PV – EV: Herramienta gerencial
• Si PV está por encima del EV, el proyecto va retrasado
• Si el PV es igual que el EV el proyecto va a tiempo
• Si el PV está por debajo del EV, el proyecto está adelantado
• Se puede estimar la fecha de finalización caluclando el EV promedio y proyectar.
VG#y#VP#al#día#6?#Cuando#se#proyecta#terminaría#el#proyecto?#
Planeación y seguimiento a la calidad
Principios#de#
calidad#
Responsabilidad#personal#
Economía#de#la#calidad#
Calidad#del#producto#
Calidad#del#proceso#
Metricas#de
#calidad#
Yields#(%#defectos#removidos#antes#de#…)#
Fase#
Proceso#
Costo#de#calidad#
De#Fallas#
De#evaluación#
De#prevención#Tasas#de#revisión#
RaMos#fasemMempo#
Densidad#de#defectos#
Indice#de#calidad#del#proceso#
Apalancamiento#de#eliminacion#de#defectos#
Ver#formulas#
Metodos de calidad
Revisiones personales Inspecciones
Walkthroughs
Revisiones de código
Usar#Checklist#de#revisión#de#código:#categorías#más#importantes#y#personales#
Estrategia#de#revisión#de#código:#vaya#subiendo#de#
nivel#por#categoría#
Revisión#contra#un#estándar#de#codificación#
Revisiones de Diseño PSP
Checklist#de#revisión#de#diseño,#se#basa#en#datos#personales#y#lista#las#categorías#
de#defectos#más#importantes#encontrados#por#el#individuo#
Compruebe#que#la#lógica#implementa#correctamente#los#requerimientos##
Revise#asuntos#de#vulnerabilidad#y#seguridad#
Por qué de las revisiones?
Eficiencia:Las revisiones buscan iteraciones y entregables de alta calidad Realizarse antes de cualquier prueba unitaria Objetivo: Reducir el tiempo de pruebas
Diseño de software
Transforma#un#requisito#en#una#especificación#de#producto#realizable#
Maneja#la#complejidad#y#la#interacción#de#componentes#
Base#para#la#evaluación#
Emplear#prácMcas#de#diseño#que#
correspondan#a#las#necesidades#
Principios#del#diseño#
externam#estáMca#(herencia,#estructura#de#
clases)#
externam#dinámica#(servicios,#mensajes)#
internamestáMca#(atributos,#estructura#del#
programa,#lógica)#
internamdinámica#(máquina#de#estado)#
Estructura#de#la#
especificacion#
Estrategias del diseño
• Progresiva, progressive • Expansión funcional, functional enhancement • Camino rápido, fast path • Simulación, dummy
Calidad del diseño
Completitud Usabilidad
Implementación#
Diseño#detallado#
Diseño#de#alto#nivel#
Diseño#del#sistema#
Especificación#de#requisitos#
Estrategias: • Progresiva • Expansión funcional • Camino rápido
Documentación del diseño: A quién le interesa? – El individuo: para facilitar
implementación, verificación, prueba del programa
– Los miembros del equipo: para permitir las inspecciones de diseño y la coordinación de diseño
– Testers: para permitir la planeación de las pruebas.
– Ejecutivos: Product Mgmt – Documentadores y usuarios: para
que otros puedan entender lo que el producto hace y cómo funciona
Plantillas de diseño
planMlla#de#especificación#
operacional#(OST)#y#la#planMlla#de#especificación#funcional#(FST)#
planMlla#de#especificación#funcional#(FST)#
planMlla#de#especificación#de#estados#(SST)#
planMlla#de#especificación#lógica#(LST)#
Externa#
Dinámica#
Interna#
EstáMca#
Verificación del diseño Uso de estándares Metodos de verificación
Verificación con tabla de ejecución verificación con tabla de rastreo Verificación de máquina de estados Verificación de ciclos
Por que? : Mars climate 1998
Extensión y adaptación del proceso
• Defina un proceso personal adaptado a su realidad
• Evolucione con el proceso • Uso de datos para descubrir sus debilidades
y fortalezas. • Aprenda de otros y enseñe lo que sabe
Extensión y adaptación del proceso
Defina#un#proceso#personal#adaptado#a#su#realidad.#Evolucione#con#el#proceso##Uso#de#datos#para#descubrir#sus#debilidades#y#fortalezas.###Aprenda#de#otros#y#enseñe#lo#que#sabe#
Gracias!! http://about.me/danielfelipegil