martes, 25 de julio de 2017

4.5. PSP/TSP

PSP

Es un conjunto de prácticas disciplinadas para la gestión del tiempo y mejora de la productividad personal de los programadores o ingenieros de software, en tareas de desarrollo y mantenimiento de sistemas. Está alineado y diseñado para emplearse en organizaciones con modelos de procesos CMMI o ISO 15504. Fue propuesto por Watts Humphrey en 1995 y estaba dirigido a estudiantes. A partir de 1997 con el lanzamiento del libro "An introduction to the Personal Software Process" se dirige ahora a ingenieros juniors.

El origen del PSP se dio debido a ciertos problemas que se empezaron a presentar en forma recurrente respecto al proceso de desarrollo de software. Por ejemplo:
  • Imposibilidad de cumplir con las fechas de entrega
  • Defectos detectados en el último minuto
  • Incapacidad de demostrar el avance del desarrollo, no hay una medición clara ni exacta
  • Esfuerzos duplicados y por ende desperdicio de recursos
  • Clientes insatisfechos con el servicio brindado

Se puede considerar como la guía de trabajo personal para ingenieros de software en organizaciones que emplean un modelo CMMI con nivel de madurez o de capacidad de procesos que implica la medición cualitativa y mejora de procesos.

Uno de los mayores problemas que tiene es la gran cantidad de datos que hay que tomar. El PSP tiene obsesión por la toma de datos y elaboración de tablas. El PSP se orienta el conjunto de áreas clave del proceso que debe manejar un desarrollador cuando trabaja de forma individual.

PSP, es uno de los 3 vértices donde descansa un proceso de mejora que trabaja sobre 3 niveles de la organización, los otros 2 son CMM y TSP.
El PSP amplia el proceso de mejora a la gente que realiza el trabajo de desarrollo de software, concentrándose en las practicas de trabajo de los ingenieros en una forma individual, enseñando como manejar la calidad desde el principio de un producto. PSP son nuestras propias métricas, que permiten estructurar y ordenar nuestro trabajo del día a día (no solo de desarrollo de software, esto lo voy a explicar mas adelante). El resultado de nuestro trabajo, además puede ser llevado a un trabajo en equipo TSP (Team Process Software), el cual es “comandado” por un sistema de gestión de la configuración y por supuesto, un Jefe de Proyecto quien evalúa los resultados y avances de los miembros del equipo.


Objetivos:


PSP pretende formar ingenieros de software con métodos disciplinados para mejorar su desarrollo personal de software. PSP le ayuda a los desarrolladores a:
  • Mejorar sus habilidades de estimación y planeación.
  • Hacer compromisos que se puedan cumplir.
  • Administrar la calidad de sus procesos.
  • Reducir la cantidad de defectos en sus productos.

Niveles:

El PSP trabaja en una estructura de siete niveles, de lo más básico hasta el control.

PSP 0

Identificar actividades: definición, secuencia
Bases mejoras: planeación, evaluación, resultados
  • Documentar proceso: 
  • Actividades (Scripts)
  • Tiempos (Logs Time)
  • Defectos (Defect Logs)
  • Resumir planes, resultados (Proyect plan summary)
PSP 0.1
Registrar tamaño del producto y hacer un histórico:
  • Líneas de código
  • Function points
  • Estandarización de la codificación
  • Registrar problemas y mejoras de propuestas
PSP 1
Mejora la planeación:
  • Con la estimación tamaño del producto (histórico)
  • Decidir en base a reportes de pruebas

PSP 1.1
Mejora la planeación:
  • Con la estimación de recursos
  • Introducción de calendarizar, plasmar el plan con números, un presupuesto
PSP 2
Mejora la ejecución:
  • Detección temprana de defectos, en base a la predicción de estos.
  • Revisiones de diseño
  • Revisiones de código
  • Uso de checklists (Listas de verificación)
PSP 2.1
Mejora el diseño:
  • Al hacer uso de formas detalladas de diseño (formas C76, C77)
PSP 3
Mejora el ciclo, mejora del proceso en términos de hacerlo repetible (ciclico):
  • Para aplicación a programas de mayor tamaño
  • Registro del seguimiento de asuntos importantes
  • Análisis del resumen de la planeación, tiempos, tamaños y defectos por cada ciclo
Esta estructura, a su vez, podemos ubicarla en tres grandes etapas o fases:
  • Planificación, donde se desarrolla un plan detallado con el objetivo de obtener compromiso por parte de quien realiza el proyecto de desarrollo.
  • Desarrollo
  • Post-mortem, donde se obtiene y analizan datos para planificaciones y mejoras futuras.
TSP

Team Software Process (TSP) es un método de establecimiento y mejora del trabajo en equipo para procesos software. TSP proporciona directrices para ayudar a un equipo a establecer sus objetivos, a planificar sus procesos y a revisar su trabajo con el fin de que la organización pueda establecer prácticas de ingeniería avanzadas y así obtener productos eficientes, fiables y de calidad. Está formado por dos componentes primarios que abarcan distintos aspectos del trabajo en equipo:
  • Formación del equipo de trabajo.
  • Gestión del equipo de trabajo.


Existen diferentes metodologías para la mejora de procesos, la mayoría de ellas se basa en la mejora de los procesos que dan como resultado un servicio o producto. El TSP busca integrar un equipo que tenga como punto de partida la unificación del mismo, para poder llevar a cabo todos aquellos procedimientos que puedan realizar mejora a los procesos que desarrollan.

Los objetivos que tiene el TSP son:

  • Maximizar calidad software, minimizar costos.
  • Integrar equipos independientes de alto rendimiento que planeen su trabajo, establezcan metas y san sueños de sus procesos y planes.
  • Mostrar a los gerentes como monitorear y motivar a sus equipos de trabajo y como ayudarlos a alcanzar su máxima productividad.
  • Acelerar la mejora continua de monitoreo.
  • Proveer de una guía para e mejoramiento en organizaciones maduras

El Team Software Process (TSP) es un proceso de desarrollo para equipos de ingenieros basado en CMMI, ayuda a conformar equipos para el desarrollo de software de calidad. TSP proporciona directrices para ayudar a un equipo a establecer sus objetivos, a planificar sus procesos y a revisar su trabajo con el fin de que la organización pueda establecer prácticas de ingeniería avanzadas y así obtener productos eficientes, fiables y de calidad.

TSP es una solución basada en procesos para resolver problemas de negocio, tales como:
  • Predictibilidad de costo y tiempo
  • Mejora de productividad
  • Ciclos de desarrollo y mejora de calidad de productos.

Características de los grupos eficaces:

  • Miembros expertos en papeles de liderazgo y pertenencia.
  • Relaciones tranquilas y establecidas entre los miembros.
  • Los miembros se sienten atraídos por el grupo y son fieles.
  • Los valores y metas del grupo son los de sus integrantes
  • Los miembros están motivados por hacer lo que puedan por el grupo.
  • La interacción y toma de decisiones tiene lugar en el ambiente adecuado.
  • El grupo desea ayudar a cada miembro a adquirir su pleno El grupo desea ayudar a cada miembro a adquirir su pleno potencial.
  • Cada miembro acepta con gusto y sin resentimiento las metas y normas establecidas.
  • Los miembros se prestan ayuda mutua cuando es necesaria o recomendable.
  • Existe una atmósfera de creatividad.
  • El grupo conoce el “conformismo constructivo” y se sirve de él.
  • Existe gran motivación para iniciar y recibir las comunicaciones.
  • Los miembros son flexibles y adaptables en sus metas y actitudes.
  • Los miembros se sienten seguros al tomar decisiones que les parecen apropiadas al entender la filosofía de la operación.
En las fases del Ciclo TSP se planea el número de ciclos. Dentro de cada ciclo se realiza:
  • Lanzamiento
  • Estrategia
  • Plan
  • Requisitos
  • Diseño
  • Implementación
  • Pruebas
  • Postmortem
 Sus entornos son:
  • CMM- Administración.
  • TSP- Equipo Ingenieros.
  • PSP-Ingeniero.


Cuadro comparativo TSP/PSP

TSP
PSP
Ventajas
  • Orientado a grupos/equipos
  • Mejora la productividad de las personas
  • Se establece la detección temprana de defectos y riesgos en la producción y desarrollo de software
  • Mejora la calidad del producto terminado.
  • Brinda un plan de trabajo bien estructurado.
  • Se establece una buena comunicación entre los integrantes del equipo.
  • Identificación clara de los objetivos del proyecto
  • Propicia un ambiente de trabajo agradable
  • Enlaza cada fase del proyecto para propiciar el desarrollo esperado
  • Orientado a individuos
  • Mejora la productividad individual
  • Se origina por errores en el desarrollo de software
  • Ayuda a estimar, planear y desarrollar sistemas de software
  • Disminuye la cantidad de errores de código
  • Reduce costos
Desventajas
  • Cada uno de los miembros debe de estar completamente comprometido con la causa del proyecto
  • Cada miembro del equipo debe de estar entrenado en PSP.
  • El proceso de llenar documentación es largo y tedioso.
  • Se debe de contar con un buen proceso de conjunto de métricas y parámetros de calidad.
  • Requiere capturar mucha información
  • Existe resistencia por parte de los ingenieros hacia adoptar la metodol

No hay comentarios:

Publicar un comentario