4. 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) .
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
•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.
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 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
12. 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.
13. 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).
14. ¿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)
15. ¿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.
16. ¿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!
17. Y para hablar el mismo
idioma…
Vamos a ver las
definiciones de cada tipo
de PSP.
19. 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.
30. 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
35. 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