Proceso de TSP
Proceso de TSP
Proceso de TSP
Para cumplir los objetivos que plantea TSP, se necesita que cada miembro del equipo entienda las
virtudes y carencias de los otros miembros, que los apoye y que est dispuesto a pedir ayuda
cuando se requiera. Trabajar en equipo no es una habilidad que se adquiere al nacer, se adquiere
a travs de la prctica y se mejora da a da con la experiencia (2). Normalmente, los ingenieros de
software desarrollan productos a partir de sus propios mtodos y tcnicas, o a partir de ejemplos
obtenidos de las mejores prcticas.
Al equipo de trabajo en este proyecto, PSP y TSP permiti controlar individualmente y en grupo el
desempeo en el desarrollo del presente proyecto de tesis. Un equipo de trabajo que utiliza TSP
est conformado por 5 personas, las mismas que durante todos los ciclos del proyecto asumen los
siguientes roles: 1)Lder de Equipo, 2)Administrador de Calidad, 3)Administrador de Desarrollo,
4)Administrador de Planificacin y 5) Administrador de Configuracin. Este artculo se enfoca en
los 3 ltimos roles.
El propsito de esta investigacin fue obtener y validar esta disciplina de desarrollo propuesta por
el SEI, utilizando estndares, recolectando y analizando mtricas que ayuden en la mejora de los
procesos para demostrar as la aplicabilidad del
investigacin se enfoc en obtener un producto de software que cumpliera con los procedimientos
establecidos por TSP, tomando en consideracin los requerimientos de una empresa para
automatizar sus procesos del negocio. El producto desarrollado fue un Sistema Integrado de
Control de Costos de Produccin, rdenes de Trabajos, Presupuestos por Obra, Bodega y Control
de Inventario, que apoye a la toma de decisiones de los directivos y funcionarios de la empresa,
quienes permitieron realizar esta investigacin.
Este artculo se enfoc principalmente en tres roles en los cuales se describen los objetivos y
responsabilidades de cada uno de ellos (ver Tabla 1).
Roles
Administrador
de
Desarrollo
Objetivo
Responsabilidades
Conducir
equipo
en
al
Dirigir
el
equipo
en
la
la
definicin,
diseo,
proyecto.
desarrollo
pruebas
del
producto.
al
equipo
generacin
en
de
documentacin
la
la
tcnica
del
mantener
el
proyecto.
Administrador
de
Planificacin
Apoyar y guiar a
Desarrollar
los
programa
integrantes
de
trabajo
del equipo en la
actualizado.
planificacin
seguimiento
de
su trabajo.
actividades programadas.
Controlar el registro de horas
individuales.
Comparar
el progreso del
Colaborar con el
Controlar
equipo
en
la
determinacin,
obtencin
mantenimiento
que
Definir
herramientas
de
desarrollo y de control de
las
herramientas
necesarias
cambios
configuracin.
y
de
los
versiones.
Mantener el inters del equipo
para
Evaluar
necesidades
cambios.
administrativas y
Mantener
aplicar
administracin de riesgos.
la
tecnologa
definida.
Tabla No. 1
las
el
solicitudes
de
sistema
de
Para la asignacin de roles, se tom en cuenta las caractersticas ms relevantes de cada miembro
del equipo, como son: tener conocimiento de los mtodos de diseo, tener gusto por construir
cosas, no ser resistente al cambio, seguir un esquema de trabajo definido, tener conocimiento
sobre las herramientas y sistema de apoyo.
La Tabla No.2 presenta las plantillas, y estndares aplicados por cada administrador.
ROL
Administrador de desarrollo
Administrador de planificacin
Administrador de configuracin
PLANTILLA
Registro Soporte de Desarrollo
Registro Longitud de Cdigo
Task (Registro de Tareas)
CCR (Registro de Solicitud de
cambio)
Tabla No. 2
ESTANDARES Y PLANES DE
APOYO
Estndar de Programacin
Planificacin del trabajo
Plan de Gestin de configuracin
El propsito de registrar la longitud de cdigo en el proyecto fue saber el tamao de los mdulos
que se iban generando. Los elementos que se tomaron en consideracin para registrar la longitud,
fueron las clases, mdulos y procedimientos almacenados de la base de datos. Al igual que el
registro de longitud de cdigo, tambin se registr el nmero de requerimientos de soporte a los
miembros del equipo, el cual ayud a identificar los errores ms frecuentes que se presentaron a
medida que se desarrollaba el proyecto.
La plantilla Task tiene el propsito de estimar el tiempo de desarrollo para cada tarea del
proyecto. En esta plantilla se toma en consideracin los siguientes aspectos: el responsable del
equipo de trabajo, fecha de registro de las tareas con su respectiva distribucin del personal, la
planificacin en horas estimadas y el tamao real. En el presente caso, la plantilla Task fue
utilizada por cada incremento.
Con la plantilla CCR se registraron todas las solicitudes de cambios, los cuales fueron sometidos
a una evaluacin para determinar su impacto. Todos estos procesos estn contemplados en el
plan de gestin de configuracin.
Metodologa de Desarrollo
El modelo de desarrollo incremental fue utilizado para desarrollar el producto de software. Este
modelo es iterativo, ya que para obtener el producto final se deben implementar e integrar cada
uno de los incrementos (4). En un proceso de desarrollo incremental, se identifican todos los
servicios de acuerdo a su importancia. Posteriormente, se definen varios incrementos, en donde
cada uno proporciona un subconjunto de funcionalidad del sistema. La asignacin de servicios a
los incrementos depende de la prioridad del servicio. Los servicios de prioridad ms alta son los
que se entregan primero al cliente (4). Cada incremento consta de cuatro fases: anlisis, diseo,
implementacin, y pruebas. Posteriormente, en este artculo mostraremos las etapas por cada
incremento.
En esta investigacin, se comprob que los servicios que sufrieron ms pruebas fueron los
primeros, es decir los de mayor prioridad. Adems, del primer incremento obtuvimos experiencia
para poder desarrollar los siguientes.
Etapas del Proyecto
El proyecto fue dividido en tres etapas bsicas para cada incremento: definicin, desarrollo y
produccin (5), tal como se muestra en la figura 1.
Figura No. 1
Divisiones de las etapas bsicas del proyecto
La fase a la que el equipo de desarrollo le dedic mas tiempo fue la de requerimientos. Algunas de
las razones se listan a continuacin:
No hubo una definicin formal de los requerimientos al inicio del proceso de desarrollo.
No se defini un alcance de los mdulos del sistema.
Otra de las fases que requiri mayor tiempo fue la de pruebas, debido a la magnitud de unidades a
probar y verificar. Tambin, se tomaron en cuenta las pruebas de regresin en los mdulos que
sufrieron cambios.
MNO
Mdulo de Nmina.
MOC
Mdulo de Compras.
MOT
MCP
Las mtricas nos proveen de mediciones para poder analizar el desempeo de los procesos
ejecutados por el equipo de trabajo.
RESPONSABLE
MTRICA
DESCRIPCION
Total
tipo de fuente
categorizado
y por
incremento.
de
cdigo
JUSTIFICACION
fuente
desarrollado
en un incremento.
complejidad
Administrador de
Desarrollo
los
de
de
Total
soporte
los
etapas de diseo.
ayuda
identificacin
la
de
los
principales problemas y en
definir
acciones
que
Componentes reutilizados
en
los
diferentes
incrementos.
elementos
Nos
ayuda
en
la
identificacin
de
componentes
reutilizables
equipo
seguimiento
por
tomando en consideracin
proyecto.
cada incremento.
de horas
Horas trabajadas.
Nmero de cambios de
Total
requerimientos
registrados en el desarrollo
de
trabajadas
incremento.
Planificacin
Comparativo
Administrador de
de
Administrador de
Cantidad
por
mdulo.
Configuracin
de
cambios
de cada mdulo.
Nos
ayuda
sobre
el
a verificar la
obtuvieron
en
el
dedicados
cambios.
cambios
realizar
entre
diferentes
efecto en el desarrollo de
incrementos.
software.
Nmero de versiones de
elementos
de
configuracin.
de configuracin.
punto
de
vista
de
versiones.
Tabla No. 3
Mtricas utilizadas en el desarrollo del software
Longitud de cdigo.- A travs del total de lneas de cdigo (LOC) se puede determinar si un
sistema es complejo o no. A mayor nmero de lneas de cdigo ms complejo es el sistema (10).
En la Tabla No. 4, se presentan las lneas de cdigo para cada mdulo. El clculo de LOCs
incluye procedimientos, funciones, variables, clases, formularios, comentarios. Como se puede
apreciar, los mdulos ms extensos fueron los de Inventario y Nmina. Coincidentemente, stos
son los que presentaron mayor dificultad durante el desarrollo del sistema debido a la
particularidad del negocio.
TIPO DE FUENTE
MCIB MCP
MOT
MPO
MNO
Clases
2806
774
1790
1688
1633
981
877
10549
Mdulos
273
273
273
273
273
273
273
1911
Pantallas
28800 3970
9795
12470
7215
5378
3900
71528
Stored procedures
6156
1465
1630
5828
1176
1311
18527
TOTAL GENERAL
7808
6361
102515
961
MFAC MOC
TOTAL GENERAL
Tabla No. 4
Locs por Mdulos Desarrollados
Nuestro equipo de trabajo foment la reutilizacin de cdigo fuente durante el desarrollo de los
mdulos, esto permiti disminuir proporcionalmente los tiempos de programacin. Los mdulos en
donde hubo mayor porcentaje de reutilizacin de cdigo fuente fueron en los mdulos de inventario
y presupuesto por obra como se muestra a continuacin:
MDULO
LOC
MCIB
255590
MCP
45033
MOT
89613
MPO
129747
MNO
73190
MOC
33258
MFAC
40850
667281
Tabla No. 5
Locs Reutilizados por Mdulo
Las clases, stored procedures, funciones y procedimientos fueron los elementos que se tomaron
en consideracin para identificar los componentes reutilizables.
Nmero de horas trabajadas.- La Tabla No. 6 muestra el nmero de horas trabajadas versus las
planificadas, pudindose apreciar una notable mejora en la estimacin de horas. Los datos de
esta mtrica se recopilaron en la etapa de desarrollo usando las plantillas Task, Logt y el plan del
equipo. El tiempo de duracin del proyecto de tesis fue de 52 semanas en donde algunos riesgos
fueron identificados, algunas tareas fueron desestimadas y los requisitos cambiaron y crecieron.
Para simplificar la historia de este proyecto, se mostrarn los datos obtenidos en las semanas 20,
28, 36 y 52.
PLANIFICADO
TRABAJADO
Datos Semana 20
646.8
1006.15
Datos Semana 28
373.7
461.8
Datos Semana 36
118.9
124.4
342.0
353.9
Datos Semana 52
Tabla No. 6
Horas Planificadas vs. Horas Trabajadas
Como se puede apreciar, existe una notable mejora en la estimacin de horas debido
fundamentalmente a que el equipo de trabajo adquiri experiencia en el modelo del negocio y en la
aplicacin del TSP. Adicionalmente, se aprendi a conocer el comportamiento de los usuarios.
Horas planificadas por rol vs. Horas trabajadas.- Esta mtrica permite medir el nivel de
cumplimiento de trabajo de cada miembro del equipo con respecto a lo planificado. Para obtener la
mtrica, se tom en consideracin las horas trabajadas por cada administrador. Los factores que
afectaron a esta mtrica fueron: el uso de una nueva metodologa de desarrollo, la falta de
experiencia entre los administradores y la experiencia adquirida por el equipo en el proceso de
desarrollo.
HORAS
HORAS
PORCENTAJE DE
PLANIFICADAS
TRABAJADAS
DESFASE
391.3
538.1
37.5%
375
509
35.7%
Adm. Planificacin
261.8
314.1
20.1%
Adm. Calidad
256.2
312.2
21.8
Adm. Configuracin
312.8
364.55
17.44%
ROL
Lder Equipo
Adm. Desarrollo
Tabla No. 7
Comparativa de Horas Planificadas por rol vs. Horas Trabajadas
con su porcentaje de desfase
En la Tabla No. 7, vemos los desfases en horas de los roles, el desfase se encuentra en el rango
del 17% al 37.5%. Estos desfases se debieron a los cambios constantes de requerimientos de
mdulos a su cargo, a la falta de experiencia en la herramienta de desarrollo, a la falta de
experiencia en planificar y al uso de una nueva metodologa.
Nmero de cambios por mdulo.- A travs de esta mtrica llevamos el control de cambios por
cada mdulo.
MDULOS
NMERO DE CAMBIOS
MCIB
10
MCP
MFAC
MNO
11
MOC
MOT
MPO
Tabla No. 8
PROCESOS DE
CAMBIOS
EVALUACION
4.2
2.6
IMPLEMENTACION
5.3
REVISION
0.2
TOTAL
GENERAL
3.4
2.9
25.2
4.8
4.8
3.4
32.5
0.5
0.15
0.2
1.65
8.9
8.35
6.5
59.35
3.9
4.6
3.6
3.5
5.7
0.2
0.3
0.1
6.3
9.2
10.4
Tabla No. 9
Horas Trabajadas en pruebas por Mdulo
Como se puede observar, los tiempos para realizar pruebas de los primeros mdulos son altos
comparados con los mdulos finales. El orden en el cual los mdulos fueron desarrollados fue el
siguiente:
Realizando una comparacin entre los tiempos que se registraron para un solicitud de cambio al
inicio del desarrollo del software y al final del mismo, nos damos cuenta que el equipo pudo reducir
el tiempo de los procesos de cambios, hubo una disminucin considerable en la etapa de
evaluacin y la etapa de implementacin del cambio, por el contrario, en la etapa de revisin del
cambio el tiempo se mantuvo estable, con esta medicin podemos definir que aument el grado
de eficiencia (12).
En el proyecto se definieron 3 lneas base, la primera es la lnea base de definicin el cual agrupa
todos los elementos de configuracin que se encuentran en las fases de introduccin, estrategia,
lanzamiento y planificacin como por ejemplo: objetivos del equipo, objetivo del producto, definicin
Para una mejor evaluacin de la mtrica tomamos en consideracin las etapas de desarrollo y
produccin, se tom en cuenta los siguientes elementos de configuracin: Requerimientos del
cliente, Requerimientos del desarrollador, Diseo Detallado
En la Tabla No. 10 se muestra el total de nmero de versiones obtenidas por mdulo y por etapa.
Si observamos el cuadro comparativo de esta tabla, podemos ver que existe una disminucin en el
nmero de versiones de los elementos de configuracin que se encuentran en la etapa de
desarrollo como por ejemplo el MCIB se obtuvo un total de 17 versiones de los elementos de
configuracin, y en MCP que fue uno de los ltimos mdulos se obtuvieron un total de 6 versiones.
TOTAL
MCIB
MCP
MFAC
MNO
MOC
MOT
MPO
DESARROLLO
17
14
12
74
PRODUCCION
46
TOTAL GENERAL
25
10
17
22
16
17
13
120
GENERAL
Tabla No. 10
Versiones obtenidas en desarrollo y produccin
De igual manera en la etapa de produccin las versiones que se obtuvieron con los mdulos finales
son menores en referencia a los mdulos iniciales.
Antes de adquirir conocimiento acerca de la metodologa TSP ningn miembro del equipo de
trabajo tena como procedimiento utilizar estndares tanto de documentacin como de desarrollo.
No efectuaban planificaciones; por lo tanto, no se distribuan las tareas de forma efectiva cuando
se trabajaba en grupo. Rara vez documentaban el software y como consecuencia de esto, el
anlisis y diseo de las aplicaciones desarrolladas era muy pobre. No definan fechas de entrega ni
respetaban un cronograma de trabajo. No tenan como costumbre efectuar pruebas cuando se
efectuaban desarrollos, ni realizaban inspecciones en la documentacin. Tampoco controlaban los
cambios efectuados en el sistema. En suma, el grupo de trabajo no conoca en realidad lo que era
trabajar en equipo.
proyectos con TSP y sin TSP es relevante debido a que TSP ayuda a administrar las tareas
mediante un rol especifico.
Desfase promedio
en la Programacin
del trabajo
PROYECTOS
PROYECTOS TIPICOS
CON TSP
6%
Rango aceptable
de errores en la
programacin del
trabajo
-20% a 27%
Tabla No. 11
Comparacin de proyectos con TSP y sin TSP (6)
Con respecto al trabajo realizado en este proyecto, la planificacin se la dividi por incrementos,
los cuales tenan su propia programacin de tareas.
En el desarrollo del proyecto se presentaron diferentes problemas debido a que el grupo de trabajo
no tena antecedentes de proyectos desarrollados con este tipo de metodologa. No se lograba
estimar apropiadamente los tiempos pues no se contaba con la experiencia para poder estimar
fechas de entrega. Entonces, la utilizacin de mtricas en el proceso de desarrollo de software ha
permitido tomar acciones correctivas a tiempo, mejorando sucesivamente los procesos definidos.
Conclusiones
La metodologa TSP puesta en prctica en el equipo contribuy a que el grupo tenga a una mejor
comprensin de sus responsabilidades en los procesos. Adems, sta les permite enfocar sus
esfuerzos hacia las actividades que son significativas en el desarrollo del proyecto, lo cual les
brinda autonoma al reducir el nmero de interacciones con el instructor. Los resultados
preliminares, utilizando procesos rediseados sugieren que los modelos son una gua poderosa
para entrenar a los participantes del proyecto. Los modelos facilitan la colaboracin entre los
distintos miembros del grupo al determinar explcitamente los tipos de interaccin que existen en
cada etapa del desarrollo de un sistema de software. El TSP funciona en mejor manera siempre y
cuando los miembros del equipo trabajen en un mismo lugar.
La metodologa TSP est enfocada a administradores del proyecto, para que exista un mejor
seguimiento del trabajo a los desarrolladores, estas funciones deben ser segregadas.
La
metodologa es aplicable para empresas que tengan mayores recursos humanos y logsticos. El
registro en las plantillas tanto de PSP como TSP que se utilizaron en el presente trabajo ayudaron
a ser ms ordenados con el registro en el proceso de desarrollo de software.
El modelo
incremental es el que ms se ajusta a TSP debido a que se puede definir pequeos incrementos y
ver las mejoras a medida que se los va desarrollando. El equipo de trabajo es ms productivo
cuando trabaja en conjunto y no individualmente. Para ello, es indispensable que exista una buena
comunicacin entre todos los integrantes.
Implicaciones
ejercite en el desarrollo de un producto para un cliente real, tome decisiones de acuerdo a las
opciones o recursos disponibles y se enfrente con los aspectos de comunicacin y coordinacin
tpicos del trabajo en grupo (8). Entonces, un problema recurrente es que el xito de los proyectos
en estos cursos depende de la habilidad y experiencia del instructor para dirigir proyectos. Es
probable que distintos instructores logren resultados diferentes utilizando el mismo modelo o que el
mismo instructor, con otro grupo de estudiantes, obtenga resultados dispares. Adems, en
algunos de estos cursos slo se presta atencin a las caractersticas de una buena arquitectura e
implantacin, sin integrar los aspectos de aseguramiento de la calidad y administracin. Estos
problemas sugieren que muchos de los proyectos de ingeniera del software sufren de deficiencias
en el proceso de desarrollo de software utilizado por el instructor (9).
Basados en la experiencia que se ha adquirido en esta tesis podemos sugerir varios puntos claves
para los futuros ingenieros de software:
Para dar seguimientos al proceso de desarrollo, es importante definir inicialmente mtricas que
ayuden a tener indicadores de desempeo al inicio, en el proceso y al fin del desarrollo del
software.
Otro punto a considerar es tener a la mano plantillas para asegurar la organizacin y control, para
tener un mayor grado de eficiencia en los procesos de software. Adems, es importante considerar
que cuando se adopta el uso de plantillas, la informacin que se registre en ellas debe ser lo
necesario para levantar una evaluacin de los procesos, es decir, debe tener campos necesarios y
no redundantes.
Adems, no es necesario que los estudiantes investiguen cules son las actividades que
corresponden a sus puestos, ni con quin deben interactuar durante el proceso, sino que deben
preocuparse por comprender cmo realizar sus tareas y adaptarlas al proyecto de desarrollo de
software en el que estn trabajando.