El Proceso de software personal ( PSP ) es un proceso de desarrollo de software estructurado que está diseñado para ayudar a los ingenieros de software a comprender mejor y mejorar su desempeño al aportar disciplina a la forma en que desarrollan software y al hacer un seguimiento de su desarrollo previsto y real del código. Muestra claramente a los desarrolladores cómo administrar la calidad de sus productos, cómo hacer un plan sólido y cómo contraer compromisos. También les ofrece los datos para justificar sus planes. Pueden evaluar su trabajo y sugerir una dirección de mejora analizando y revisando el tiempo de desarrollo, los defectos y los datos de tamaño. El PSP fue creado por Watts Humphrey para aplicar los principios subyacentes delModelo de madurez de capacidad (CMM) del Instituto de Ingeniería de Software (SEI) a las prácticas de desarrollo de software de un solo desarrollador. Afirma brindar a los ingenieros de software las habilidades de proceso necesarias para trabajar en un equipo de proceso de software en equipo (TSP).
"Personal Software Process" y " PSP " son marcas de servicio registradas de Carnegie Mellon University . [1] [2]
Objetivos
El PSP tiene como objetivo proporcionar a los ingenieros de software métodos disciplinados para mejorar los procesos de desarrollo de software personal. El PSP ayuda a los ingenieros de software a:
- Mejorar sus habilidades de estimación y planificación.
- Haga compromisos que puedan cumplir.
- Gestionar la calidad de sus proyectos.
- Reducir el número de defectos en su trabajo.
Estructura de PSP
La formación de PSP sigue un enfoque de mejora evolutiva: un ingeniero que aprende a integrar el PSP en su proceso comienza en el primer nivel, PSP0, y avanza en la madurez del proceso hasta el nivel final, PSP2.1. Cada nivel tiene scripts detallados, listas de verificación y plantillas para guiar al ingeniero a través de los pasos requeridos y ayudar al ingeniero a mejorar su propio proceso de software personal. Humphrey anima a los ingenieros competentes a personalizar estos scripts y plantillas a medida que comprendan sus propias fortalezas y debilidades.
- Proceso
La entrada a PSP son los requisitos; El documento de requisitos se completa y se entrega al ingeniero.
- PSP0, PSP0.1 (introduce disciplina y medición de procesos)
PSP0 tiene 3 fases: planificación, desarrollo (diseño, código, compilación, prueba) y una autopsia. Se establece una línea de base de la medición del proceso actual: tiempo dedicado a la programación, fallas inyectadas / eliminadas, tamaño de un programa. En una autopsia, el ingeniero se asegura de que todos los datos de los proyectos se hayan registrado y analizado correctamente. PSP0.1 avanza el proceso al agregar un estándar de codificación, una medición de tamaño y el desarrollo de un plan de mejora de procesos personal (PIP). En el PIP, el ingeniero registra ideas para mejorar su propio proceso.
- PSP1, PSP1.1 (introduce la estimación y la planificación)
Sobre la base de los datos de referencia recopilados en PSP0 y PSP0.1, el ingeniero estima qué tan grande será un nuevo programa y prepara un informe de prueba (PSP1). Los datos acumulados de proyectos anteriores se utilizan para estimar el tiempo total. Cada nuevo proyecto registrará el tiempo real invertido. Esta información se utiliza para la planificación y estimación de tareas y horarios (PSP1.1).
- PSP2, PSP2.1 (introduce la gestión y el diseño de la calidad)
PSP2 agrega dos nuevas fases: revisión del diseño y revisión del código. La prevención de defectos y la eliminación de los mismos son el foco de la PSP2. Los ingenieros aprenden a evaluar y mejorar su proceso midiendo cuánto tardan las tareas y la cantidad de defectos que inyectan y eliminan en cada fase del desarrollo. Los ingenieros construyen y usan listas de verificación para revisiones de diseño y código. PSP2.1 introduce especificaciones de diseño y técnicas de análisis.
(PSP3 es un nivel heredado que ha sido reemplazado por TSP).
La importancia de los datos
Uno de los aspectos centrales del PSP es el uso de datos históricos para analizar y mejorar el rendimiento del proceso. La recopilación de datos de PSP está respaldada por cuatro elementos principales:
- Guiones
- Medidas
- Estándares
- Formularios
Los scripts de PSP proporcionan una guía de nivel experto para seguir los pasos del proceso y proporcionan un marco para aplicar las medidas de PSP. El PSP tiene cuatro medidas básicas:
- Tamaño: la medida del tamaño de una pieza de producto, como líneas de código (LOC).
- Esfuerzo: el tiempo necesario para completar una tarea, generalmente registrado en minutos.
- Calidad: la cantidad de defectos en el producto.
- Programación: una medida de la progresión del proyecto, que se compara con las fechas de finalización planificadas y reales.
La aplicación de estándares al proceso puede garantizar que los datos sean precisos y consistentes. Los datos se registran en formularios, normalmente mediante una herramienta de software de PSP. El SEI ha desarrollado una herramienta de PSP y también hay opciones de código abierto disponibles, como Process Dashboard.
Los datos clave recopilados en la herramienta PSP son datos de tiempo, defectos y tamaño: el tiempo empleado en cada fase; cuándo y dónde se inyectaron, encontraron y arreglaron los defectos; y el tamaño de las piezas del producto. Los desarrolladores de software utilizan muchas otras medidas que se derivan de estas tres medidas básicas para comprender y mejorar su rendimiento. Las medidas derivadas incluyen:
- precisión de la estimación (tamaño / tiempo)
- intervalos de predicción (tamaño / tiempo)
- tiempo en distribución de fase
- distribución de la inyección defectuosa
- distribución de eliminación de defectos
- productividad
- porcentaje de reutilización
- índice de rendimiento de costos
- valor planeado
- valor agregado
- valor ganado previsto
- densidad de defectos
- densidad de defectos por fase
- tasa de eliminación de defectos por fase
- apalancamiento de eliminación de defectos
- tasas de revisión
- rendimiento del proceso
- rendimiento de fase
- costo de falla de la calidad (COQ)
- tasación COQ
- Tasa de valoración / fracaso de COQ
Planificación y seguimiento
El registro de datos de tiempo, defectos y tamaño es una parte esencial de la planificación y el seguimiento de los proyectos de PSP, ya que los datos históricos se utilizan para mejorar la precisión de las estimaciones.
El PSP utiliza el método de estimación basada en proxy (PROBE) para mejorar las habilidades de estimación de un desarrollador para una planificación de proyectos más precisa. Para el seguimiento de proyectos, el PSP utiliza el método de valor ganado .
El PSP también utiliza técnicas estadísticas, como correlación, regresión lineal y desviación estándar, para traducir los datos en información útil para mejorar la estimación, la planificación y la calidad. Estas fórmulas estadísticas son calculadas por la herramienta PSP.
Usando la PSP
El PSP está destinado a ayudar a un desarrollador a mejorar su proceso personal; por lo tanto, se espera que los desarrolladores de PSP continúen adaptando el proceso para garantizar que satisfaga sus necesidades personales.
PSP y TSP
En la práctica, las habilidades de PSP se utilizan en un entorno de equipo de TSP. Los equipos de TSP están formados por desarrolladores capacitados por PSP que se ofrecen como voluntarios para las áreas de responsabilidad del proyecto, por lo que el proyecto es administrado por el propio equipo. Usar datos personales recopilados usando sus habilidades de PSP; el equipo hace los planes, las estimaciones y controla la calidad.
El uso de métodos de proceso de PSP puede ayudar a los equipos de TSP a cumplir con sus compromisos de programación y producir software de alta calidad. Por ejemplo, según una investigación de Watts Humphrey, un tercio de todos los proyectos de software fallan, [3] pero un estudio de SEI sobre 20 proyectos de TSP en 13 organizaciones diferentes encontró que los equipos de TSP no cumplieron con sus cronogramas objetivo en un promedio de solo seis por ciento. [4]
El cumplimiento exitoso de los compromisos del cronograma se puede atribuir al uso de datos históricos para hacer estimaciones más precisas, por lo que los proyectos se basan en planes realistas y, al usar métodos de calidad de PSP, producen software con pocos defectos, lo que reduce el tiempo dedicado a eliminar defectos en fases posteriores. como pruebas de integración y aceptación.
PSP y otras metodologías
El PSP es un proceso personal que se puede adaptar a las necesidades del desarrollador individual. No es específico de ninguna metodología de programación o diseño; por lo tanto, se puede utilizar con diferentes metodologías, incluido el desarrollo de software ágil .
Se puede considerar que los métodos de ingeniería de software varían desde predictivos hasta adaptativos. El PSP es una metodología predictiva y Agile se considera adaptativo, pero a pesar de sus diferencias, el TSP / PSP y Agile comparten varios conceptos y enfoques, particularmente en lo que respecta a la organización del equipo. Ambos permiten al equipo:
- Definir sus metas y estándares.
- Estime y programe el trabajo.
- Determine horarios realistas y alcanzables.
- Realice planes y mejoras de procesos.
Tanto Agile como TSP / PSP comparten la idea de que los miembros del equipo asuman la responsabilidad de su propio trabajo y trabajen juntos para acordar un plan realista, creando un entorno de confianza y responsabilidad. Sin embargo, el TSP / PSP se diferencia de Agile en su énfasis en documentar el proceso y su uso de datos para predecir y definir los cronogramas del proyecto.
Calidad
El software de alta calidad es el objetivo del PSP, y la calidad se mide en términos de defectos. Para el PSP, un proceso de calidad debe producir un software con pocos defectos que satisfaga las necesidades del usuario.
La estructura de la fase de PSP permite a los desarrolladores de PSP detectar defectos de forma temprana. Al detectar los defectos de forma temprana, el PSP puede reducir la cantidad de tiempo empleado en fases posteriores, como Prueba.
La teoría de PSP es que es más económico y eficaz eliminar los defectos lo más cerca posible de dónde y cuándo se inyectaron, por lo que se anima a los ingenieros de software a realizar revisiones personales para cada fase del desarrollo. Por lo tanto, la estructura de la fase de PSP incluye dos fases de revisión:
- Revisión de diseño
- Revisión de código
Para realizar una revisión eficaz, debe seguir un proceso de revisión estructurado. El PSP recomienda el uso de listas de verificación para ayudar a los desarrolladores a seguir un procedimiento ordenado de manera constante.
El PSP sigue la premisa de que cuando las personas cometen errores, sus errores suelen ser predecibles, por lo que los desarrolladores de PSP pueden personalizar sus listas de verificación para abordar sus propios errores comunes. También se espera que los ingenieros de software completen propuestas de mejora de procesos, para identificar áreas de debilidad en su desempeño actual que deberían apuntar para mejorar. Los datos históricos del proyecto, que exponen dónde se invierte el tiempo y se introducen defectos, ayudan a los desarrolladores a identificar áreas para mejorar.
También se espera que los desarrolladores de PSP realicen revisiones personales antes de que su trabajo se someta a una revisión por pares o en equipo.
Certificación
El SEI de la Universidad Carnegie Mellon ofrece una certificación que cubre PSP. Los pasos para convertirse en un desarrollador de PSP certificado por SEI son: aprender el PSP; tomar el examen de certificación; mantener credenciales. El examen de desarrollador de PSP se basa en conceptos que se encuentran en el Cuerpo de conocimientos de PSP. [5] La SEI mantiene una pregunta frecuente [1] sobre la certificación.
Ver también
Referencias
- ^ a b "Desarrollador de PSP certificado por SEI: preguntas más frecuentes" . Entrenamiento SEI . Pittsburgh, Pensilvania: Instituto de Ingeniería de Software , Universidad Carnegie Mellon . Archivado desde el original el 29 de noviembre de 2014 . Consultado el 17 de noviembre de 2014 . Enlace externo en
|work=
( ayuda ) - ^ "Condiciones de uso" . Estados Unidos: Instituto de Ingeniería de Software , Universidad Carnegie Mellon . Consultado el 14 de enero de 2013 .
- ^ Humphrey, Watts S. "Por qué fallan los grandes proyectos de software: las 12 preguntas clave". CrossTalk, marzo de 2005 http://www.crosstalkonline.org/storage/issue-archives/2005/200503/200503-Humphrey.pdf Archivado el 5 de noviembre de 2019 en Wayback Machine.
- ^ Davis, Noopur y Julia Mullaney. El Team Software Process SM (TSP SM) en la práctica: un resumen de resultados recientes. Pittsburgh, PA: Software Engineering Institute, septiembre de 2003.
- ^ Pomeroy-Huff, Marsha; Cannon, Robert; Chick, Timothy A .; Mullaney, Julia; Nichols, William (2009). El conocimiento del proceso de software personal (PSP), versión 2.0 (PDF) . Pittsburgh, Pensilvania: Instituto de Ingeniería de Software , Universidad Carnegie Mellon . Consultado el 17 de noviembre de 2014 . Informe especial de descarga gratuita CMU / SEI-2009-SR-018, 2009
Otras lecturas
- "Uso de un proceso de software personal definido y medido" por Watts S. Humphrey , publicado en IEEE Software , mayo de 1996, páginas 77–88.
- PSP: A Self-Improvement Process for Software Engineers , 2005.
- Entrega de proyectos exitosos con TSP (SM) y Six Sigma: una guía práctica para implementar el proceso de software en equipo , Mukesh Jain, 2008.
- "Entrega de proyectos exitosos con desafíos de nuevos equipos" por Mukesh Jain ( http://www.sei.cmu.edu/tspsymposium/2009/2006/deliver.pdf ), septiembre de 2006.
- Ingeniería de software: Enfoque de un practicante 7ª edición. Roger S Pressman. Educación superior McGraw-Hill. 2009. ISBN 0-07-337597-7 , ISBN 978-0-07-337597-7 , páginas 57–58.
- "El Personal Software Process (PSP) Conjunto de Conocimientos" artículo del Instituto de Ingeniería de Software en la Universidad Carnegie Mellon .
- Artículo "Gestión de la calidad personal con el proceso de software personal" .
enlaces externos
- Software Process Dashboard , herramienta PSP y TSP de código abierto ( GPL3 ); se ofrece sin y con scripts SEI patentados, este último requiere registro SEI gratuito.