autores: hanna hulkko pekka abrahamsson múltiples casos de estudio sobre el impacto de la...
TRANSCRIPT
AUTORES:HANNA HULKKO
PEKKA ABRAHAMSSON
Múltiples Casos de Estudio sobre el Impacto de la Programación en Pares
sobre la Calidad del Producto
Mayrée Ludeña RengifoJinob De la Cruz Magallanes
Agenda
Estado Actual de Programación en ParesEvaluación de los casos de EstudioResultados sobre la calidad del software
Programación en Pares
DRIVER N
AVIG
ATO
R
Programación en Pares
DRIV
ER
NAV
IGAT
O
R
Programación en Pares
Es una técnica de programación en la cual 2 programadores trabajan juntos en una misma computadora en la misma tarea.
La persona encargada de elaborar el código es llamada “Driver”, la otra llamada “Navigator”, es la responsable de buscar los errores, pensar en la estructura del código, encontrar la información cuando sea necesaria y ser el apoyo y generador de ideas para el “Driver”.
Importancia de la Programación en Pares
Los principales beneficios asociados a ese nuevo tipo de programación se suelen considerar como: Aumento de productividad del desarrollo del producto.
(reduciendo los tiempos de desarrollo) Aumento de la Calidad del Producto. Menos estaciones de trabajo
Estos dos supuestos son los que se tratan de comprobar con los casos de estudio que se tratan en el documento.
Críticas de la Programación en Pares
Desarrolladores expertos pueden encontrar tedioso enseñar a un desarrollador menos experimentado en un ambiente emparejado.
Muchos desarrolladores prefieren trabajar solos y encuentran el ambiente emparejado incómodo.
La productividad es difícil de medir, para comparar desarrolladores en parejas contra desarrolladores trabajando solos.
Diferencias en el estilo de codificación pueden resultar en conflictos, aunque esto a su vez promueve la normalización (estandarización), para que todo el mundo pueda entender el código.
Categorías de Investigación
Los estudios han sido organizados basados en la investigación para lo cual han utilizado las siguientes categorías: Casos de Estudio Experimentos Encuestas Reportes de Experiencias
Categorías de Investigación
1998 1999 2000 2001 2002 2003 20040
5
10
15
20
25
30
EncuestaRep. ExperienciaExperimentosCasos de uso
Estado Actual de la Programación en Pares
Existen pocos casos de estudio correctamente documentados .
La mayoría de los casos de estudio han estado orientados ala parte de caracterización de programación de pares que a la calidad del producto.
La mayoría de las conclusiones se han basado en experimentos a nivel de investigación, no en casos de desarrollo de software de mercado.
La metodología de medición de calidad no esta claramente establecida.
3
3
4
54
8
La distribución de los estudios empíricos basados y enfocados en la investigación
PP com parte de la Programación Ex-trema
PP vs. Revisiones
Técnicas especiali-zadas PP
Aspectos educativos relacionados con PP
Aspectos psicológicos de PP
Efectos de PP sobre los productos y proyectos de sw
Casos de Estudio
Colecta de datosResumen de recursosResultado de los casos
Colecta de Fuentes de Información
FUENTE TIPO DE DATO CASO 1
CASO 2
CASO 3
CASO 4
Hojas Excel Esfuerzo: tarea, tipo de esfuerzo, horas
X X X X
Notas de los Desarrolladores
Esfuerzo:observaciones personales
X X X X
Notas de los programadores en pares
PP:tiempo,tareas, nombre de los pares, cambios de rol
X X X
Lista de defectos
Tarea que lo origina, cuando se detecta, severidad
X X X X
Código fuente (líneas base luego del c/iteracción)
Código relacionado a los datos, cantidad de LOC, Parte de código Individual / PP
X X X X
Entrevistas Finales
Datos cualitativos, experiencia
X X X X
Observación Uso de pp X
Resumen de los Recursos de los Casos de EstudioCASO 1 CASO 2 CASO 3 CASO 4
Duración 8 semanas 8 8 5
Tamaño del Equipo 4 personas 5.5 4 4-6
Desviación Total Esfuerzo
7.5 personas / mes 10 5.5 5.2
Iteracción 6 6 6 6(9)
Tipo de Producto Aplicación Intranet Aplicación para
Celular
Aplicación para Celular
Aplicación para
Celular
Concepto del Producto
Sistema de Gestión de Búsqueda de
datos
Explorador de stock de
mercado
Sistemas de control de producción
Sistemas de control
de producción
Tamaño del Producto (LOC lógico)
7700 7100 3800 3700
Lenguaje de Programación
Java / jsp Java Movil Java Movil Symbian C++
Métricas
METRICAS DE USO
Porcentaje de esfuerzo de la programación en pares
Productividad entre las iteraciones (programación en pares ó individual)
Base de la Programación en pares
METRICAS DE CALIDAD
Densidad de las desviaciones de estándares de la codificación : programación en pares ó individual
Ratio: programación en pares ó individual
Densidad relativa del defecto programación en pares ó individual
MU1:Porcentaje de esfuerzo de la programación en pares
I1 I2 I3 I4 I5 I60
20
40
60
80
100
120
Caso 1Caso 2Caso 3Caso 4
3 primeras iteracciones los ratios son similares, el caso 3 es
un poco más alto y el 4 es un poco más bajo
En los casos 2 y 3 es evidente que la pp, disminuye constantemente, especialmente en la iteración 6 para el caso 3 la programación es
individual.
En los casos 1 y 4 la pp ha incrementado en las iteraciones 4 y 6. En cambio han disminuido notablemente en la iteración 5. (las 3 primeras semanas del caso4 no están incluidas en el estudio)
MC1:Densidad de las desviaciones de estándares de la codificación : pp ó individual
Solo se analizaron los casos 2 y 3, debido a que el caso 1 no utilizó estándares y en el caso 4 el código fue escrito por una
herramienta Symbian C++, el trabajo consistió solo en análisis
Caso 2 Caso 30
1
2
3
4
5
6
7
8
ParesIndividual
En este ESTUDIO: La densidad de la desviación de estándares es mucho más alta para la programación en pares
que para la programación individual.
Conclusiones
La programación en pares es más productiva que la individual y se incrementa gradualmente.
La programación en pares es la más útil para tareas complicadas, capacitación, entrenamiento y aprendizaje.
La programación en pares produce un código más legible y con menos defectos.
Aumento en la calidad del desarrollo de software para Tareas que no son rutinarias Proyectos de mediana y larga duración