PSP (Personal Software
Process)
Análisis y Desarrollo de Sistemas de
Información
PARA REFLEXIONAR
Bug o característica?
http://www.shadowsplace.net/wp-
content/uploads/2009/06/bug-feature.jpg
Comportamientos comunes al
desarrollar SW
• Invertimos mas tiempo del esperado
• No podemos determinar con precisión el tiempo y el
tamaño que tendrá el producto
• El esfuerzo invertido en las pruebas hace impredecible
los resultados (en cuanto al tiempo)
• Se necesitan varios ciclos o iteraciones (Diseño,
Codificación, Pruebas) para generar un producto 100%
libre de errores (Bugs) .
Que es PSP (Personal Software Process)?
• Es un proceso de auto-mejora que nos ayuda a controlar,
gestionar y mejorar la forma en la que realizamos nuestro
trabajo.
• Es un marco de trabajo estructurado, compuesto de guías y
procedimientos para desarrollar software.
• Usado de manera adecuada el PSP nos brinda la información
necesaria para hacer y cumplir compromisos (en términos de
calidad y calendario) y hacer mas eficiente y predecible la
forma en que realizamos el trabajo.
Tomado del Libro “A Self-Improvement Process For Software Engineers” de Watts Humphey.
Que es PSP (Personal Software Process)?
• En resumen, PSP brinda una serie de recomendaciones y
elementos que permiten a los desarrolladores generar
Software de Calidad en los tiempos pactados.
• PSP fue creado por Watts Humphrey a mediados de la
década de los 90 cuando escribió “A Discipline for
Software Engineering” en 1995 y posteriormente
“Introduction to the Personal Software Process” en 1997
siendo complementado con “Introduction to the Team
Software Process” en el año 2000.
Principios de PSP
•Cada Desarrollador es diferente, pero para ser
efectivos, los desarrolladores deben planear su
trabajo usando como referencia su información
histórica o línea base (Comportamiento en proyectos
anteriores).
•Para mejorar su rendimiento y calidad, los
desarrolladores deben medir su trabajo, analizar sus
resultados y trazarse metas de mejora con dichos
datos.
Principios de PSP (2)
• El desarrollador tiene gran parte de la responsabilidad en
la calidad del Producto/Software/Proyecto y dicha calidad
no es accidental, exigiendo de los desarrolladores un
compromiso personal.
• Encontrar los defectos (errores, bugs, requerimientos no
contemplados, etc) en fases tempranas del Proceso es
mucho menos costoso que encontrarlas en Pruebas de
Unidad, del Sistema, de Integración y mucho mas que
cuando son encontrados por el usuario.
Principios de PSP (3)
Como profesional del software usted debe:
•Ser responsable de su proceso.
•Medir, registrar y analizar su trabajo.
•Aprender de las variaciones en su desempeño.
•Incorporar lo aprendido en su practica diaria.
Que es un proceso?
•Es una secuencia de pasos requeridos
para hacer un trabajo.
•En un proceso de deben:
•–Identificar roles
• –Especificar tareas
• –Establecer métricas
• –Proporcionar criterios de entrada y salida
Elementos fundamentales del Proceso
Scripts
Medidas
Formatos
Estándares
Elementos fundamentales del Proceso (2)
Scripts: Son los elementos que
documentan el proceso e
indican que hacer y cuando
hacerlo. Siendo apegados a la
definición formal, su propósito
es proveer una guía de alto nivel
de como usar el proceso. Un
ejemplo puede ser el Script
general del Proceso de PSP0.
Elementos fundamentales del Proceso (3)
Medidas: Miden el proceso y el producto, muestran si las cosas
están funcionando bien. Algunas de las medidas que PSP recoge
se enfoca en 4 aspectos, Tamaño, Esfuerzo, Calidad y
Programación (Agenda o Cronograma).
Formatos: Son formularios para recopilar de manera sencilla y
consistente la información. Entre los mas básicos: Log de Tiempo
(Donde se almacena cuando se invierte en cada fase o tarea del
proyecto), Log de Defectos (En el cual se recopila la información
de los defectos encontrados).
Estándares: Definen como yo (personalmente) hago las cosas
respecto a medidas anteriores. Por ejemplo: Estándar de Código
(Permite saber como cada uno de los desarrolladores escribirá su
código).
¿Como aprender el proceso?
PSP y posteriormente TSP (Team Software Process) se
aprenden de manera incremental, iniciando por PSP0,
PSP1, PSP2 y luego TSP. Existen unos procesos
transicionales PSP0.1 y PSP2.1.
PSP0, PSP0.1, PSP1, PSP2, PSP2.1, PSP3 TSP (Team Software Process)
¿Como aprender el proceso?
PSP0 – Enseña
como usar un
proceso definido
PSP1 – Enseña a
estimar el tamaño
del producto y a
realizar planes que
se puedan cumplir.
PSP2 – Permite la
administración de
la calidad y crear un
marco de trabajo
para el diseño.
TSP – Trabajo en
equipos de
desarrollo.
¿Como aprender el proceso?
• En PSP0 y PSP0.1 se aprende a usar de manera eficiente y
eficaz un proceso y a recopilar información, siendo tal vez el
punto donde muchos desarrolladores se hacen a un lado
pues nunca o muy pocas veces nos hemos preocupado por
saber cuanto tiempo nos demoramos haciendo XYZ tarea del
proyecto o cuanto invertimos en las pruebas o cuanto nos
demoramos corrigiendo un defecto (error/cambio). Esta
parte del proceso es particularmente sorprendente!
Y para hablar el mismo
idioma…
Vamos a ver las
definiciones de cada tipo
de PSP.
Flujo de Procesos en PSP
Tomando nota
PSP 0
• Es un proceso personal simple y
definido.
• Haga un plan.
• Utilice los métodos actuales
para producir un programa
pequeño.
• Registre tiempos y defectos de
su trabajo.
• Prepare un resumen.
Fases de PSP 0
Fases de PSP 0 (2)
Fases de PSP 0 (3)
Fases de PSP 0 (4)
En cada fase se registran:
• Tiempo
• Defectos
Fases de PSP 0 (5)
Process Script
• Proporcionan una guía de cómo utilizar el proceso
Process Script
Process Script
Process Script
Métricas y Formatos en PSP 0
Planeación
• En la planeación del primer programa utilice cualquier método que
pueda para estimar el tiempo total que piensa se tomará para escribir
el programa. (Adivinar), este número es el que se ubica en el tiempo
total planeado.
• Este tiempo no se distribuye entre las fases.
• Se termina de diligenciar en la ultima etapa
Planeación
Planeación
Registro de Tiempos
• Registrar los tiempos en minutos trabajados y tiempos de
interrupción
Registro de defectos – Tipo de
Defectos
BIBLIOGRAFIA
La mayor parte de este material fue extraída de este blog:
http://blog.parejajd.co/post/2014/06/04/%28Serie%29-El-Personal-
Software-Process-%28PSP%29-Metodos-disciplinados-para-
Desarrolladores-productivos-1.aspx

Psp (personal software process) guia 0 introducción

  • 1.
    PSP (Personal Software Process) Análisisy Desarrollo de Sistemas de Información
  • 2.
  • 3.
  • 4.
    Comportamientos comunes al desarrollarSW • Invertimos mas tiempo del esperado • No podemos determinar con precisión el tiempo y el tamaño que tendrá el producto • El esfuerzo invertido en las pruebas hace impredecible los resultados (en cuanto al tiempo) • Se necesitan varios ciclos o iteraciones (Diseño, Codificación, Pruebas) para generar un producto 100% libre de errores (Bugs) .
  • 5.
    Que es PSP(Personal Software Process)? • Es un proceso de auto-mejora que nos ayuda a controlar, gestionar y mejorar la forma en la que realizamos nuestro trabajo. • Es un marco de trabajo estructurado, compuesto de guías y procedimientos para desarrollar software. • Usado de manera adecuada el PSP nos brinda la información necesaria para hacer y cumplir compromisos (en términos de calidad y calendario) y hacer mas eficiente y predecible la forma en que realizamos el trabajo. Tomado del Libro “A Self-Improvement Process For Software Engineers” de Watts Humphey.
  • 6.
    Que es PSP(Personal Software Process)? • En resumen, PSP brinda una serie de recomendaciones y elementos que permiten a los desarrolladores generar Software de Calidad en los tiempos pactados. • PSP fue creado por Watts Humphrey a mediados de la década de los 90 cuando escribió “A Discipline for Software Engineering” en 1995 y posteriormente “Introduction to the Personal Software Process” en 1997 siendo complementado con “Introduction to the Team Software Process” en el año 2000.
  • 7.
    Principios de PSP •CadaDesarrollador es diferente, pero para ser efectivos, los desarrolladores deben planear su trabajo usando como referencia su información histórica o línea base (Comportamiento en proyectos anteriores). •Para mejorar su rendimiento y calidad, los desarrolladores deben medir su trabajo, analizar sus resultados y trazarse metas de mejora con dichos datos.
  • 8.
    Principios de PSP(2) • El desarrollador tiene gran parte de la responsabilidad en la calidad del Producto/Software/Proyecto y dicha calidad no es accidental, exigiendo de los desarrolladores un compromiso personal. • Encontrar los defectos (errores, bugs, requerimientos no contemplados, etc) en fases tempranas del Proceso es mucho menos costoso que encontrarlas en Pruebas de Unidad, del Sistema, de Integración y mucho mas que cuando son encontrados por el usuario.
  • 9.
    Principios de PSP(3) Como profesional del software usted debe: •Ser responsable de su proceso. •Medir, registrar y analizar su trabajo. •Aprender de las variaciones en su desempeño. •Incorporar lo aprendido en su practica diaria.
  • 10.
    Que es unproceso? •Es una secuencia de pasos requeridos para hacer un trabajo. •En un proceso de deben: •–Identificar roles • –Especificar tareas • –Establecer métricas • –Proporcionar criterios de entrada y salida
  • 11.
    Elementos fundamentales delProceso Scripts Medidas Formatos Estándares
  • 12.
    Elementos fundamentales delProceso (2) Scripts: Son los elementos que documentan el proceso e indican que hacer y cuando hacerlo. Siendo apegados a la definición formal, su propósito es proveer una guía de alto nivel de como usar el proceso. Un ejemplo puede ser el Script general del Proceso de PSP0.
  • 13.
    Elementos fundamentales delProceso (3) Medidas: Miden el proceso y el producto, muestran si las cosas están funcionando bien. Algunas de las medidas que PSP recoge se enfoca en 4 aspectos, Tamaño, Esfuerzo, Calidad y Programación (Agenda o Cronograma). Formatos: Son formularios para recopilar de manera sencilla y consistente la información. Entre los mas básicos: Log de Tiempo (Donde se almacena cuando se invierte en cada fase o tarea del proyecto), Log de Defectos (En el cual se recopila la información de los defectos encontrados). Estándares: Definen como yo (personalmente) hago las cosas respecto a medidas anteriores. Por ejemplo: Estándar de Código (Permite saber como cada uno de los desarrolladores escribirá su código).
  • 14.
    ¿Como aprender elproceso? PSP y posteriormente TSP (Team Software Process) se aprenden de manera incremental, iniciando por PSP0, PSP1, PSP2 y luego TSP. Existen unos procesos transicionales PSP0.1 y PSP2.1. PSP0, PSP0.1, PSP1, PSP2, PSP2.1, PSP3 TSP (Team Software Process)
  • 15.
    ¿Como aprender elproceso? PSP0 – Enseña como usar un proceso definido PSP1 – Enseña a estimar el tamaño del producto y a realizar planes que se puedan cumplir. PSP2 – Permite la administración de la calidad y crear un marco de trabajo para el diseño. TSP – Trabajo en equipos de desarrollo.
  • 16.
    ¿Como aprender elproceso? • En PSP0 y PSP0.1 se aprende a usar de manera eficiente y eficaz un proceso y a recopilar información, siendo tal vez el punto donde muchos desarrolladores se hacen a un lado pues nunca o muy pocas veces nos hemos preocupado por saber cuanto tiempo nos demoramos haciendo XYZ tarea del proyecto o cuanto invertimos en las pruebas o cuanto nos demoramos corrigiendo un defecto (error/cambio). Esta parte del proceso es particularmente sorprendente!
  • 17.
    Y para hablarel mismo idioma… Vamos a ver las definiciones de cada tipo de PSP.
  • 18.
    Flujo de Procesosen PSP Tomando nota
  • 19.
    PSP 0 • Esun proceso personal simple y definido. • Haga un plan. • Utilice los métodos actuales para producir un programa pequeño. • Registre tiempos y defectos de su trabajo. • Prepare un resumen.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
    En cada fasese registran: • Tiempo • Defectos Fases de PSP 0 (5)
  • 25.
    Process Script • Proporcionanuna guía de cómo utilizar el proceso
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
    Planeación • En laplaneación del primer programa utilice cualquier método que pueda para estimar el tiempo total que piensa se tomará para escribir el programa. (Adivinar), este número es el que se ubica en el tiempo total planeado. • Este tiempo no se distribuye entre las fases. • Se termina de diligenciar en la ultima etapa
  • 31.
  • 32.
    Registro de Tiempos •Registrar los tiempos en minutos trabajados y tiempos de interrupción
  • 34.
    Registro de defectos– Tipo de Defectos
  • 35.
    BIBLIOGRAFIA La mayor partede este material fue extraída de este blog: http://blog.parejajd.co/post/2014/06/04/%28Serie%29-El-Personal- Software-Process-%28PSP%29-Metodos-disciplinados-para- Desarrolladores-productivos-1.aspx