jueves, 24 de junio de 2010

Personal Software Process (PSP®), elementos generales

Personal Software Process (PSP®) es una herramienta diseñada para ayudar a controlar, administrar y mejorar el trabajo de los ingenieros. Contiene formas, guías y procedimientos para el desarrollo de software. Cuando se utiliza adecuadamente permite obtener la información histórica que se requiere para establecer y cumplir con los compromisos; adicionalmente permite que las tareas rutinarias sean más predecibles y eficientes. Fue creado por Watts Humphrey como respuesta a la carencia de una herramienta para aplicar los principios generales que planteaba el modelo SW CMM® para los procesos de la organización, aplicados a procesos individuales. Propósito
  • Ayudar al ingeniero de software a realizar mejor su trabajo.
  • Proporcionar datos y técnicas de análisis que se pueden utilizar para determinar que tecnología y métodos aplicar.
  • Establecer la estructura que permita comprender por qué se cometen los errores y cómo se pueden detectar.
Motivaciones
  • Demostrar los principios del proceso personal.
  • Apoyar el desarrollo de planes más precisos.
  • Determinar los pasos para lograr la mejora de la calidad de los productos.
  • Establecer bases de comparación para medir la mejora del proceso personal.
  • Determinar el impacto en el desempeño de los cambios del proceso.
Estructura Está formado por siete niveles incrementales. Cada nivel contiene todas las actividades del nivel anterior más una o dos actividades nuevas y está enfocado hacia un problema en particular. Cada actividad está acompañada de una o más formas que apoyan el proceso. Beneficios de PSP
  • Los datos y su análisis permitirán determinar las fortalezas y debilidades.
  • Los datos y su análisis posterior conducirán hacia nuevas ideas para la mejora del proceso.
  • Se tendrá control total sobre el calendario, aceptando sólo aquellos compromisos que se puedan cumplir. Si se enfrenta con una presión no razonable, puede recurrir a la base de datos histórica de desempeño y demostrar que no es posible establecer el compromiso.
  • Se gana un sentido de satisfacción personal.
  • La parte de calidad ayudará a producir mejores productos de trabajo.
  • El equipo de trabajo tendrá mayor confianza porque existe una disciplina para el desarrollo de los productos.
Desventajas de PSP
  • El uso de LOC como métrica de estimación tiene sus desventajas, es dependiente del lenguaje, no todos los ingenieros están de acuerdo con lo que es una LOC lógica y son difíciles de visualizar desde la planeación y diseño
  • PSP sólo requiere un estimado del tiempo de interrupción, en lugar de obligar al usuario a registrar el tiempo real. Esto hace que el tiempo de interrupción estimado esta sujeto a las preferencias individuales.
  • El método de estimación PROBE puede no ser efectivo si no existe suficiente correlación entre los datos históricos.
  • Los formatos de diseño de PSP2.1 pueden ser redundantes para programadores que tienen acceso a otras herramientas de diseño.
  • Es subjetivo determinar si una parte del software es reutilizable.
  • No todos los ingenieros ven la definición de productividad de la misma manera.
  • PSP esta especialmente enfocado al desarrollo de software y no toma en cuenta el tiempo empleado en la negociación de los requerimientos con el cliente. La fase de requerimientos es un componente clave en cualquier proyecto.
  • Seguir PSP al pie de la letra no es viable para muchos ingenieros. Deben ver el método como una estructura para el desarrollo de una práctica de desarrollo de software con calidad. Cada uno de los métodos debe ser ajustado a la tecnología, práctica, fortalezas y debilidades de cada desarrollador. Es importante destacar que las métricas existen para evaluar el proceso no a las personas.
Herramientas automatizadas PSP requiere de herramientas que permitan:
  • Simplificar el proceso de recolección de los datos de tiempo y defectos.
  • Automatizar los cálculos requeridos.
  • Facilitar el acceso a cada una de las formas.
  • Llenar automáticamente cada una de las formas con los datos registrados, eliminando la necesidad de copiar la información a mano.
  • El control de tiempo puede hacerse más preciso en segundos en lugar de minutos.
  • Implementar una guía de tareas automatizada.
  • Cada usuario pueda adecuar la herramienta a sus prácticas.
  • Salvar automáticamente los datos históricos y dejarlos listos para su análisis.
Costo de PSP PSP toma tiempo para aprenderlo y aplicarlo. La mejor manera de aprender PSP es tomando el curso que le toma a un programador un total de 130 horas para completarlo. Después de un poco de práctica se acostumbra a usar el método como hábito, sin embargo la recolección y análisis de los datos requiere de un esfuerzo mayor. Hay que permitir de 30 segundos a un minuto para registrar los tiempos o defectos. Puede tomar hasta una hora completar el reporte de cierre, donde los datos son recolectados y analizados. Adoptar el PSP puede ser como adoptar una nueva forma de vida para el programador. Demasiadas expectativas sobre una mejora inmediata pueden terminar en frustración cuando no se obtengan los resultados que se esperaban. PSP puede causar un conflicto interno, no debe nunca pensar mucho en una debilidad sino crecerse con sus fortalezas.