Desarrollo de Software en Equipo TSP Unidad 2. Implementación de TSP
Programa de la asignatura:
Desarrollo de Software en Equipo TSP 8º Cuatrimestre
Unidad 2. Implementación de TSP
Clave: 150930934
Universidad Abierta y a Distancia de México UnADM
Ciencias Exactas, Ingeniería y Tecnología | Desarrollo de Software
Desarrollo de Software en Equipo TSP Unidad 2. Implementación de TSP
Índice Unidad 2. Implementación Implementación de TSP ..................................................................................... 2 Presentación Presentación de la unidad .................................................................................................. 2 Propósitos .......................................................................................................................... 2 Competencia específica ..................................................................................................... 2 2.1. Formar Equipos de Trabajo ......................................................................................... 2 2.1.1. Documentar propósitos, propósitos, objetivos objetivos y roles del Equipo ................................................ 6 2.1.2. Planear y ejecutar el lanzamiento lanzamiento del proyecto......................................................... 9 Actividad 1. Planeación Planeación del lanzamient lanzamiento o del proyecto proyecto de software software ................................... 15 2.2. Ejecutar el trabajo en equipo ..................................................................................... 16 2.2.1 Elaborar el plan del proyecto ................................................................................... 16 2.2.2 Elaborar Plan de Calidad Calidad .....................................................................................
20
2.2.3 Elaborar Plan de Riesgos Riesgos ...................................................................................... 30 30 Actividad 2. Plan del del proyecto .......................................................................................... 35 Autoevaluación Autoevaluación................................................................................................................. 35 Evidencia de aprendizaje. aprendizaje. Generación del plan de calidad y de riesgos r iesgos........................... 36 Cierre de la unidad ........................................................................................................... 36 Para saber más ................................................................................................................ 37 Fuentes de consulta ......................................................................................................... 37
Ciencias Exactas, Ingeniería y Tecnología | Desarrollo de Software
1
Desarrollo de Software en Equipo TSP Unidad 2. Implementación de TSP
Índice Unidad 2. Implementación Implementación de TSP ..................................................................................... 2 Presentación Presentación de la unidad .................................................................................................. 2 Propósitos .......................................................................................................................... 2 Competencia específica ..................................................................................................... 2 2.1. Formar Equipos de Trabajo ......................................................................................... 2 2.1.1. Documentar propósitos, propósitos, objetivos objetivos y roles del Equipo ................................................ 6 2.1.2. Planear y ejecutar el lanzamiento lanzamiento del proyecto......................................................... 9 Actividad 1. Planeación Planeación del lanzamient lanzamiento o del proyecto proyecto de software software ................................... 15 2.2. Ejecutar el trabajo en equipo ..................................................................................... 16 2.2.1 Elaborar el plan del proyecto ................................................................................... 16 2.2.2 Elaborar Plan de Calidad Calidad .....................................................................................
20
2.2.3 Elaborar Plan de Riesgos Riesgos ...................................................................................... 30 30 Actividad 2. Plan del del proyecto .......................................................................................... 35 Autoevaluación Autoevaluación................................................................................................................. 35 Evidencia de aprendizaje. aprendizaje. Generación del plan de calidad y de riesgos r iesgos........................... 36 Cierre de la unidad ........................................................................................................... 36 Para saber más ................................................................................................................ 37 Fuentes de consulta ......................................................................................................... 37
Ciencias Exactas, Ingeniería y Tecnología | Desarrollo de Software
1
Desarrollo de Software en Equipo TSP Unidad 2. Implementación de TSP
Unidad 2. Implementación de TSP Presentación de la unidad Implementación según la RAE (2013), es “p oner en funcionamiento, aplicar métodos, medidas, etc., para llevar algo a cabo. ” En el marco de la metodología TSP, la implementación se refiere a la ejecución de las actividades en la cual se debe tener en cuenta los equipos de trabajo, objetivos, roles y planeación de proyecto, calidad y riesgos. En la unidad dos Implementación de TSP aprenderás aprenderás a implementar esta metodología para un proyecto de desarrollo de software, conocerás los componentes de la metodología del TSP y aprenderás la forma adecuada para realizar el propósito y los objetivos del proyecto, así como las estrategias de integración de los miembros del equipo y la asignación de los diferentes roles que TSP propone. También conocerás la forma de hacer los documentos para establecer el plan del proyecto, el plan de calidad y el plan de riesgos para llevar por buen camino el proyecto y lograr que los objetivos se cumplan.
Propósitos
Identificarás Identificar ás los componentes de la metodología Team Software Process (TSP) Process (TSP) de acuerdo a la fase del proyecto correspondiente. Analizarás los productos de trabajo de acuerdo a las funciones correspondientes. Elaborarás los productos de trabajo de acuerdo a su objetivo.
Competencia específica Analizar los componentes componentes de la metodología metodología Team Software Process (TSP) Process (TSP) para implementar productos de trabajo en los equipos autodirigidos, mediante la elaboración de documentos.
2.1. Formar Equipos de Trabajo Durante la fase de lanzamiento que TSP propone, es muy importante saber cómo formar un buen equipo de trabajo no sólo donde exista un buen ambiente si no también un equipo que sea capaz, con base en actitud y aptitud llevar el desarrollo del proyecto por buen camino siempre teniendo presente el objetivo principal del proyecto. En este capítulo aprenderás cómo se forman equipos de trabajo adecuados para poder implementar la metodología TSP en un proyecto de desarrollo de software. El
Ciencias Exactas, Ingeniería y Tecnología | Desarrollo de Software
2
Desarrollo de Software en Equipo TSP Unidad 2. Implementación de TSP
establecimiento de un equipo de trabajo se lleva a cabo en la fase de lanzamiento, para que un equipo de trabajo sea realmente efectivo todos sus miembros deben estar bien capacitados para las actividades que van a llevar a cabo dentro del proyecto y también trabajar de manera conjunta para lograr cumplir con los objetivos trazados al inicio del proyecto. TSP indica ciertas características que un equipo que trabaje bajo esta metodología debe tener (Humphrey, 1999):
Los miembros del equipo deben contar con las habilidades requeridas, esto quiere decir que si se buscan desarrolladores de software y el proyecto se va a desarrollar en algún lenguaje de programación en específico, se deben buscar personas que sean expertos en ese lenguaje. El objetivo del proyecto debe ser claro, bien definido y realista. Los miembros del equipo deberán estar comprometidos en cumplir el objetivo principal del proyecto a desarrollar. Entre los miembros del equipo deben ayudarse para solucionar problemas más rápidamente y para que exista un buen ambiente en el equipo de trabajo. Los miembros del equipo deben ser disciplinados en su trabajo. El equipo debe innovar y ser eficaz, pero para que esto se logre, se debe trabajar en un ambiente de confianza y apoyarse unos a otros en todo momento.
Los principales elementos para la formación del equipo de trabajo se muestran en el siguiente esquema.
Ciencias Exactas, Ingeniería y Tecnología | Desarrollo de Software
3
Desarrollo de Software en Equipo TSP Unidad 2. Implementación de TSP
Asignación de recursos
Habilidades técnicas:
Trabajo en equipo: Habilidades Estimación y planificación
necesarias
aplicaciones
Gestión de calidad
Dominio de las Tecnología del producto
Comportamiento
interpersonal
Herramientas y métodos
Reclutamiento
Evaluar:
Destrezas y habilidad
Interés por el trabajo
Actitud y energía
Proporcionar capacitación
Miembros del equipo expertos y entrenados
Elementos necesarios para la formación del equipo (Humphrey, 1999).
Ciencias Exactas, Ingeniería y Tecnología | Desarrollo de Software
4
Desarrollo de Software en Equipo TSP Unidad 2. Implementación de TSP
Asignación de recursos: el primer paso para formar el equipo implica llegar a un acuerdo de administración de los recursos necesarios. La mayoría de los proyectos de desarrollo de software inician siempre con una estimación preliminar de costos esperados, de acuerdo al tamaño y a lo complejo del proyecto.
Habilidades necesarias: como se muestra en el la figura anterior las habilidades necesarias recaen en dos categorías generales que son: la técnica y el trabajo en equipo.
Dominio de las aplicaciones: se necesitará por lo menos un miembro o más en el equipo que tengan total conocimiento y dominio sobre el software que se va a desarrollar, por ejemplo: para el desarrollo de un software del área contable, se requiere a alguien que sepa perfectamente contabilidad para poder orientar el desarrollo del software en cuanto a ciertas características específicas del área de contabilidad y que requieran considerarse para integrar en el software y así poder ayudar a los demás miembros del equipo a lograr los objetivos.
Tecnología del producto: la tecnología del producto se refiere a lo complejo que puede llegar a ser el software, esto se basa en qué tan grande o novedoso va a ser el software a desarrollar, si el proyecto es complejo se necesitará que las personas que conforman el equipo cuenten con la suficiente experiencia en el desarrollo de sistemas similares para ayudar a los demás miembros del equipo.
Herramientas y métodos: se refiere a la herramientas que se necesitarán para llevar a cabo el desarrollo del proyecto de software tales como el lenguaje de programación que se va a ocupar, el motor de base de datos, herramientas para el análisis y el diseño del software, los métodos se refieren a la forma como se van a utilizar esas herramientas. Se requiere que el equipo cuente con profesionales de software para saber qué herramientas y métodos se utilizarán para desarrollar el sistema.
Trabajo en equipo Hay tres puntos importantes según la figura anterior de trabajo en equipo:
Estimación y planificación: cuando se habla de estimación, se hace referencia a las personas que conforman el equipo que sean capaces de estimar o calcular tiempos y así hacer una planificación con tiempos adecuados y reales. Las personas con estas cualidades pueden lograr que el equipo sea auto dirigido, es decir que si se cuenta con una persona con las cualidades de estimar y planear, ésta se encargará de dirigir al equipo sin necesidad de capacitaciones y así ahorrar tiempo en el desarrollo del proyecto, obviamente al tener personas con estas habilidades se logrará contar con equipos autodirigidos, que no necesiten de alguien que para llevar acabo sus actividades, sino por el contrario que aporten
Ciencias Exactas, Ingeniería y Tecnología | Desarrollo de Software
5
Desarrollo de Software en Equipo TSP Unidad 2. Implementación de TSP
su experiencia al equipo y ayuden a sus demás compañeros para lograr los objetivos trazados.
Gestión de la calidad: Esto es un aspecto esencial en todos los proyectos que utilicen la metodología TSP, Los miembros del equipo de software deben ser competentes en esta habilidad y todos ellos deben creer que es importante gestionar personalmente la calidad de su trabajo, incluso cuando están trabajando bajo presión.
Comportamiento interpersonal: para ser eficaces en un equipo, todos deben ser capaces de trabajar conjuntamente, participar en la resolución de problemas y ayudar a los demás cuando sea necesario. Es necesario enfatizar que, al momento de seleccionar al personal que formará parte del equipo, quizás se encuentre a personas muy aptas en cuanto a conocimientos y habilidades pero, si tiene una actitud negativa en cuanto a los aspectos de colaboración y desempeño grupal, esto puede generar problemas al interior del grupo y obstaculizar el óptimo desarrollo de las actividades.
Reclutamiento. Para contratar a las personas que formarán el equipo de trabajo, se requiere identificar una mezcla particular de destrezas y habilidades. Por eso es muy importante que antes de iniciar el proceso de reclutamiento, se definan estas necesidades para formar un equipo adecuado.
Proporcionar capacitación. Es necesario que se capacite a los miembros del equipo respecto a la metodología TSP, las herramientas de comunicación que se utilizarán y los diversos procesos en los que intervendrán. Una vez que se cuenta con un equipo es necesario documentar los propósitos, objetivos y roles que guiarán las diversas acciones, a continuación se explicará la forma de documentación.
2.1.1. Documentar propósitos, objetivos y roles del equipo Sin duda la documentación es una parte muy importante del proceso en la metodología de TSP y se refiere a la integración en documentos de los propósitos, objetivos y roles del equipo, la creación de éstos se realiza al inicio de la fase de lanzamiento, para después redactarlos e integrarlos en una plantilla que se muestran en una junta a todos los miembros del equipo. Los objetivos, propósitos y roles del equipo se deben documentar o plasmar en un documento para que todos los miembros del equipo los puedan ver en cualquier momento, también para que, si se integra un miembro nuevo en una etapa ya avanzada del desarrollo del proyecto, este tenga acceso a dicha información. Lo anterior es muy importante porque
Ciencias Exactas, Ingeniería y Tecnología | Desarrollo de Software
6
Desarrollo de Software en Equipo TSP Unidad 2. Implementación de TSP
en la plantilla se va a ver reflejado lo que se desea alcanzar cuando el proyecto llegue a su fin. Cabe señalar que estos documentos se comparten por medio de una red Intranet. Normalmente los objetivos, propósitos y roles se redactan en un formato o plantilla que debe contener lo siguiente:
Logo de la empresa que desarrolla el software : esto se ocuparía como encabezado y debe aparecer en todas las páginas del documento.
Nombre del proyecto: es importante saber a qué proyecto pertenece este documento, recuerda que en una empresa de desarrollo de software normalmente se trabaja en varios proyectos a la vez, obviamente por eso TSP propone hacer equipos de trabajo, para tener los proyectos más controlados y con una estructura bien definida para cada proyecto que se esté realizando. Este nombre se debe de poner debajo del logotipo de la empresa también como encabezado del documento
Control de cambios: no es más que una pequeña tabla donde se controlan los cambios que va sufriendo el documento original, la cual en el encabezado debe llevar la fecha de medicación y el nombre de la persona que creó o modificó, por ejemplo:
FECHA DE MODIFICACION
NOMBRE DEL RESPONSABLE
Cabe mencionar que se deberán agregar más filas, cada que una persona realice un cambio en la plantilla.
Tema del contenido: se tiene que poner como título qué es lo que va a contener esta plantilla (objetivos, propósitos, roles etc.). Después estos documentos se suben a una Intranet; una intranet es parecido a una página web, la única diferencia es que sólo permite ver el contenido a las personas que estén dentro de la red de la empresa. Esto se hace con la finalidad de que todos los miembros del equipo de acuerdo al proyecto en el que estén trabajando puedan acceder a estos documentos en cualquier momento. TSP como metodología proporciona algunas plantillas como por ejemplo la plantilla LAU 1 (por las primeras letras de la palabra lanzamiento en ingles Launch) que se mostrará en el siguiente subtema.
Propósitos
Ciencias Exactas, Ingeniería y Tecnología | Desarrollo de Software
7
Desarrollo de Software en Equipo TSP Unidad 2. Implementación de TSP
Un propósito es un discurso claro, que se debe redactar en máximo dos párrafos en el cual se reflejarán las intenciones o lo que se pretende alcanzar de un proyecto (Saskatchewan, 2002). Es preciso mencionar que redactar el propósito del proyecto es muy importante, porque más tarde se reflejará en los objetivos del mismo, los propósitos dan una visión de qué se quiere lograr al final del proyecto, los encargados de hacer el propósito son el líder de proyecto, el auxiliar de planeación y el administrador de desarrollo, y son aprobados por la alta gerencia, más adelante se mencionará quiénes son estas personas.
Objetivos Los objetivos son las metas que se espera alcanzar cuando un proyecto llegue a su fin. Los objetivos siempre deben comenzar con un verbo en infinitivo; estos verbos son los que no están conjugados y todos tienen la terminación ar, er, ir, algunos ejemplos serian: desarrollar, analizar, concluir, examinar, interpretar, describir. Para realizar un buen objetivo para un proyecto de sistemas de información, se debe primero poner el verbo en infinitivo y contestar las preguntas que se desean realizar en torno a ¿qué tipo de software se desarrollará? Por ejemplo: puede ser contable, para administración de alumnos en una escuela, software para controlar el área de ventas etcétera, ¿para quién será el software a desarrollar?, es decir, el cliente o empresa que requiere este recurso, y por último ¿con qué se va realizar ?, se refiere a las herramientas necesarias para llevar a cabo ese proyecto de sistemas de información. El ejemplo de un objetivo de acuerdo a un proyecto a realizar ocupando la metodología TSP sería el siguiente: Desarrollar un sistema de administración contable completo y fácil de utilizar para la empresa Contab S.A de C.V que permita a los usuarios del sistema realizar la contabilidad para sus clientes y obtener reportes accesibles, con el uso de herramientas como .net, Hibernate, JQuery y SQL Server crear un software de calidad que cumpla con todos los requerimientos, estándares y necesidades que la empresa Contab requiere.
Roles En la Unidad 1 capítulo 1.1.3. Fase de lanzamiento , se describen y explican los cinco roles básicos que propone TSP y que conforman la parte medular de un equipo en TSP, que desempeñan 5 personas que conformarían la base del equipo:
Líder de proyecto Administrador de desarrollo Auxiliar de planeación Administrador de calidad
Ciencias Exactas, Ingeniería y Tecnología | Desarrollo de Software
8
Desarrollo de Software en Equipo TSP Unidad 2. Implementación de TSP
Administrador de configuraciones
Estos roles que propone la metodología TSP son necesarios si se quiere implementar esta metodología. Hay que tomar en cuenta que se requiere de un grupo de desarrolladores de software formados en PSP e ingenieros de calidad, que estarán a cargo del administrador de calidad y del administrador de desarrollo, los cuales determinarán la cantidad con base en el tamaño del software a desarrollar. La experiencia y la capacidad individual de cada desarrollador e ingeniero de calidad serán un factor muy importante al momento de hacer esta selección, recuerda que estas actividades se llevan a cabo en la fase de lanzamiento del proyecto y estos se redactan en una plantilla que indica la metodología TSP llamada LAU1 y se detallará en el siguiente subtema, es importante mencionar que también ya finalizada la fase de lanzamiento se puede utilizar la plantilla de la unidad uno capítulo 1.3.3. Fase de planeación. En este subtema aprendiste dónde se integran los propósitos y objetivos así como los roles que propone la metodología TSP, en el siguiente subtema revisarás más a detalle la plantilla LAU1 y la forma en que planean y ejecutan los administradores del proyecto el lanzamiento del mismo.
2.1.2 Planear y ejecutar el lanzamiento del proyecto En este capítulo aprenderás cómo se planea y ejecuta un proyecto utilizando la metodología TSP, también se revisará la forma en que se integran los datos en la plantilla LAU1 (LAUNCH script 1) que propone TSP para realizar el lanzamiento del software a desarrollarse. Antes de empezar con todo la fase de lanzamiento, TSP propone realizar un checklist . En el se redactarán las actividades y el orden en el que se llevarán a cabo todas las tareas de esta fase, este checklist contiene lo siguiente:
Actividad 1 2 3 4 5 6 7 8 9 10
Estatus
Establecer productos y objetivos de la empresa Establecer roles y objetivos del equipo Definir estrategia de desarrollo Hacer un plan general Hacer un plan de calidad Balancear el plan(carga de trabajo) Plan de riesgos Diseñar reporte de administración Revisión del plan con administración Análisis Postmortem. el equipo revisa el proceso
Ciencias Exactas, Ingeniería y Tecnología | Desarrollo de Software
9
Desarrollo de Software en Equipo TSP Unidad 2. Implementación de TSP
En la columna estatus se pude palomear, pero lo más correcto, es poner todos en “pendiente y conforme se vayan completando las actividades se cambie el estatus a “completado . ”
”
Una vez que el líder del proyecto, el auxiliar de planeación y el administrador de desarrollo redacten los objetivos, el propósito, roles y el checklist , crearán una plantilla que la metodología TSP señala como esencial llamada LAU1, como se muestra en la figura 2.2, posteriormente se impartirá un curso y se mostrará esta plantilla a todos los miembros del equipo. Como se mencionó anteriormente en una empresa que se dedica al desarrollo de software pueden trabajar en varios proyectos a la vez, para cada proyecto se conforman equipos de trabajo llamados células de trabajo, dentro de cada una de estas células, estarán las cinco personas que obtendrán los roles que TSP propone y un grupo de desarrolladores e ingenieros de calidad que se encargarán del desarrollo del proyecto al que hayan sido asignados dentro de su célula. Los reportes que cada equipo debe entregar son definidos en las reuniones que TSP señala para ejecutar el lanzamiento del proyecto. Más adelante se explicará a detalle qué temas se tocan en cada reunión. Propósito
Crear los equipos en el primer ciclo de desarrollo
Criterios de entrada
Todos los miembros del equipo deben completar el curso de PSP
General
Con esta plantilla se inicia el proyecto en equipo Los objetivos se describen en esta junta • Se forman los equipos y se realiza la asignación de roles • Se explican los objetivos del proyecto a desarrollar. • Se establecen las juntas de los equipos y los tiempos de entrega de los reportes.
Paso 1
Actividad
Descripción
Resumen del curso
El instructor describe los objetivos del curso Qué se espera que los miembros el equipo logren Cómo será evaluado y calificado su trabajo Principios básicos del trabajo en equipo El proceso de TSP El instructor explica los criterios para hacer la asignación de equipos Información necesaria para la asignación adecuada Roles del equipo, responsabilidades y aptitudes El instructor describe los objetivos del producto. Los objetivos críticos que deben ser satisfechos. Los objetivos deseables y opcionales. Los criterios para evaluar un producto terminado. El instructor asigna a los asistentes su equipo y les asigna su rol
2
3
Información del integrante del equipo Objetivos del producto
4 5
Asignación de equipos Objetivos del
El instructor describe los parámetros de los objetivos.
Ciencias Exactas, Ingeniería y Tecnología | Desarrollo de Software
10
Desarrollo de Software en Equipo TSP Unidad 2. Implementación de TSP
equipo Reuniones del equipo
6
Por qué se necesitan los objetivos y metas del equipo. El instructor explica las reuniones del equipo y su propósito. El propósito de las juntas de equipo, fechas y reportes. Datos requeridos semanalmente El líder del equipo tiene su primera reunión con su equipo. Se discuten los roles de los miembros del equipo. Se discuten y se acuerdan los objetivos del ciclo 1. Se establecen los tiempos de las reuniones semanales. Se especifican y se acuerdan los tiempos semanales de todos los miembros del equipo para dar sus reportes semanales al administrador de planeación. El administrador de planeación revisa por equipo: Los datos requeridos por cada miembro del equipo semanalmente. Los reportes que serán generados y entregados al equipo de estos datos Los equipos inician su trabajo en el proyecto
7
La primera reunión del equipo
8
Datos requeridos
9
Inicia el proyecto
Plantilla LAU 1 A continuación se explicarán los elementos que se deben integrar en cada columna de la plantilla LAU1, mismos que conforman el listado de acciones o checklist de la fase de lanzamiento de TSP.
Propósito. En el propósito general se describen los objetivos del curso que son los siguientes:
Asignar los roles (recuerda que cada rol que propone TSP lo adquiere una persona cualificada para ese rol). A cada uno de ellos se les asigna un equipo de trabajo.
Criterios de entrada. En la fila criterios de entrada ( entry criteria) se integrará como primer requisito que los miembros del equipo hayan completado su curso de PSP, como se revisó en la asignatura Métricas de Calidad PSP, es una metodología de calidad a nivel personal y es de suma importancia si se quiere aplicar TSP que todos los integrantes del equipo conozcan y dominen PSP.
General. El instructor del curso expone los objetivos del software a desarrollar:
Establecer los tiempos de las juntas. Establecer los reportes a entregar.
Paso 1. En esta fila se integra una introducción y un resumen del curso a los miembros el equipo, la persona encargada de la junta describe los siguientes puntos:
Qué se espera que logren los miembros del equipo a lo largo del curso. Como será evaluado su desempeño dentro del curso.
Ciencias Exactas, Ingeniería y Tecnología | Desarrollo de Software
11
Desarrollo de Software en Equipo TSP Unidad 2. Implementación de TSP
Explicar brevemente el tema “trabajo en equipo” . Este tema lo expondrá la persona encargada de impartir el curso. Exponer ante el equipo qué es la metodología TSP y sus diferentes procesos, por lo cual el instructor la explicará en esta parte del curso.
Paso 2. En esta fila, se expone a los asistentes al curso la forma en que se realizará la asignación de los equipos
Información necesaria para la asignación adecuada de cada integrante al su respectivo equipo. Se redacta a detalle la información sobre los diferentes roles del equipo, así como las responsabilidades y aptitudes que deben tener cada miembro para cada rol. Las responsabilidades son las obligaciones y el compromiso que adquiere cada miembro del equipo para realizar el proyecto de acuerdo a su rol y las aptitudes son los conocimientos, experiencia y habilidades específicas que una persona necesita para adquirir y desempeñar un rol dentro del equipo
Paso 3. En esta fila se señalan los objetivos del producto a desarrollar y se deben exponer los siguientes puntos:
El objetivo principal del proyecto de desarrollo de software, que generalmente explicará que funcionamiento tendrá el software, la empresa que solicitó el recurso de software que se desarrollará y las herramientas para desarrollar el software en cuestión. Los objetivos secundarios del proyecto, estos objetivos pueden ser objetivos más pequeños y a corto plazo los cuales en conjunto permitirán lograr el objetivo principal. Los criterios para que se pueda evaluar el software como un producto terminado. En esta parte se describen los documentos entregables al final del desarrollo del proyecto (Manual de usuario, manual técnico, ejecutable o instalador del software desarrollado, las licencias requeridas, etcétera).
Paso 4. En este paso, se indica la forma en que se integrarán los nombres de cada uno de los miembros del equipo. El instructor del curso dará a conocer a cada miembro uno de los miembros, el equipo al que se integrarán y la asignación de roles para cada puesto.
Paso 5. En esta parte el instructor del curso describe los objetivos para los equipos de trabajo y los roles.
Paso 6. En este paso el instructor da a conocer las fechas de las futuras juntas el tiempo que dure el desarrollo del sistema.
Paso 7. Se indica que cada líder de equipo tendrá la primera junta con su equipo (aquí solo se mencionan las fechas, más adelante se explican las reuniones y qué se va a ver en cada reunión), y se indican algunos puntos que se deben discutir en dicha junta:
Ciencias Exactas, Ingeniería y Tecnología | Desarrollo de Software
12
Desarrollo de Software en Equipo TSP Unidad 2. Implementación de TSP
Los roles de los miembros del equipo. Objetivos del equipo. Establecer un estándar para las juntas semanales.
Paso 8. Se explica que el administrador de planeación deberá revisar con el equipo el trabajo que se le haya solicitado a cada miembro una vez por semana, así como generar reportes (plantillas de PSP donde se haga el análisis individual de trabajo) donde se plasmen estos avances.
Paso 9. Por último en el paso 9 una vez aclarados todos los pasos, se inicia el proyecto y se pasa a la siguiente fase de TSP que es implementación. El lanzamiento TSP es una serie estructurada de las actividades del equipo guiados por un entrenador TSP que también es el encargado de dar el curso donde se muestra la plantilla LAU 1; el proceso de ejecución del lanzamiento tiene una duración de dos a cinco días, e incluye nueve reuniones y una p o s t - m o r t e m . Las reuniones de ejecución del lanzamiento son las siguientes:
Reunión 1: Los administradores presentan los objetivos del proyecto y dan a conocer gastos críticos si no se entrega el proyecto, fechas de entregas o los requisitos de calidad. . El equipo tiene la oportunidad de hacer preguntas acerca de los requisitos y limitaciones con el fin de aclarar su comprensión de la presentación de los administradores.
Reunión 2: El equipo define sus objetivos. Reunión 3: El equipo crea el diseño conceptual del software a desarrollar, definen el proceso y los planes de apoyo del equipo, crean la estrategia del proyecto y reparten el trabajo.
Reunión 4: El equipo calcula el tamaño de las partes del diseño conceptual y crea el plan general donde vienen los recursos del proyecto así como el calendario de desarrollo del mismo.
Reunión 5: El equipo crea el plan de calidad. Reunión 6: El equipo divide el trabajo en proyectos personales individuales para cada fase del desarrollo y así balancear la carga de trabajo.
Reunión 7: El equipo identifica riesgos que puedan surgir durante el desarrollo del proyecto. Reunión 8: El equipo prepara un plan para presentar el plan que crearon con la alta gerencia (común mente estos puestos los ocupan los dueños de la empresa que va a desarrollar el software).
Ciencias Exactas, Ingeniería y Tecnología | Desarrollo de Software
13
Desarrollo de Software en Equipo TSP Unidad 2. Implementación de TSP
Reunión 9: El equipo presenta sus planes y planes alternativos (si es que los tienen) para la administración del proyecto y recibe la aprobación de la alta gerencia. En el paso 9 se indica que una vez concluida la reunión se inicia el proyecto.
Lanzamiento p o s t - m o r t e m : En este paso se generan las mejoras a los procesos de la fase de desarrollo y se hace una evaluación de toda la fase de lanzamiento.
Ciencias Exactas, Ingeniería y Tecnología | Desarrollo de Software
14
Desarrollo de Software en Equipo TSP Unidad 2. Implementación de TSP
Actividad 1. Planeación del lanzamiento del proyecto de software Esta actividad tiene como propósito identificar los pasos mediante los cuales se generará el checklist de la planeación del lanzamiento del proyecto de software. Para ello, revisa el documento que te enviará previamente tu Facilitador(a) y posteriormente realiza lo que a continuación se te indica: 1. Identifica los elementos de la planeación del lanzamiento del proyecto. 2. Genera el checklist con base en el planteamiento recibido. 3. Redacta tus conclusiones acerca de los elementos que integran el problema y cómo se relacionan con los elementos de planeación del lanzamiento de TSP. 4. Identifica si hay elementos que faltan respecto al checklist de la fase de lanzamiento y cuáles son los efectos que puede tener para el desarrollo del proyecto si no se cubre este elemento. Redacta este análisis en una conclusión al final del checklist señalando cuál es la solución que plantearías para que no repercutiera en el desarrollo del proyecto. 5. Guarda la actividad con el nombre DDSE_U2_A1_XXYZ. Sustituye las XX por las dos primeras letras de tu primer nombre, la Y por tu primer apellido y la Z por tu segundo apellido. 6. Envía tu actividad al facilitador mediante la herramienta bases de datos 7. Comenta la actividad de por lo menos dos de tus compañeros e identifica semejanzas y diferencias respecto a tus propias conclusiones. *No olvides consultar el documento Criterios de evaluación para las actividades de la unidad 2 donde podrás conocer los parámetros de evaluación de esta actividad. Nota: para integrar los datos correspondientes a algunos de los pasos de la fase de lanzamiento, se requiere consultar la Unidad 1.
Ciencias Exactas, Ingeniería y Tecnología | Desarrollo de Software
15
Desarrollo de Software en Equipo TSP Unidad 2. Implementación de TSP
2.2. Ejecutar el trabajo en equipo En este capítulo aprenderás cómo una vez que se cuenta con la definición del propósito, los objetivos y los roles bien definidos, se ejecuta el trabajo en equipo. Una vez que todos los miembros del equipo conocen cuál es el rol que les toca desempeñar dentro del proyecto, los líderes son los encargados de mantener a los miembros del equipo motivados para que realicen sus actividades de la mejor manera. Como se observó en la unidad 1, TSP brinda una metodología muy bien definida para trabajar con grupos en todos los ciclos de vida del desarrollo del proyecto, pero aquí surgen algunas preguntas para los administradores del proyecto ¿Cómo controlar el proyecto de acuerdo a su tamaño? , ¿Cómo saber que el producto está cumpliendo con la calidad deseada?, si ocurre algún problema durante el desarrollo del proyecto ¿cómo controlar los riesgos que puedan
surgir durante el desarrollo del mismo? Afortunadamente TSP brinda una serie de planes para resolver estas preguntas y llevar por buen rumbo el desarrollo del proyecto para llegar a los objetivos planteados en la fase de lanzamiento del mismo. En los siguientes subtemas aprenderás la forma y estrategias de creación de estos planes, para contar con una métrica exacta de posibles errores que surjan en el desarrollo del proyecto, y así poder controlar de una manera más adecuada y dar solución a estos problemas, para lograr entregar el producto final en el tiempo estimado y con la calidad requerida.
2.2.1. Elaborar el plan del proyecto En este tema conocerás qué es el plan de proyecto, la importancia de aplicarlo durante el desarrollo del mismo y las actividades que se deben realizar para hacer un adecuado plan. Un plan de proyecto es una guía de las actividades que se realizan en un proyecto y la manera en que deben estar organizadas en cuanto a tiempo, así como la secuencia y orden. Dentro del plan de proyecto se dividen las tareas y actividades, así mismo se ordenan entre los hitos del proyecto, un hito se refiere a la duración de una tarea o actividad que termina hasta la culminación de su objetivo, estos tienen descripción y fecha bien definidas (Rodríguez, 2007). Un plan de proyecto se debe hacer una vez que ha sido convenido formalmente por el cliente y el equipo el proyecto a desarrollar. El plan de proyecto es un medio de comunicación que dará a conocer las decisiones que se lleguen a tomar por los participantes del proyecto. El
Ciencias Exactas, Ingeniería y Tecnología | Desarrollo de Software
16
Desarrollo de Software en Equipo TSP Unidad 2. Implementación de TSP
plan de proyecto permite que la comunicación sea mucho más fácil entre los involucrados en el desarrollo del proyecto. El principal responsable de generar el plan de proyecto es el líder de proyecto, quien debe asegurar que se elabore correctamente, que contenga los elementos necesarios y se ejecute. En un plan de proyecto se contemplan los siguientes cuestionamientos ¿Quién?, ¿Qué?, ¿Por qué?, ¿Cuándo?, ¿Dónde?, ¿Cómo? y ¿Cuándo? A continuación se mencionan los elementos que componen un plan de proyecto. Definición del alcance. Estructura de desglose de trabajo. Cronograma de actividades. Recursos requeridos. Presupuesto definitivo del proyecto. Asignación de roles y responsabilidades. Riesgos.
Definición del alcance Para poder expresar el alcance es muy importante generar un enunciado correcto en donde se va a establecer hasta dónde se va a hacer. Para poder generar el enunciado del alcance se recomienda incluir lo siguiente:
Los objetivos. Estos serán los objetivos planteados para el proyecto. Descripción. Esta se hará de los productos o servicios que se realizarán. Límites del Proyecto. Lo que se incluye y excluye. Supuestos. Esto se refiere a las situaciones que se dan por hecho, por ejemplo se cuenta con el equipo de cómputo necesario para la programación del sistema. Restricciones. Son las normas, reglas y políticas a las cuales el proyecto debe de seguir.
Estructura de desglose de trabajo La estructura de desglose de trabajo (EDT) es una herramienta que se utiliza para especificar el alcance de un proyecto, y es una representación gráfica de los elementos principales de la planeación del proyecto. La estructura de desglose de trabajo es semejante la estructura de un organigrama de una empresa, la cual identifica las los elementos de un proyecto. El EDT dependerá de los requerimientos del proyecto, los cuales revisará el equipo
Ciencias Exactas, Ingeniería y Tecnología | Desarrollo de Software
17
Desarrollo de Software en Equipo TSP Unidad 2. Implementación de TSP
de proyecto. En la siguiente ilustración se muestra un ejemplo de la estructura de desglose de trabajo para el desarrollo e implementación del sistema de gestión de compras de una empresa. Esquema ejemplo de estructura de desglose de trabajo (Cybertesis, 2009). Sistema de gestión de compras
5.2.1Plan de gestión de alcance
1. Análisis y diseño
2. Desarrollo
3. Pruebas
4. Implementación
4.1 Manual
1.1
2.1 Visar
3.1 Plan de
requerimiento
pruebas
5. Gestión
5.2.2 EDT
5.2.3
5.1 Inicio
Cronograma
de usuario
del proyecto
Requerimientos del Sistema
3.2 Actas de
4.2
5.2
2. 2 Aprobar
conformidad
Instaladores
Planificació
requerimiento
de pruebas
del sistema
n
5.2.4 Presupuesto de costos
1. 2 Diagrama del
5.2.5 Plan de
sistema
gestión de calidad 2.3 Seleccionar cotizaciones
3.3 Manuales
5.3 Ejecución
5.2.6 Registro de
de sistema
riesgos
1.3 Prototipo 5.4 2.4 Aprobar 1.4 Informes
cotizaciones
5.2.7 Plan de
Seguimiento
gestión de riesgos
y control
5.2.8 Plan de
preliminares de
gestión de
análisis y diseño
5.5 Cierre
personal
2.5 Visar orden de 5.2.9 Plan de
com ra
gestión de comunicaciones 2.6 Aprobar
5.2.10 Plan de
orden de
gestión de
com ra
adquisiciones 5.2.11 Acta de aceptación final
Ciencias Exactas, Ingeniería y Tecnología | Desarrollo de Software
18
Desarrollo de Software en Equipo TSP Unidad 2. Implementación de TSP
Cronograma de actividades. El diagrama de actividades es una representación gráfica detallada de la secuencia en la que serán ejecutadas las actividades, estas secuencias se deben de establecer por medio de fechas. Existen diversas herramientas para generar este tipo de diagramas, solo por mencionar una de estas se encuentra Microsoft Project .
Recursos requeridos. Los recursos humanos y materiales se establecen a partir de los roles y actividades de los miembros del equipo
Presupuesto definitivo del Proyecto. Las estimaciones de costo se hacen en base a los costos asignados a las actividades y recursos que se hayan realizado en el proyecto.
Asignación de roles y responsabilidades. Es de suma importancia delegar a los miembros del equipo las tareas y actividades que desempeñaran dependiendo de las habilidades, actitudes y aptitudes como ya se ha explicado en los temas anteriores.
Riesgos. La gestión de riesgos es una de las actividades más importantes dentro de la planeación del proyecto ya que de éste dependerá el cumplimiento de los objetivos del proyecto, en el capítulo 2.2.3 se abordará más a detalle la elaboración del plan de riesgos dentro de esta unidad. Dentro de un plan de proyecto se deben considerar los objetivos y actividades a realizar, estas deben ser claras y bien definidas. En un plan de proyecto se contempla la versión inicial del proyecto, cada una de estas versiones del plan de proyecto debe ser colocada en la administración de configuración, además de contener un calendario para programar las actualizaciones futuras del plan de proyecto. Es de gran importancia generar un plan de proyecto ya que de éste dependerá que los objetivos propuestos en cada una de las actividades puedan cumplirse en tiempo y forma. Así también al generar un plan de proyecto de establecerá las bases de hasta donde se quiere hacer y lo que se va a hacer.
Ciencias Exactas, Ingeniería y Tecnología | Desarrollo de Software
19
Desarrollo de Software en Equipo TSP Unidad 2. Implementación de TSP
2.2.2. Elaborar plan de calidad En este capítulo aprenderás a elaborar un plan de calidad de acuerdo a la metodología TSP, este plan es muy importante porque con éste se podrá tener una métrica exacta de qué se está haciendo bien y los posibles fallos que surjan a través del desarrollo del proyecto. En la fase de lanzamiento del proyecto se define el plan de calidad, se basa en el tamaño del proyecto y de acuerdo a esto se inyectarán defectos (Humphrey, 2006) que no es más que introducir defectos en cada una de las fases de desarrollo. Para entender más claro este punto, el plan de calidad se basa totalmente en PSP; es necesario recordar que en PSP se hacen plantillas, por ejemplo los desarrolladores plasman en estas plantillas los errores que van teniendo al codificar, el tiempo que pierden al tener estos errores y al final del día se hace un análisis de cuáles fueron los errores que más se repitieron para tener oportunidad de mejora. Por ejemplo, para los desarrolladores de software, el error más común al codificar son los errores de punto y coma, el administrador de desarrollo retoma esta concurrencia de errores y al momento de aplicar el plan de calidad se inyectan estos errores en el código para saber de manera exacta qué tan bien están codificando los desarrolladores. Una vez que los ingenieros y administradores han identificado qué errores inyectar TSP se propone usar un histórico con estimaciones ( yields), estos darán el porcentaje de productividad de acuerdo al trabajo realizado por cada miembro del equipo al que corresponda. Finalmente el equipo examina este plan de calidad para ver si los parámetros son razonables y si cumplen con los objetivos de calidad del equipo de trabajo. El contenido del plan de calidad debe integrarse por los siguientes elementos los cuales se exponen uno por uno detalladamente a continuación:
Resumen de porcentaje. Se refiere a la exposición breve y precisa del porcentaje de errores por línea de código. Los porcentajes tienen tres medidas en la calidad del proceso:
LOC/Horas (por sus siglas en inglés LOC quiere decir Line Of Code Línea de código ): Esta operación de dividir las líneas de código entre las horas por día o según se establezca, con base en el registro de tiempos que se indica en PSP mencionada en la asignatura Métricas de desarrollo de software. El resumen del porcentaje indica la calidad global del equipo, un número grande indica costos bajos y productividad alta.
% Reutilización: mide el porcentaje del producto si fue reutilizado de algún otro u otros proyectos.
% Reutilización Nuevo: mide la contribución del ciclo en futuros proyectos.
Ciencias Exactas, Ingeniería y Tecnología | Desarrollo de Software
20
Desarrollo de Software en Equipo TSP Unidad 2. Implementación de TSP
Porcentaje Libre de Defectos (PDF). Mide el porcentaje de los componentes de un producto cuando no se encuentran defectos en una fase dada. Un ejemplo de PDF sería: En un componente de 10 partes al momento de hacer las pruebas 9 de ellas tienen errores, el PDF en la fase e compilación es de 10% (no se toman en cuenta los errores sólo la parte que está bien).
Defectos por página. Muestra los defectos removidos en cada página del documento de requerimientos.
Defectos por KLOC. KLOC significa mil líneas de código LOC por sus siglas en inglé s “Line Of Code” significa línea de código. La experiencia muestra que cuando un producto tiene menos de 0.5 defectos/KLOC en construcción y pruebas de integración y menos de 0.2 defectos/KLOC en pruebas de sistema, generalmente no habrá defectos para que encuentre el usuario (producto de alta calidad) estas métricas se ejemplifican al final del capítulo. (Para recordar cómo se pueden contar las líneas de código, recurre a la asignatura Métricas de desarrollo de software).
Proporción de defectos (RATIO) Proporciona mayor calidad a detalle en las revisiones de diseño y de código, esto se mide en número de defectos encontrados en revisión de diseño contra número de defectos encontrados en pruebas unitarias. La proporción para considerar un producto de calidad deberá ser mayor a 2.0.
Proporción de tiempos de desarrollo. 25% del tiempo de requerimientos debe designarse a la inspección de requerimientos. 50% del tiempo de diseño de alto nivel debe designarse a las inspecciones y revisiones. 100% del tiempo de diseño detallado debe asignarse a ser las inspecciones y revisiones.
A/FR (appraisal to failure ratio) Esta parte se refiere a la revisión y pruebas del sistema la medida para que se considere un producto de calidad seria de 2.0 para programas pequeños y 1.0 en programas grandes.
Ciencias Exactas, Ingeniería y Tecnología | Desarrollo de Software
21
Desarrollo de Software en Equipo TSP Unidad 2. Implementación de TSP
Porcentaje de revisión e inspección En requerimientos debe ser <2.0 páginas de texto a espacio simple por hora. En diseño de alto nivel <5.0 páginas de diseño por hora. Diseño detallado la revisión debe ser <100 líneas de pseudo código por hora. En código debe ser <200 líneas de código por hora.
Porcentaje de inyección de defectos ( yield ) De acuerdo a experiencias basadas en PSP la inyección de defectos debe ser de 2 defectos por hora en diseño detallado y de 6 defectos inyectados por hora en codificación.
Porcentaje de eliminación de defectos Tomando en cuenta el punto el porcentaje de inyección de defectos, se obtienen los siguientes datos: En revisión de código de 0 a 20 defectos por hora serán 6 defectos por hora para el 61.5% de los miembros del equipo de desarrollo. (Para recordar sobre la forma de documentar esta revisión, consulta la asignatura Métricas de desarrollo de software ). En revisión de diseño será de 2 o más defectos por hora para el 57.9% de los miembros de equipo de diseño.
Rendimiento yield de fase Para entender este punto se expone un ejemplo: Se tienen 19 defectos en un programa a la entrada de la revisión de código, se inyectó un defecto durante la revisión de código, se encontraron 15 defectos durante la revisión. 1. Inyección del defecto. 2. Se detectaron 15 defectos en la revisión. Contando con estos datos, para obtener el rendimiento yield se aplica la siguiente fórmula: Yield = 100* (defectos encontrados)/ (defectos en el producto) = 100* 15/(19+1) = 75% Se sabe que el yield sólo se puede calcular cuando se ha terminado el programa y se sabe la cantidad total de defectos.
Ciencias Exactas, Ingeniería y Tecnología | Desarrollo de Software
22
Desarrollo de Software en Equipo TSP Unidad 2. Implementación de TSP
Rendimiento yield de proceso Estos yields son el porcentaje de defectos removidos antes de cada fase se puede decir que antes de entrar a la fase de pruebas de sistema se debe de tener el 99% de defectos removidos.
Ejemplo de plan de calidad. En el siguiente ejemplo se observará la forma en que se puede realizar un plan de calidad (Cano, 2009): En primer lugar se responde al cuestionamiento siguiente:
1. ¿Qué tipo de defectos se introdujeron durante el diseño y la codificación? En la fase de diseño los defectos más frecuentemente introducidos fueron los de tipo 70 y 80 pues ambos ocurrieron con una frecuencia de 4 y con un porcentaje de 33.3% como se muestra en la tabla” Defectos introducidos en las fases de diseño y codificación” . Así mismo los defectos de tipo 20 fueron los que tuvieron la mayor ocurrencia en la fase de codificación con una ocurrencia de 30 y un porcentaje de 52.6% como se puede observar en la siguiente tabla llamada “Defectos introducidos en las fases de diseño y codificación” .
Tipo 10 20 30 40 50 60 70 80 90 100 Total
Número inyectado
Porcentaje inyectado
Diseño 0 2 0 1 1 0 4 4 0 0 12
Diseño 0,0% 16,7% 0,0% 8,3% 8,3% 0,0% 33,3% 33,3% 0,0% 0,0%
código 1 30 3 2 2 0 9 6 4 0 57
Código 1,8% 52,6% 5,3% 3,5% 3,5% 0,0% 15,8% 10,5% 7,0% 0,0%
Defectos introducidos en las fases de diseño y codificación (Cano, 2009):
El número de defectos introducidos en la fase de diseño fueron doce, como se indica en la tabla anterior, esto es un número aceptable de errores de diseño pues son los más costosos en tiempo tanto para encontrarlos como para corregirlos.
Ciencias Exactas, Ingeniería y Tecnología | Desarrollo de Software
23
Desarrollo de Software en Equipo TSP Unidad 2. Implementación de TSP
A diferencia de la fase de codificación los defectos de tipo 20 no figuraron entre los defectos más comunes, como se muestra en la siguiente tabla llamada “Defectos menos introducidos en la fase de diseño” .
Defectos menos introducidos en la fase de diseño Tipo Número Porcentaje inyectado inyectado 10 20 30 40 50 60 90 100
0 0,0% 2 16,7% 0 0,0% 1 8,3% 1 8,3% 0 0,0% 0 0,0% 0 0,0% Defectos menos introducidos en la fase de diseño
Para la fase de codificación el número de errores es mucho mayor en comparación de la fase de Diseño y los errores más comunes fueron los de tipo 20 con 30 ocurrencias y un porcentaje de 52.6%. Es necesario hacer una clasificación de errores más comunes tanto en la fase de diseño como en la de codificación y vale la pena tener una clasificación de estos pues ocurrieron por distintos motivos.
Tipo 71 72 Total
Clasificación de defectos de tipo 70 en diseño Clasificación del defecto Números de defectos introducidos Mal cálculo de la función Error de parámetros
2 2 4
Clasificación de los errores tipo 70 introducidos en la fase de diseño
Tipo 81 82 Total
Clasificación de defectos tipo 80 en diseño Clasificación del defecto Número de defectos introducidos Mal funcionamiento 3 Recodificación 1 4
Clasificación de los errores tipo 80 introducidos en la fase de diseño Tipo 21
Clasificación del defecto tipo 20 en codificación Clasificación del defecto Número de defectos introducidos Error de dedo
18
Ciencias Exactas, Ingeniería y Tecnología | Desarrollo de Software
24
Desarrollo de Software en Equipo TSP Unidad 2. Implementación de TSP
22 23 24 Total
Inicialización de variables Tipo de dato incompatible Error de parámetros
5 6 1 30
Clasificación de los errores tipo 20 introducidos en la fase de codificación 2. ¿Qué tendencias son evidentes en defectos/KLOC encontradas en las revisiones, en la compilación y en las pruebas? Las revisiones permiten mitigar un gran número de defectos y así los programas llegaron a las fases posteriores con revisiones y con menos errores.
Gráficas de defectos eliminados durante las revisiones de diseño y codificación. En la gráfica anterior se muestra la tendencia a dejar pasar cada vez menos defectos a las fases posteriores y esto ocasionó que los programas se hicieran con mayor calidad. En las fases de compilación y pruebas se observaron cada vez menos errores como una situación favorable que aportó la intervención de las revisiones de diseño y codificación que fueron las que más errores captaron.
Ciencias Exactas, Ingeniería y Tecnología | Desarrollo de Software
25
Desarrollo de Software en Equipo TSP Unidad 2. Implementación de TSP
Gráficos de defectos eliminados en las fases de compilación y pruebas.
3. ¿Qué tendencias son evidentes en el total de defectos/KLOC? El número de errores en la primera mitad del curso fue muy elevado como se observa en la gráfica anterior, pero cuando se introdujeron las revisiones de diseño y código el número de errores bajó considerablemente, la tendencia que se advierte, es que, si se integraran revisiones personales adicionales ( check list ) que permitan tener un menor número de defectos, se obtendría una mayor calidad en los programas.
Gráfica del total de defectos por programa y por KLOC.
Ciencias Exactas, Ingeniería y Tecnología | Desarrollo de Software
26
Desarrollo de Software en Equipo TSP Unidad 2. Implementación de TSP
4. ¿Cómo se comparan sus tasas de defectos removidos (en defectos eliminados/KLOC) con la revisión de diseño, la revisión de código, la compilación y las pruebas? En la primera mitad del curso todos los errores eran captados por las fases de compilación y pruebas, pero en la segunda mitad del curso ya introducidas las revisiones de diseño y código fueron reduciendo el número de errores que llegaban a compilación y pruebas, esto se nota claramente en la tabla “Tasa de defectos eliminados en las fases de revisión de diseño, revisión de código, codificación y pruebas” , si se hubieran metido estas revisiones desde un inicio las revisiones de diseño y código tendrían la mayor tasa de defectos eliminados. Fase
Número de defectos Tasa de defectos eliminados eliminados (%) DLDR 5 7.0% CR 11 15.5% COMPILE 31 43.7% TEST 24 33.8% TOTAL 71 100.0 Tasa de defectos eliminados en las fases de revisión de diseño, revisión de código, codificación y pruebas.
5. ¿Cuáles son sus influencias de defectos removidos por revisión de diseño, revisión de código y compilación contra pruebas unitarias? Las Pruebas Unitarias se realizan después de las revisiones de diseño y código y de la fase de compilación, por lo tanto el número de defectos encontrados y eliminados en esta fase es mucho menor que en las fases anteriores a esta, esto debido a que las revisiones de diseño y código y la compilación ya eliminaron la mayor parte de los errores.
6. ¿Cuáles son sus tasas de revisión (en LOC revisadas/hora) para revisiones de diseño y de código? En la siguiente figura llamada “LOCS revisadas por hora en revisiones de diseño de código” se muestra la tendencia a ir aumentando el número de LOC`s revisadas por hora tanto en la revisión de diseño como en la de código.
Ciencias Exactas, Ingeniería y Tecnología | Desarrollo de Software
27
Desarrollo de Software en Equipo TSP Unidad 2. Implementación de TSP
LOCS revisadas por hora en revisiones de diseño de código. En la siguiente tabla se muestra numéricamente las tasas de revisión para diseño y código. En las revisiones por separado la tasa está en un promedio de 261 LOC`s revisadas por hora para diseño y para código 267 LOC’s por hora, pero tomándolas juntas se cuenta con una revisión promedio de 130 LOC`s revisadas por hora.
Programa
Tasa de revisión de Tasa de revisión de Tasa para ambas diseño (LOC código (LOC revisiones (LOC revisadas/hora) revisadas/hora) revisadas/hora) 7 231.4 237.1 115.7 8 246 246 117.1 9 230 235.9 115.3 10 335.4 346.8 170.5 Tasa de revisión (en LOC revisadas por/hora para revisiones de diseño y código).
8. ¿Hay una relación entre el
Yield y
el A/FR para los programas del 7 al 10?
La relación que hay entre el Yield y el A/FR de las tareas en la segunda parte del curso estuvieron muy relacionadas pues se refiere a la gráfica siguiente se puede observar que cuando el AF/R aumentaba también lo hacia el Yield y viceversa.
Ciencias Exactas, Ingeniería y Tecnología | Desarrollo de Software
28
Desarrollo de Software en Equipo TSP Unidad 2. Implementación de TSP
Gráficas de yield y AF/R de las tareas 7A a la 10A En la gráfica anterior se observa que el y ield siempre crece a excepción de la tarea 9, el promedio del yield para la segunda mitad del curso fue de 76.785%, esto indica que una gran parte de los defectos se fueron eliminando antes de llegar a la fase de desarrollo. El AF/R en la gráfica representa una tendencia creciente, eso significa que como los valores de A/FR siempre fueron mayores a 1, el tiempo dedicado a las revisiones tanto de diseño como de código fue superior a los tiempos de compilación y pruebas.
9. ¿Cómo se puede hacer el proceso más efectivo y eficiente? Realizar pruebas de escritorio después de la fase de revisión de diseño para eliminar los errores de pruebas que se pudieran introducir. El tiempo en el diseño aumentaría, pero eso beneficiaría al tiempo de pruebas y calidad del programa.
10. Basados en los datos históricos ¿Cuáles son los objetivos de calidad? a) Obtener una tasa de defectos menor a 20 defectos/KLOC. b) Reducir el número de los errores más comunes. c) Alcanzar un yield promedio del 85%.
11. ¿Cómo se puede cambiar el proceso para llegar a esos objetivos? Para mejorar la tasa de defectos, en estos momentos es de 29 defectos/KLOC, es necesario dedicar más tiempo a entender los requerimientos del programa pues es lo que ha dado como resultado el tener defectos muy difíciles de resolver. Para reducir el número de defectos comunes es necesario agregar validaciones al checklist y dedicar más tiempo cuando se aplique, pues por aplicarlo rápido no se eliminaron defectos detectables. El yield actual es de 76.785%, para alcanzar un yield de 85% es necesario que se use con más eficiencia el estándar de diseño, parte de esto es incluir documentación entre el código para Ciencias Exactas, Ingeniería y Tecnología | Desarrollo de Software
29
Desarrollo de Software en Equipo TSP Unidad 2. Implementación de TSP
que pueda interpretarse fácilmente. Para lograr los objetivos es necesario integrar nuevos checklist que permitan reducir errores y tiempos al solucionar los que se identifiquen.
2.2.3. Elaborar plan de riesgos En este tema se explicará lo correspondiente a los riesgos que se presentan en un proyecto de software y de qué manera se deben tratar los problemas que pueden ocasionar para lo cual debe se debe generar y examinar un plan de riesgos que ayudará al equipo a definir y evaluar los riesgos del proyecto. Entenderás la importancia que tiene gestionar los riesgos, y las actividades que se deben realizar en plan de riesgos. Primeramente se explicará qué se entiende como riesgo, u n riesgo “es una medida de la probabilidad y gravedad de los efectos adversos” (Lawrence, 1976). Un riesgo es algo que puede o no llegar a suceder. Cuando se está seguro de que un evento se llegará a producir esto no es un riesgo ya que se sabe que ese evento se va a presentar en algún momento por lo cual se dice que es un evento de certidumbre (Humphrey, 2006). El surgimiento de los riesgos tiene relación con la incertidumbre que rodea a las decisiones y los resultados del proyecto. Cuando se presenta la incertidumbre en la toma de decisiones se está presentando un elemento de riesgo que puede llevar al no cumplimiento de los requerimientos del cliente. La incertidumbre acarrea complicaciones a la planeación y ejecución del proyecto, lamentablemente esto es una realidad que es inevitable, es por eso que el uso de una adecuada toma de decisiones requiere que siempre se considere la incertidumbre y que de tal manera se evalúen los posibles impactos que llegue a tener. Un plan de riesgos es una serie de métodos para poder complementar la toma de decisiones bajo un ambiente de incertidumbre que se da a través de la identificación, análisis, respuesta y seguimiento de las situaciones de incertidumbre, las cuales puede llegar a afectar o cambiar lo planeado. Es de gran importancia generar un plan de riesgo ya que si se prevén los riesgos y se toman las decisiones apropiadas con anticipación, existe una alta posibilidad para poder evitar los riesgos y problemas en el proyecto. Otro aspecto importante es el costo de la recuperación de un riesgo en la mayoría de los casos en que este se presente es más alto de lo que hubiera costado aplicar las medidas para evitar los riesgos. Es por esta razón que la prevención de los riesgos y la toma de decisiones acertada para poder evitarlos, brindará el ahorro de tiempo y esfuerzo.
Ciencias Exactas, Ingeniería y Tecnología | Desarrollo de Software
30
Desarrollo de Software en Equipo TSP Unidad 2. Implementación de TSP
Finalmente otro aspecto importante que se toma en cuenta para realizar la planeación de los riesgos es que en la mayoría de los casos los problemas que llegaran a presentarse se pueden conocer con suficiente anticipación. Dentro del plan de riesgo TSP contempla cinco directrices básicas (Humphrey, 2006): 1. 2. 3. 4. 5.
Aprender de los errores del pasado. Todos los equipos deben gestionar los riesgos. Empoderar a los miembros del equipo para gestionar los riesgos. Cada riesgo se debe asignar un propietario. Revisar periódicamente los riesgos.
Aprender de los errores del pasado: Una gran mayoría de los riesgos son conocidos, por lo cual son pocos los errores nuevos que se llegan a presentar, al conocer los problemas más comunes que se presentaron en los proyectos pasados los equipos pueden determinar los problemas más comunes que se pueden presentar para los futuros proyectos.
Todos los equipos deben gestionar los riesgos: Esto se refiere a que todos los participantes que trabajan en el proyecto son los que están más al tanto de los riesgos que se pueden presentar es por esta razón que los equipos de trabajo pueden anticipar de una manera más fácil los problemas y de igual manera solucionarlos cuando aún se puedan prevenir.
Empoderar a los miembros del equipo para gestionar los riesgos: Quiere decir que los participantes que están directamente relacionados con el plan de riesgos deben de ser tratados como si fueran parte de la gestión del sistema esto ayudará a tener una mejor cooperación y participación de ellos. Empoderar a los miembros del equipo es darles cierta responsabilidad para que tomen las decisiones adecuadas para poder dale seguimiento y solución a un riesgo pero estos solamente se harán a personas que estén involucradas en el desarrollo del proyecto.
A cada riesgo significativo se debe asignar un propietario: Cuando se identifica un riesgo significativo este tiene que asignarse a un responsable con esto se logrará que la cobertura del riesgo sea la más adecuada y que al darle seguimiento se tomen las medidas necesarias para mitigar y corregir el riesgo para evitar futuros problemas. A manera de ejemplo si se encontró un riesgo relacionado con el entorno de desarrollo y programación el responsable de darle seguimiento será el Programador.
Revisar periódicamente los riesgos: Esto se debe de llevar acabo después de que el equipo identificó los riesgos de más importancia para así darles el seguimiento adecuado y asignar al responsable que se encargara de hacer una revisión periódica junto con el equipo esto dependerá de la importancia del riesgo y sus consecuencias. Para la administración de los riesgos se deben realizar las siguientes acciones:
Ciencias Exactas, Ingeniería y Tecnología | Desarrollo de Software
31
Desarrollo de Software en Equipo TSP Unidad 2. Implementación de TSP
1. 2. 3. 4. 5.
Identificar los riesgos Analizar los riesgos Elaborar planes de contingencia Controlar el estado de los riesgos Analizar los resultados y aprender de ellos.
Identificar los riesgos. En la identificación de los riesgos se recuperan todas las inquietudes y preocupaciones que estén ligadas con la elaboración del proyecto, para esto cada miembro del equipo hacen aportaciones haciendo mención de los riegos que ellos consideran que se puedan presentar en el desarrollo del proyecto. Para poder identificar los riesgos lo miembros del equipo traban en conjunto mediante reuniones en las culés se genera una lluvia de ideas de cada participante que expondrá los posibles riegos que considere puedan presentarse durante el desarrollo del proyecto. A continuación se muestra un ejemplo de una tabla de identificación de riesgos de un sistema en web en el cual se evalúan los riesgos en cuanto a la seguridad.
Tabla de Identificación de Riesgos. (Romero, 2013) ID
Tipo Interno Externo
R18MS
X
R19MS
X
R20MS
X
Seguridad Descripción del Riesgo
Posibles Consecuencias
Ataques contra contraseñas de Usuarios. Des encriptación de información
Pérdida de acceso a Información. Copia de datos
Vulnerabilidad del antivirus
Inestabilidad en el servicio.
R21MS
X
Vulnerabilidad en los puertos
Pérdida de servicios
R22MS
X
Pérdida de consistencia.
R23MS
X
Ataques de SQL a la base de Datos. Vulnerabilidad en el Firewalls
R24MS
X
Vulnerabilidad en el servidor
R25MS
X
Robo de conexión WI-FI
R26MS
X
R27MS
X
Vulnerabilidad de certificados digitales Vulnerabilidad del acache ARP
Contaminación por virus informáticos. Robo de información, Pérdida de calidad en el servidor. Pérdida de datos. Retraso de servicios.
En la tabla anterior de construye con una serie de elementos que a continuación se describen:
Ciencias Exactas, Ingeniería y Tecnología | Desarrollo de Software
32
Desarrollo de Software en Equipo TSP Unidad 2. Implementación de TSP
ID: El ID este se utiliza para darle una clave con la cual se identificará el riego en las siguientes tablas para su control y seguimiento. Tipo: Este debe de ser evaluado y clasificado por los involucrados en el desarrollo del proyecto, este pude ser interno o externo dependiendo el área de afectación que pueda provocar el riesgo. Ejemplo: si es un riego se presenta en los estándares, financiamiento, gestión del alcance, integración del equipo etc., entonces se dice que es un riesgo de tipo interno, pero si se presenta en cuanto a los clientes, proveedores, mercado etc., es un riesgo de tipo externo. Descripción del riego: Se explica a detalle las características del riesgo. Posibles consecuencias: Se describe la forma negativa en que pude llegar a afectar el riesgo al proyecto.
Analizar los riesgos. Cuando se tienen identificados los riesgos se debe de realizar un análisis cualitativo de los riesgos en cual se deben de priorizar los riegos más significativos, esto en base a lo siguiente:
Probabilidad: Se refiere a la probabilidad de que se presente el riesgo esta puede ser 1 a 100 porcentual que es el grado de probabilidad de que ocurra.
Impacto: El efecto que tendrá el riesgo si se llegara a presentar, que de igual manera se clasifica de 1 a 100 porcentual.
Para poder clasificar los eventos y la magnitud se utiliza la escala de 1 a 100 porcentual, pero para poder realizar el cálculo se utiliza 0.10 contemplando cuando el riesgo es de bajo impacto y 1.0 cuando es de mayor impacto teniendo en cuenta que, por ejemplo, si el valor en escala porcentual es de 90% este será 0.90 para poder realizar la operación. La magnitud se obtiene del resultado de la multiplicación de la probabilidad y del impacto que tendrá el riesgo en el proyecto. Ejemplo: 0.50 x 0.90 =0.45 Finalmente para poder representar el resultado obtenido se utiliza una matriz cualitativa del riesgo que contiene la probabilidad y la magnitud del impacto, misma que se observarás a continuación.
Matriz cualitativa de riesgo.
Probabilidad
0.10
Impacto 0.35 0.50 0.80
Escala de prioridad de eventos de riesgo 1.00 Riesgo bajo
Ciencias Exactas, Ingeniería y Tecnología | Desarrollo de Software
Riesgo medio Riesgo alto
33
Desarrollo de Software en Equipo TSP Unidad 2. Implementación de TSP
0.90 0.70 0.50 0.30 0.10
0.09 0.07 0.05 0.03 0.0.1
0.32 0.25 0.18 0.11 0.04
0.45 0.35 0.25 0.15 0.05
0.72 0.56 0.40 0.24 0.08
0.90 0.70 0.50 0.30 0.10
En la siguiente tabla se muestra un ejemplo de análisis de riesgo.
ID
Tabla de análisis del riesgo y estrategias Análisis del riesgo
18MS
Magnitud: Alta
Descripción Las cuentas de usuarios pertenecientes a un sistema Microsoft Windows están guardados en pares de datos, es decir, datos que hacen referencia a sus respectivas contraseñas.
Impacto En la seguridad ya que otras personas podrían adquirir los privilegios de administrador y cambiar ciertas funciones.
Estrategia para tratar el riesgo: Establecer métodos Sokerberos.
de
autentificación
como:
NTL
Elaborar Planes de Contingencia. Se entiende por plan de contingencia al conjunto de procedimientos alternativos a la operativa normal de cada empresa, cuya finalidad es la de permitir el funcionamiento de ésta, aun cuando alguna de sus funciones deje de hacerlo por culpa de algún incidente tanto interno como ajeno a la organización (Castillo, 2013). Se elabora con la finalidad de disminuir significativamente la ocurrencia de los riesgos, el cual contiene recomendaciones para reducir las amenazas e incrementar las oportunidades dentro de los objetivos del proyecto.
Controlar el estado de los riesgos. Dentro del control de los riesgos se implementan los planes de respuesta de los riesgos que se identificaron.
Ciencias Exactas, Ingeniería y Tecnología | Desarrollo de Software
34
Desarrollo de Software en Equipo TSP Unidad 2. Implementación de TSP
Analizar los resultados y aprender de ellos . Los resultados de las observaciones en proyecto pasados sirven para poder aprender de estos y así estimar y prever la presencia de los riesgos. Para llevar un análisis y gestión de los riegos se debe generar una matriz de riegos la cual se aplicara en las reuniones con los participantes en el desarrollo del proyecto para poder darle el seguimiento necesario. La utilización de un plan de riesgos es muy importante ya que ayuda al equipo identificar los riesgos potenciales dentro del proyecto, en la mayoría de los casos muchos de los riesgos pueden ser evitados lo que permitirá reducir problemas en el proyecto.
Actividad 2. Plan del proyecto En esta actividad generarás el plan del proyecto con base en un problema planteado por tu Facilitador (a). Realiza los siguientes pasos: 1. Identifica en el problema planteado por el Facilitador (a) los elementos del plan del proyecto.
2. Elabora el plan del proyecto y el análisis de riesgos. 3. Redacta tus conclusiones acerca de los elementos que integran el plan del proyecto e identifica cuáles son los riesgos que podrían afectar el desarrollo. 4. Guarda la actividad con el nombre DDSE_U2_A2_XXYZ. Sustituye las XX por las dos primeras letras de tu primer nombre, la Y por tu primer apellido y la Z por tu segundo apellido. 5. Envía tu actividad al facilitador mediante la herramienta Tareas.
*No olvides consultar el documento Criterios de evaluación para las actividades de la unidad 2 donde podrás conocer los parámetros de evaluación de esta actividad.
Autoevaluación
Ciencias Exactas, Ingeniería y Tecnología | Desarrollo de Software
35
Desarrollo de Software en Equipo TSP Unidad 2. Implementación de TSP
El propósito de esta actividad es realizar un análisis del avance que has tenido para detectar las áreas de oportunidad respecto al estudio de la primera unidad. Para realizar la Autoevaluación, ingresa al listado de actividades en el aula.
Evidencia de aprendizaje. Generación del plan de calidad y de riesgos Como evidencia de aprendizaje realizarás un plan de calidad con las métricas del proyecto global y el plan de riesgos identificando los elementos que puedan afectar a un proyecto. Para ello, tu Facilitador(a) te enviará un problema ejemplo previamente. Tras recibirlo: 1. Identifica los elementos del plan de calidad y del plan de riesgos en el ejemplo de proyecto de desarrollo de software. 2. Indica cuáles elementos corresponden a un plan de calidad y cuáles de ellos corresponden a un plan de riesgos y cómo se relacionan. 3. Argumenta la explicación de cada uno de los elementos identificados en el problema. 4. Guarda la actividad con el nombre DDSE_U2_EA_XXYZ. Sustituye las XX por las dos primeras letras de tu primer nombre, la Y por tu primer apellido y la Z por tu segundo apellido. 5. Envía tu actividad al facilitador mediante el Portafolio de evidencias.
*No olvides consultar el documento Criterios de evaluación para las actividades de la unidad 2 donde podrás conocer los parámetros de evaluación de esta actividad. Nota: para integrar los datos correspondientes a algunos de los elementos del plan de calidad y de riesgos, recurre a los contenidos de la Unidad 2.
Cierre de la unidad
Ciencias Exactas, Ingeniería y Tecnología | Desarrollo de Software
36
Desarrollo de Software en Equipo TSP Unidad 2. Implementación de TSP
Dentro del TSP para poder formar los equipos de trabajo es primordial tener cuenta que para formar un equipo de trabajo deben existir habilidades, actitud y aptitud por parte de los integrantes del esquipo así como tener la capacidad para realizar las actividades que van a desempeñar dentro del proyecto estando siempre comprometidos con los objetivos planeados del proyecto bajo una estricta disciplina de trabajo. Para poder ejecutar el trabajo en los miembros del equipo deben de tener claro el rol que desempeñarán en el proyecto así como las tareas que realizarán, y que estén relacionadas con el rol que le fue asignado. El líder de proyecto tiene la responsabilidad de motivar a los miembros del equipo para que puedan desempeñar sus tareas de una manera adecuada. La importancia de genera un plan de proyecto es fundamental para poder determinar lo que se va a hacer y hasta dónde se quiere llegar, así como llevar un control de las actividades que se realizarán para asegurar el cumplimiento de cada una de ellas para poder llegar a la culminación del proyecto. De igual manera la planeación de calidad dará la evitará retrasos en el proyecto por la presencia de errores de codificación, por lo que se garantizará la calidad del proyecto. Otra actividad que es de suma importancia es la generación del plan de riesgos, este evitará y mitigará los posibles riesgos que se pueden presentar a lo largo del desarrollo del proyecto y que puedan llevar al no cumplimiento de los objetivos planteados.
Para saber más En esta página encontrarás información diversa acerca de las herramientas de medición de la calidad del desarrollo de software, entre ellas TSP, así como diversos artículos y documentos acerca de esta metodología. Software Engineering Institute Carnegie Mellon (2013). Pittsburgh: https://www.sei.cmu.edu/library/abstracts/books/201731134.cfm Fecha de consulta: 11 de junio del 2013
Fuentes de consulta
Castillo, C. Q. (2013). Proyecto plan de contingencia. [En línea]: http://es.scribd.com/doc/33729961/Proyecto-4-Plan-de-Contingencia Colomo Palacios, Ricardo, Paniagua M., et al. (2011). Team Software Process. Madrid, España: Universidad Carlos III de Madrid. Recuperado de:
Ciencias Exactas, Ingeniería y Tecnología | Desarrollo de Software
37