Psp (personal software process) guia 0 introducción

35
PSP (Personal Software Process) Análisis y Desarrollo de Sistemas de Información

Transcript of Psp (personal software process) guia 0 introducción

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