SlideShare una empresa de Scribd logo
SESIÓN 01: Definiendo un proceso

1
AMBIENTACION [20min]
[>] Se concientiza al publico sobre proyectos que no terminan o que no cumplen los requerimientos y o su
nivel de calidad es bajo.

2
Proyectos de Software Hoy [i]
Todos los proyectos de software son 100% exitosos?

•
•
•
•

Se entregan a tiempo,?
Cumplen lo que el cliente espera?
Sin defectos, un producto de muy buena calidad, sin bugs?
El cliente está satisfecho?

• [>] Hacer la paradoja de un carro (la construcción de un automóvil, cómo fuera si no tuviese calidad?)
Lo que los desarrolladores quieren
• Hacer un trabajo técnicamente interesante y de calidad
• Libertad al hacer el trabajo
• Requerimientos estables
• Cronogramas realistas
•
•
•
•

[>] me han pedido algo para ya, por la urgencia?
[>] los superhéroes existen? (los que se trasnochan)
[>] he llegado tarde a casa por algún tema de urgencia? Le han reconocido eso?
[>] mi esposo/esposa está aburrido de la situación?

Lo que los managers quieren
•
•
•
•
•

Se cumplen los acuerdos (se cumplen fechas, con calidad)
Metas agresivas que se cumplen
No hay sorpresas al final
Existe habilidad para cambiar los requerimientos
Entrega de productos tan pronto como es posible

---------------------------

3
Primeros puntos para el cambio
• Managers son muy optimistas respecto a lo que se puede alcanzar
• Desarrolladores aceptan cronogramas irreales
• Finalmente el producto no se termina a tiempo y se demora más ajustar el producto acorde a la calidad
requerida
• Los desarrolladores pierden credibilidad dado a los retrasos en cronogramas.
• Cómo ganar esa credibilidad para controlar el trabajo del programador?
• Qué puntos debemos tener en cuenta al planear?, Veamos a continuación:
Puntos
• Entender lo que el cliente quiere
• Planeación
• Con información histórica
• Si no hay info histórica: a juicio de experto
• Estimar con suficiente detalle (detal forma que al sub-estimar o sobre-estimar haya un balance)
• Ser realista en el tiempo que se tiene disponible para hacer el trabajo
[>] Normalmente se toma el tiempo del 100% (40h semanales). Se debe tener en cuenta que
la persona va al baño, a veces se desconcentra
• Si no alcanza el tiempo, Ofrecer Alternativas
[>] explicar lo racional detrás de las alternativas
• Seguimiento (Tracking)
• Hacer planes medibles, hacer planes que se puedan medir
• Cuando el plan se desvía, hacer correcciones
[>] si me retraso en un plan por 2horas, necesito 2 horas para desatrasarme?
• Comunicación con el equipo de trabajo
• Responder al cambio (Responsiveness)
• Si hay cambios en los planes, entregar feedback para poder ajustar el plan
• Si no se puede ejecutar todo, hacer entregas incrementales....
• ...Pero entregar lo más importante primero
• Responder a los compromisos (commitments)
• Cumplir acuerdos realizados
• Entregar soluciones de sw que funcionen
• [>] El trabajo con información requiere concentración de la persona, la musa de la inspiración

4
Qué se de mi performance hoy (manager)?
• De alguna forma se conoce el performance fuera de la caja “Trabajo”
• Pero no se tiene la visión de lo que ocurre dentro de la caja (ver algiunos ejemplos en el siguiente slide)

5
Que sé de mi performance hoy?
• cómo se gasta el tiempo,
• qué actividades toman el mayor tiempo paraser realizadas
• ´con cuántos defectos sale el producto
• Para cuándo puedo tener el producto?

6
INTRODUCCIÓN AL PSP [30min]
Qué es un proceso?
• Una secuencia de pasos que un profesional sigue para realizar una tarea específica
• Repetible: que lo pueda realizar muchas veces: Completo y Correcto
• Predecible: Que pueda usar para planear mi tiempo, coordinar mis recursos, sin sorpresas
• Definido: Un proceso definido es una plantilla “documentada” con series de pasos genéricos para hacer
un trabajo de forma tal que cada vez que se hagan sean de forma similar. De esta forma se puede lograr
un marco para planear, manejar la calidad y delimitar el trabajo
• [>] Hacer la paradoja de las salchichas (las salchichas en un proyecto industrial)
.
El plan es hecho para un trabajo específico, mas otra información como esfuerzo, costo, fechas, budget,
identificacion de riesgos

7
Qué es un proceso personal?
• Es una serie de pasos para guiar el desarrollo de software a nivel personal
• Se comienza con un proceso realizado por alguien más con experiencia
• Se va mejorando cada vez para suplir necesidades
Por qué definirlo?
• Consistencia: poder crear un modelo de desarrollo predecible: resultados similares / resultados
predecibles
• Eficiencia: estrucutras que guian el trabajo, se enfocan en producir algo y no desviarse
• Base para mejora: recolectar datos sobre el proceso, para luego ubicar las oportundiades de mejora y
aplicarlas.
Qué es PSP (un proceso personal de software)
Un proceso personal para escribir software, con los siguientes principios:
(1) Cada desarrollador es diferente
(2) Medir el trabajo que se hace ... Para poder luego mejorar
(3) El desarrollador es responsable de la calidad del produco
(4) Cuesta menos pevenir defectos en fases templranas del proceso quer en fases tardías
Historia de Watts S. Humprey
• Muchas de las organizaciones grandes y pequeñas surgieron porque el software resultó ser una industria
rentable en sus inicios por la demanda que tenía. Sin embargo su crecimiento desmedido planteaba
interrogantes sobre la calidad de las personas involucradas dentro del desarrollo de los productos (lo que
se denominó la Crisis del software: o bien los proyectos no terminaban a tiempo, o bien terminaban con
sobrecostos o bien la espectativa de calidad era mayor a la que reflejaba el producto).
• Una de las organizaciones que comenzó a preocuparse por la estandarización en el software que
gestionaban fue el Departamento de defensa de EEUU (DoD), quien convoca un concurso a través de
universidades, quedando seleccionada la universidad Carneggie Mellon, a través de los fundamentos de lo
que hoy es PSP y TSP con Humphrey a la cabeza, y posteriormente su implantación a nivel de empresas
mediante la definición de modelos de madurez CMM.
(http://catarina.udlap.mx/u_dl_a/tales/documentos/lis/moreno_a_jl/capitulo2.pdf). Sin embargo el
interés de PSP no es solo dejar el proceso planteado en papel (enactable, el qué hacer) sino definir cómo
poder ejecutarlo (operational, el cómo hacerlo).
• En muchas profesiones, los “primíparos” tienen que aprender sus habilidades a la mano de un experto, y
con las medidas en el desempeño de su trabajo se van sumando puntos para medir su desempeño.
• Es precisamente la actividad que se hará a lo largo del presente cursillo, donde iniciaremos realizando una

8
planeación del uso del tiempo, comenzar a controlar el consumo de él y posteriormente
poder compararlo con lo que realmente hacemos. De igual forma, vamos a i registrando
las equivocaciones que cometemos con el fin de establecer puntos de mejora [es lo que
se denomina el paradigma plan-do-check-improve]
Principios
• Cada quien es diferente
• Cada quien es responsable de la calidad de lo que hace
• Más eficiente encontrar y corregir en etapas iniciales del proceso que en las finales
• Más eficiente prevenir defectos que tener que corregir bugs
• Los datos capturados son personales, y no se usan para pagarle al empleado o castigarlo.
Si fuese así, y el trabajo de un empleado es de 40h a la semana, los datos siempre darán
40h reportadas.

8
Los elementos de psp son 4 basicamente
Scripts,
que son el guion que documenta el proceso
Measures (Medidas),
que permiten cuantificar el proceso y dar a conocer cómo evoluciona el trabajo
Forms
Para capturar los datos
Starndards
Definiciones consistentes para clasificar los datos tomados

9
Scripts
Que no ocupe mas de una pagina
Es la guía para hacer la tarea
Es la guía del experto sobre cómo usar el proceso
Contiene
• Propósito
• Criterios de entrada
• Pasos
• Salidas

10
Forms
• Forma de capturar los datos
• Soporte de herramientas para hacerlo
• Ejemplos:
• (1) timelog
• (2) defect log
• (3) checklist

11
Standards
• Definiciones que facilitan la captura de datos

12
Las métricas permiten entender:
• El tiempo gastado en actividades
• Dar a conocer cuántos defectos fueron inyectados y removidos
Con dichos datos los desarrolladores pueden
Planear y estimar el trabajo
Evaluar los resutlados
Mejorar (Improve) el proceso para el siguiente proyecto
Para medir el proceso:
• el trabajo se divide en conjuntos de tareas o actividades llamadas fases.
Por fase se mide:
• Tiempo gastado por fase
• Defectos inyectados
• Defectos removidos
• El tamaño es medido sólo al final, cuando está completo
Las metricas core son
• Size (Tamaño): indican qué tan grande es el producto. Se prefiere que este conteo se pueda automatizar y
que lo haga unba herramienta.
• Effort (Esfuerzo, Tiempo): se captura en minutos por ser mas sencillo, interrupt-time: no es incluido, y offtask : normalmente no es capturado, porque no contribuye a las tareas del proceso: ejemplo:
management, meetings, training, email
• Quality (Calidad): se preocupa por capturar los defectos que se originan y remueven a lo largo del proceso
• Schedule (Cronograma): información de planeación y tracking quye se tienen en cuenta para el
scheduling.

13
Aprendiendo PSP [i]
• PSP es introducido poco a poco.
• A lo largo del cursillo se van a escribir pequeños programas cada paso.
• A lo largo de cada programa se va a hacer recolección y análisis de datos
• Y los datos se usarán para mejorar (improvement).
• PSP0: se establece la linea base de trabajo
• PSP1: se practica esfuerzo y estimación, tratando de obtener precision
• PSP2: se practica la gestión de defectos y una métrica relacionada (yield)

14
Presentación
Cada persona indica :
• nombre
• seleccionar un lenguaje de programación con el cual va a arealizar algunos ejercicios.
• También dirá las espectativas del cursillo
[>] 1 minuto por persona

15
Aprendiendo PSP [ii]
En comparaciones entre 30mil programas realizados:
(1) Al inicio hay mayor error de estimacion, y Luego hay mejor precisión (accuracy) y balance entre over y
underestimates (en el ultimo, el error es mas cercano a cero)
(2) El tiempo de compiling y testing va disminuyendo a lo largo del desarrollo de los programas
(3) La productividad se mantiene, pese a que se van a ir introduciendo actividades nuevas (Grafica de
Tamaño vs LOC/h)

16
Tutorial PSP0 [i] [40min]
Recoleccion de datos:
• No recolectar datos por hacerlo, sino pensar en el objetivo: entender la improtancia de hacerlo, para
poder usar los datos al planear: similares productos, similares estimados
• Preferible capturar los datos cuando suceden los hechos (para que no se olvide despues)
Fidelidad
• Grado en el cual los individuis siguen el plan
Calidad
• La calidad del producto es governada de alguna forma por el proceso que se use

17
Tutorial PSP0 [ii]
• Preparación para el assignment
• Errores comunes y como evitarlos
• Incorporar measures básicos

• Seguir las fases en orden
• No amañar los datos

Pasos:
• Planning: producir un plan para hacer el trabajo y guiado por los requerimientos
• Desarrollo: cómo hacer el trabajo
• Design: producir una especificacion de diseño para el programa definido por los
requerimientos
• Coding: Transformar las especificaciones de diseño en statements de un lenguaje de
programación
• Compile: Traducir los statements en codigo ejecutable o bytecode ejecutable
• Test: verificar que el codigo ejecutable satisface los requerimientos
• Postmortem: (1) resumir y analizar la data capturada alrededor del desarrollo del proyecto (2)
actualización de los datos del proyecto y métricas (3) cálculo de los datos relevantes de calidad o
desempeño (3) revisión del performance (desempeño) real respecto al plan (4) actualización de
BD’s históricas con datos de tamaño y productividad (4) Usar datos personales para hacer ajustes
al proceso (5) documentar PIPs (process improvement proposals) generados durante una fase o
proyecto
De igual forma se puede trabajar un enfoque iterativo, PSP no es un proceso en cascada (waterfall).
La figura muestra 2 modulos desarrollados.
Los ciclos tambien pueden incluir la fase de diseño. Usted debe determinar qué sirve según el
proyecto.

18
Tutorial PSP0 [iii]

CD para estudiantes
http://www.processdash.com/download_mec/pfaStudentCD
Descargar Tutorial asociado y seguirlo con el process dashboard.
(1) Iniciar process dashboard
(2) Seleccionar task NonProject / PspFundamentals&Advanced / StudentProfile
(3) Seleccionar menu / studentprofile
(4) Llenar los datos del estudiante
(5) Ver los programas con el hierarchy editor
(6) Sacar un backup: c/tools/data backup / (save)
(7) Abrir el backup creado (sale una segunda barra processdash)
(8) Mostrar las actividades
(9) Pararse en la actividcad de planning del program1
(10)Abrir el process script (menu/psp0 process script); en el browser dar click en planning
(11)Para iniciar a planear dar dlick en play. Mostrar el timelog en el menu “C”
(12)Una de las tareas comentadas en el script es hacer el estimado del plan (menu / project plan summary),
y coloar el tiempo estimado (casilla: Plan Total) en formato hh:mm
(13)Si se completa una fase, dar click en el checkbox
(14)Mostrar el development script (menu/psp 0 development script)
(15)Mostrar cómo se registran defectos , mostrar log de defectos (“C/defectlog”). Mostrar defect type
standard en esa pantalla
(16)Mostrar la fase de postmortem. Revisar datos capturados. Mostrar project plan summary de nuevo.
(17)Marcar el proyecto como completado en el project plan summary.
(18)Para enviar la tarea: C/Tools/SaveDataBackup
(19)NOTA1: defect-fix-time: desde que se descubre hasta que se soluciona
(20)NOTA2: inhected-phase: en la cual está el programa actualmente (no la actividad que estoy haciendo)
(21)La practica requiere minimos cambios al proceso que usted desarrolla actualmente.

19
Assignment 01: [20min]
Para aprender PSP0

Enviar el assignment: Archivo .zip con:
• ProcessDashboard backup
• Codigo fuente
• Test Results

20

Más contenido relacionado

PDF
Personal Software Process / Sesion 06
PDF
Personal Software Process / Sesion 03
PDF
Personal Software Process / Sesion 02
PDF
Psp ingeniería del software
PDF
Catedra psp
PPTX
Psp (personal software process) guia 0 introducción
ODP
Psp ingeniería del software
PPT
Proceso de Software Una Visión General
Personal Software Process / Sesion 06
Personal Software Process / Sesion 03
Personal Software Process / Sesion 02
Psp ingeniería del software
Catedra psp
Psp (personal software process) guia 0 introducción
Psp ingeniería del software
Proceso de Software Una Visión General

La actualidad más candente (20)

PDF
Capitulo3
PPTX
Psp (personal software process)
PPTX
Fases del Modelo PSP
PDF
Personal Software Process (PSP)
PPT
Psp
PPTX
Modelo psp
PPTX
PSP (personal software process)
PPT
Presentacion para exponer_gpo_5
PPT
Psp Personal Software Process
PPT
Determinacion viabilidad---isiv---ds-i
PDF
Extreme programming (1)
DOCX
Patrones de Proceso BPM
PPTX
Metodología de desarrollo de software (45 Preguntas)
PPTX
Programacion extrema_WR
PDF
Introduccion a Personal Software Process
PDF
Casos de éxito de TSP en México
PPT
introducción a uml
Capitulo3
Psp (personal software process)
Fases del Modelo PSP
Personal Software Process (PSP)
Psp
Modelo psp
PSP (personal software process)
Presentacion para exponer_gpo_5
Psp Personal Software Process
Determinacion viabilidad---isiv---ds-i
Extreme programming (1)
Patrones de Proceso BPM
Metodología de desarrollo de software (45 Preguntas)
Programacion extrema_WR
Introduccion a Personal Software Process
Casos de éxito de TSP en México
introducción a uml
Publicidad

Similar a Personal Software Process / Sesion 01 (20)

PDF
Personal Software Process / Agenda
PPT
Psp
PPT
PPT
pspmanuelcofre
PPT
Proceso de Software Personal - PSP
PPTX
Team Software Process (TSP)
PPTX
Psp Personal Software Process
PPTX
Personal software process
PPTX
Personal software process
PPT
Cmmi dev-v1.2 nivel i (sesion 001) nh-v4
PPTX
Psp%20%28 personal%20software%20process%29
PPTX
Calidad De Software
PPTX
Psp sisca 7 111
PPTX
Modelo TSP
PPTX
PDF
introduccion a-psp
PPTX
Complemento cmmi
PPT
Csw02 ver2
PDF
Artículo, Enseñanza de la aplicación de métricas de software a nivel tecnológ...
Personal Software Process / Agenda
Psp
pspmanuelcofre
Proceso de Software Personal - PSP
Team Software Process (TSP)
Psp Personal Software Process
Personal software process
Personal software process
Cmmi dev-v1.2 nivel i (sesion 001) nh-v4
Psp%20%28 personal%20software%20process%29
Calidad De Software
Psp sisca 7 111
Modelo TSP
introduccion a-psp
Complemento cmmi
Csw02 ver2
Artículo, Enseñanza de la aplicación de métricas de software a nivel tecnológ...
Publicidad

Más de andres hurtado (18)

PDF
mintic_machinelearning101_coursera
PDF
cia2 charla arquitecturadesoftware ai
PDF
estimacion
PDF
ComputacionParaTodos / SocioTecnologico
PDF
Docker 101
PDF
DevOps 101
PDF
PDF
BigData 101 / Cursillo (Parte5)
PDF
BigData 101 / Cursillo (Parte4)
PDF
BigData 101 / Cursillo (Parte3)
PDF
BigData 101 / Cursillo (Parte2)
PDF
BigData 101 / Cursillo (Parte1)
PDF
BigData 101 / Cursillo (Parte0)
PDF
Enterprise Architect SparxSystems
PDF
ITIL Workshop (2 horas introductorias)
PDF
BusinessIntelligence Introduction
PDF
Personal Software Process / Sesion 05
PDF
Personal Software Process / Sesion 04
mintic_machinelearning101_coursera
cia2 charla arquitecturadesoftware ai
estimacion
ComputacionParaTodos / SocioTecnologico
Docker 101
DevOps 101
BigData 101 / Cursillo (Parte5)
BigData 101 / Cursillo (Parte4)
BigData 101 / Cursillo (Parte3)
BigData 101 / Cursillo (Parte2)
BigData 101 / Cursillo (Parte1)
BigData 101 / Cursillo (Parte0)
Enterprise Architect SparxSystems
ITIL Workshop (2 horas introductorias)
BusinessIntelligence Introduction
Personal Software Process / Sesion 05
Personal Software Process / Sesion 04

Último (20)

PDF
SAP Transportation Management para LSP, TM140 Col18
PPTX
sa-cs-82-powerpoint-hardware-y-software_ver_4.pptx
PPT
introduccion a las_web en el 2025_mejoras.ppt
PPT
Que son las redes de computadores y sus partes
PDF
Plantilla para Diseño de Narrativas Transmedia.pdf
PDF
Maste clas de estructura metálica y arquitectura
PDF
MANUAL TECNOLOGÍA SER MINISTERIO EDUCACIÓN
PDF
Estrategia de apoyo tecnología miguel angel solis
PPTX
Propuesta BKP servidores con Acronis1.pptx
PDF
taller de informática - LEY DE OHM
PDF
Diapositiva proyecto de vida, materia catedra
PDF
programa-de-estudios-2011-guc3ada-para-el-maestro-secundarias-tecnicas-tecnol...
PPTX
historia_web de la creacion de un navegador_presentacion.pptx
PPTX
Presentación PASANTIAS AuditorioOO..pptx
PPTX
REDES INFORMATICAS REDES INFORMATICAS.pptx
PPTX
Presentación de Redes de Datos modelo osi
PDF
Liceo departamental MICRO BIT (1) 2.pdfbbbnn
PDF
5.1 Pinch y Bijker en libro Actos, actores y artefactos de Bunch Thomas (coor...
PPTX
Acronis Cyber Protect Cloud para Ciber Proteccion y Ciber Seguridad LATAM - A...
PPTX
RAP02 - TECNICO SISTEMAS TELEINFORMATICOS.pptx
SAP Transportation Management para LSP, TM140 Col18
sa-cs-82-powerpoint-hardware-y-software_ver_4.pptx
introduccion a las_web en el 2025_mejoras.ppt
Que son las redes de computadores y sus partes
Plantilla para Diseño de Narrativas Transmedia.pdf
Maste clas de estructura metálica y arquitectura
MANUAL TECNOLOGÍA SER MINISTERIO EDUCACIÓN
Estrategia de apoyo tecnología miguel angel solis
Propuesta BKP servidores con Acronis1.pptx
taller de informática - LEY DE OHM
Diapositiva proyecto de vida, materia catedra
programa-de-estudios-2011-guc3ada-para-el-maestro-secundarias-tecnicas-tecnol...
historia_web de la creacion de un navegador_presentacion.pptx
Presentación PASANTIAS AuditorioOO..pptx
REDES INFORMATICAS REDES INFORMATICAS.pptx
Presentación de Redes de Datos modelo osi
Liceo departamental MICRO BIT (1) 2.pdfbbbnn
5.1 Pinch y Bijker en libro Actos, actores y artefactos de Bunch Thomas (coor...
Acronis Cyber Protect Cloud para Ciber Proteccion y Ciber Seguridad LATAM - A...
RAP02 - TECNICO SISTEMAS TELEINFORMATICOS.pptx

Personal Software Process / Sesion 01

  • 1. SESIÓN 01: Definiendo un proceso 1
  • 2. AMBIENTACION [20min] [>] Se concientiza al publico sobre proyectos que no terminan o que no cumplen los requerimientos y o su nivel de calidad es bajo. 2
  • 3. Proyectos de Software Hoy [i] Todos los proyectos de software son 100% exitosos? • • • • Se entregan a tiempo,? Cumplen lo que el cliente espera? Sin defectos, un producto de muy buena calidad, sin bugs? El cliente está satisfecho? • [>] Hacer la paradoja de un carro (la construcción de un automóvil, cómo fuera si no tuviese calidad?) Lo que los desarrolladores quieren • Hacer un trabajo técnicamente interesante y de calidad • Libertad al hacer el trabajo • Requerimientos estables • Cronogramas realistas • • • • [>] me han pedido algo para ya, por la urgencia? [>] los superhéroes existen? (los que se trasnochan) [>] he llegado tarde a casa por algún tema de urgencia? Le han reconocido eso? [>] mi esposo/esposa está aburrido de la situación? Lo que los managers quieren • • • • • Se cumplen los acuerdos (se cumplen fechas, con calidad) Metas agresivas que se cumplen No hay sorpresas al final Existe habilidad para cambiar los requerimientos Entrega de productos tan pronto como es posible --------------------------- 3
  • 4. Primeros puntos para el cambio • Managers son muy optimistas respecto a lo que se puede alcanzar • Desarrolladores aceptan cronogramas irreales • Finalmente el producto no se termina a tiempo y se demora más ajustar el producto acorde a la calidad requerida • Los desarrolladores pierden credibilidad dado a los retrasos en cronogramas. • Cómo ganar esa credibilidad para controlar el trabajo del programador? • Qué puntos debemos tener en cuenta al planear?, Veamos a continuación: Puntos • Entender lo que el cliente quiere • Planeación • Con información histórica • Si no hay info histórica: a juicio de experto • Estimar con suficiente detalle (detal forma que al sub-estimar o sobre-estimar haya un balance) • Ser realista en el tiempo que se tiene disponible para hacer el trabajo [>] Normalmente se toma el tiempo del 100% (40h semanales). Se debe tener en cuenta que la persona va al baño, a veces se desconcentra • Si no alcanza el tiempo, Ofrecer Alternativas [>] explicar lo racional detrás de las alternativas • Seguimiento (Tracking) • Hacer planes medibles, hacer planes que se puedan medir • Cuando el plan se desvía, hacer correcciones [>] si me retraso en un plan por 2horas, necesito 2 horas para desatrasarme? • Comunicación con el equipo de trabajo • Responder al cambio (Responsiveness) • Si hay cambios en los planes, entregar feedback para poder ajustar el plan • Si no se puede ejecutar todo, hacer entregas incrementales.... • ...Pero entregar lo más importante primero • Responder a los compromisos (commitments) • Cumplir acuerdos realizados • Entregar soluciones de sw que funcionen • [>] El trabajo con información requiere concentración de la persona, la musa de la inspiración 4
  • 5. Qué se de mi performance hoy (manager)? • De alguna forma se conoce el performance fuera de la caja “Trabajo” • Pero no se tiene la visión de lo que ocurre dentro de la caja (ver algiunos ejemplos en el siguiente slide) 5
  • 6. Que sé de mi performance hoy? • cómo se gasta el tiempo, • qué actividades toman el mayor tiempo paraser realizadas • ´con cuántos defectos sale el producto • Para cuándo puedo tener el producto? 6
  • 7. INTRODUCCIÓN AL PSP [30min] Qué es un proceso? • Una secuencia de pasos que un profesional sigue para realizar una tarea específica • Repetible: que lo pueda realizar muchas veces: Completo y Correcto • Predecible: Que pueda usar para planear mi tiempo, coordinar mis recursos, sin sorpresas • Definido: Un proceso definido es una plantilla “documentada” con series de pasos genéricos para hacer un trabajo de forma tal que cada vez que se hagan sean de forma similar. De esta forma se puede lograr un marco para planear, manejar la calidad y delimitar el trabajo • [>] Hacer la paradoja de las salchichas (las salchichas en un proyecto industrial) . El plan es hecho para un trabajo específico, mas otra información como esfuerzo, costo, fechas, budget, identificacion de riesgos 7
  • 8. Qué es un proceso personal? • Es una serie de pasos para guiar el desarrollo de software a nivel personal • Se comienza con un proceso realizado por alguien más con experiencia • Se va mejorando cada vez para suplir necesidades Por qué definirlo? • Consistencia: poder crear un modelo de desarrollo predecible: resultados similares / resultados predecibles • Eficiencia: estrucutras que guian el trabajo, se enfocan en producir algo y no desviarse • Base para mejora: recolectar datos sobre el proceso, para luego ubicar las oportundiades de mejora y aplicarlas. Qué es PSP (un proceso personal de software) Un proceso personal para escribir software, con los siguientes principios: (1) Cada desarrollador es diferente (2) Medir el trabajo que se hace ... Para poder luego mejorar (3) El desarrollador es responsable de la calidad del produco (4) Cuesta menos pevenir defectos en fases templranas del proceso quer en fases tardías Historia de Watts S. Humprey • Muchas de las organizaciones grandes y pequeñas surgieron porque el software resultó ser una industria rentable en sus inicios por la demanda que tenía. Sin embargo su crecimiento desmedido planteaba interrogantes sobre la calidad de las personas involucradas dentro del desarrollo de los productos (lo que se denominó la Crisis del software: o bien los proyectos no terminaban a tiempo, o bien terminaban con sobrecostos o bien la espectativa de calidad era mayor a la que reflejaba el producto). • Una de las organizaciones que comenzó a preocuparse por la estandarización en el software que gestionaban fue el Departamento de defensa de EEUU (DoD), quien convoca un concurso a través de universidades, quedando seleccionada la universidad Carneggie Mellon, a través de los fundamentos de lo que hoy es PSP y TSP con Humphrey a la cabeza, y posteriormente su implantación a nivel de empresas mediante la definición de modelos de madurez CMM. (http://catarina.udlap.mx/u_dl_a/tales/documentos/lis/moreno_a_jl/capitulo2.pdf). Sin embargo el interés de PSP no es solo dejar el proceso planteado en papel (enactable, el qué hacer) sino definir cómo poder ejecutarlo (operational, el cómo hacerlo). • En muchas profesiones, los “primíparos” tienen que aprender sus habilidades a la mano de un experto, y con las medidas en el desempeño de su trabajo se van sumando puntos para medir su desempeño. • Es precisamente la actividad que se hará a lo largo del presente cursillo, donde iniciaremos realizando una 8
  • 9. planeación del uso del tiempo, comenzar a controlar el consumo de él y posteriormente poder compararlo con lo que realmente hacemos. De igual forma, vamos a i registrando las equivocaciones que cometemos con el fin de establecer puntos de mejora [es lo que se denomina el paradigma plan-do-check-improve] Principios • Cada quien es diferente • Cada quien es responsable de la calidad de lo que hace • Más eficiente encontrar y corregir en etapas iniciales del proceso que en las finales • Más eficiente prevenir defectos que tener que corregir bugs • Los datos capturados son personales, y no se usan para pagarle al empleado o castigarlo. Si fuese así, y el trabajo de un empleado es de 40h a la semana, los datos siempre darán 40h reportadas. 8
  • 10. Los elementos de psp son 4 basicamente Scripts, que son el guion que documenta el proceso Measures (Medidas), que permiten cuantificar el proceso y dar a conocer cómo evoluciona el trabajo Forms Para capturar los datos Starndards Definiciones consistentes para clasificar los datos tomados 9
  • 11. Scripts Que no ocupe mas de una pagina Es la guía para hacer la tarea Es la guía del experto sobre cómo usar el proceso Contiene • Propósito • Criterios de entrada • Pasos • Salidas 10
  • 12. Forms • Forma de capturar los datos • Soporte de herramientas para hacerlo • Ejemplos: • (1) timelog • (2) defect log • (3) checklist 11
  • 13. Standards • Definiciones que facilitan la captura de datos 12
  • 14. Las métricas permiten entender: • El tiempo gastado en actividades • Dar a conocer cuántos defectos fueron inyectados y removidos Con dichos datos los desarrolladores pueden Planear y estimar el trabajo Evaluar los resutlados Mejorar (Improve) el proceso para el siguiente proyecto Para medir el proceso: • el trabajo se divide en conjuntos de tareas o actividades llamadas fases. Por fase se mide: • Tiempo gastado por fase • Defectos inyectados • Defectos removidos • El tamaño es medido sólo al final, cuando está completo Las metricas core son • Size (Tamaño): indican qué tan grande es el producto. Se prefiere que este conteo se pueda automatizar y que lo haga unba herramienta. • Effort (Esfuerzo, Tiempo): se captura en minutos por ser mas sencillo, interrupt-time: no es incluido, y offtask : normalmente no es capturado, porque no contribuye a las tareas del proceso: ejemplo: management, meetings, training, email • Quality (Calidad): se preocupa por capturar los defectos que se originan y remueven a lo largo del proceso • Schedule (Cronograma): información de planeación y tracking quye se tienen en cuenta para el scheduling. 13
  • 15. Aprendiendo PSP [i] • PSP es introducido poco a poco. • A lo largo del cursillo se van a escribir pequeños programas cada paso. • A lo largo de cada programa se va a hacer recolección y análisis de datos • Y los datos se usarán para mejorar (improvement). • PSP0: se establece la linea base de trabajo • PSP1: se practica esfuerzo y estimación, tratando de obtener precision • PSP2: se practica la gestión de defectos y una métrica relacionada (yield) 14
  • 16. Presentación Cada persona indica : • nombre • seleccionar un lenguaje de programación con el cual va a arealizar algunos ejercicios. • También dirá las espectativas del cursillo [>] 1 minuto por persona 15
  • 17. Aprendiendo PSP [ii] En comparaciones entre 30mil programas realizados: (1) Al inicio hay mayor error de estimacion, y Luego hay mejor precisión (accuracy) y balance entre over y underestimates (en el ultimo, el error es mas cercano a cero) (2) El tiempo de compiling y testing va disminuyendo a lo largo del desarrollo de los programas (3) La productividad se mantiene, pese a que se van a ir introduciendo actividades nuevas (Grafica de Tamaño vs LOC/h) 16
  • 18. Tutorial PSP0 [i] [40min] Recoleccion de datos: • No recolectar datos por hacerlo, sino pensar en el objetivo: entender la improtancia de hacerlo, para poder usar los datos al planear: similares productos, similares estimados • Preferible capturar los datos cuando suceden los hechos (para que no se olvide despues) Fidelidad • Grado en el cual los individuis siguen el plan Calidad • La calidad del producto es governada de alguna forma por el proceso que se use 17
  • 19. Tutorial PSP0 [ii] • Preparación para el assignment • Errores comunes y como evitarlos • Incorporar measures básicos • Seguir las fases en orden • No amañar los datos Pasos: • Planning: producir un plan para hacer el trabajo y guiado por los requerimientos • Desarrollo: cómo hacer el trabajo • Design: producir una especificacion de diseño para el programa definido por los requerimientos • Coding: Transformar las especificaciones de diseño en statements de un lenguaje de programación • Compile: Traducir los statements en codigo ejecutable o bytecode ejecutable • Test: verificar que el codigo ejecutable satisface los requerimientos • Postmortem: (1) resumir y analizar la data capturada alrededor del desarrollo del proyecto (2) actualización de los datos del proyecto y métricas (3) cálculo de los datos relevantes de calidad o desempeño (3) revisión del performance (desempeño) real respecto al plan (4) actualización de BD’s históricas con datos de tamaño y productividad (4) Usar datos personales para hacer ajustes al proceso (5) documentar PIPs (process improvement proposals) generados durante una fase o proyecto De igual forma se puede trabajar un enfoque iterativo, PSP no es un proceso en cascada (waterfall). La figura muestra 2 modulos desarrollados. Los ciclos tambien pueden incluir la fase de diseño. Usted debe determinar qué sirve según el proyecto. 18
  • 20. Tutorial PSP0 [iii] CD para estudiantes http://www.processdash.com/download_mec/pfaStudentCD Descargar Tutorial asociado y seguirlo con el process dashboard. (1) Iniciar process dashboard (2) Seleccionar task NonProject / PspFundamentals&Advanced / StudentProfile (3) Seleccionar menu / studentprofile (4) Llenar los datos del estudiante (5) Ver los programas con el hierarchy editor (6) Sacar un backup: c/tools/data backup / (save) (7) Abrir el backup creado (sale una segunda barra processdash) (8) Mostrar las actividades (9) Pararse en la actividcad de planning del program1 (10)Abrir el process script (menu/psp0 process script); en el browser dar click en planning (11)Para iniciar a planear dar dlick en play. Mostrar el timelog en el menu “C” (12)Una de las tareas comentadas en el script es hacer el estimado del plan (menu / project plan summary), y coloar el tiempo estimado (casilla: Plan Total) en formato hh:mm (13)Si se completa una fase, dar click en el checkbox (14)Mostrar el development script (menu/psp 0 development script) (15)Mostrar cómo se registran defectos , mostrar log de defectos (“C/defectlog”). Mostrar defect type standard en esa pantalla (16)Mostrar la fase de postmortem. Revisar datos capturados. Mostrar project plan summary de nuevo. (17)Marcar el proyecto como completado en el project plan summary. (18)Para enviar la tarea: C/Tools/SaveDataBackup (19)NOTA1: defect-fix-time: desde que se descubre hasta que se soluciona (20)NOTA2: inhected-phase: en la cual está el programa actualmente (no la actividad que estoy haciendo) (21)La practica requiere minimos cambios al proceso que usted desarrolla actualmente. 19
  • 21. Assignment 01: [20min] Para aprender PSP0 Enviar el assignment: Archivo .zip con: • ProcessDashboard backup • Codigo fuente • Test Results 20