Contexto


Patricia es ingeniero en software, ha estado trabajando para una empresa de desarrollo de software. Desde su contratación hace ya más de un año, ha utilizado el modelo PSP y ha visto cómo su productividad ha ido en aumento. Ahora ella es parte del mayor reto de su carrera al incorporarse al proyecto más importante que lleva su empresa. El jefe de Patricia le ha informado algunos detalles del proyecto, por ejemplo, que se ha involucrado a un grupo de más de cien personas con diferentes habilidades y niveles de experiencia en proyectos de desarrollo de software, por lo que será todo un reto coordinar y controlar. Las fechas de entrega son una parte fundamental de la aceptación del usuario, así que no pueden darse el lujo de permitir ningún retraso. El mismo dueño de la empresa desarrolladora de software ha puesto toda su confianza en este equipo de trabajo para entregar un producto de calidad que le abra las puertas a otras oportunidades de firma de contratos de desarrollo en otros países.

Algunos de sus compañeros han trabajado en una metodología llamada TSP (Team Software Process) y han comentado que será de gran ayuda para este proyecto.

¿De qué trata este proceso?, ¿cuáles son las ventajas de aplicarlo en un proyecto que involucra a un grupo nutrido de ingenieros?, ¿cómo asegurar los entregables en las fechas comprometidas, sin afectar la calidad del software?, ¿cómo se relaciona el proceso TSP con PSP?

Explicación


El trabajo en equipo en un proyecto de desarrollo de software es fundamental para generar un producto de calidad. Sería prácticamente imposible que el todo el desarrollo pueda realizarse con un solo ingeniero y cumplir con las expectativas en las fechas de entrega del cliente.
Bastaría con realizar una comparación entre los sistemas desarrollados hace algunos años con los actuales y verificar la cantidad de requerimientos documentados. Las necesidades del cliente, la competencia y el mercado han cambiado, al igual que lo ha hecho la misma tecnología, por lo que para responder a estas expectativas se necesita la fuerza y el empuje de todo un equipo de personas con habilidades y experiencias diferentes.

3.1 Conceptos básicos del TSP

Según Humphrey (2006), TSP (Team Software Process) es un proceso diseñado para guiar a equipos de personas en la planeación, diseño y desarrollo de sistemas de software de calidad. Es una metodología que ha sido probada en varios proyectos y ha demostrado que mejora la productividad del equipo y se mantienen motivados.

Algunos conceptos básicos del TSP son los siguientes:

Haz clic en cada concepto para conocer más detalle

3.2 Equipos de Trabajo

El proceso TSP sugiere que los equipos de trabajo deben ser autodirigidos para lograr el éxito.

Los equipos autodirigidos son aquellos que generan sus propias estrategias, procesos, planes y establezcan sus propias negociaciones con la gerencia.

Los equipos son conformados por personas con diferentes áreas de experiencia, que ponen sus habilidades al servicio del resto del equipo y realizan tareas en las que puedan especializarse para encontrar mejores soluciones a problemas complejos. Este tipo de equipos se caracterizan especialmente por dar los resultados esperados sin necesidad de supervisión, se comprometen con el equipo de trabajo y son esenciales para proyectos de desarrollo complejos que requieren un trabajo creativo.

Propiedades de los equipos autodirigidos:
Según Humphrey (2006), los equipos autodirigidos tienen las siguientes propiedades:

Haz clic en cada propiedad para conocer más detalle

Son grupos que conocen muy bien quién pertenece al equipo y quién no. Son parte distintiva y cohesiva del grupo. Saben trabajar en equipo a través de la cooperación, la comunicación y cada uno sabe que su contribución es indispensable para lograr la meta propuesta.
Alcanzar el objetivo es importante, pero es más importante lo que el equipo ha hecho para lograr el objetivo. Para mantener este compromiso, es importante establecer un mecanismo de retroalimentación que les permita conocer en qué lugar o momento se encuentran en su camino por lograr la meta, por lo que el equipo debe estar informado de su progreso de manera periódica.
Estos equipos se hacen responsables por el trabajo, por lo que deciden cómo hacerlo, monitorean su proceso, generan sus propios reportes de avance sin ser un mero trámite de rendición de cuentas para la gerencia. Esto los mantiene motivados porque no se ven amedrentados por un supervisor que está sobre sus espaldas.
Tienen la habilidad de realizar un plan, la convicción de defenderlo y la disciplina de seguirlo. Enfocan todas sus energías en su disposición para ensayar, practicar y mejorar sus procesos, lo que les permite echar mano de su creatividad.

“La disciplina es lo que separa a los expertos de los amateurs en cualquier campo”. (Humphrey, 2006)

Cada miembro se considera una persona en la que el resto del equipo puede confiar. Construyen la confianza a base del respeto y en la honestidad. Se sienten tomados en cuenta para las decisiones importantes y respetan las decisiones de su líder de equipo.

Su enfoque hacia la mejora continua los impulsa a hacer más que sólo su parte del trabajo asignado. Están abiertos a probar nuevas formas de hacer las tareas y festejan no sólo sus éxitos, sino también sus fracasos porque saben que les permitió reconocer que no era el camino adecuado.

Equipo tradicional: El líder planea, dirige y da seguimiento al trabajo del equipo.

Equipo autodirigido: Los miembros del equipo participan de la planeación, administración y seguimiento de su propio trabajo

Diferencia entre el equipo tradicional y el equipo autodirigido. Tomado de: Humphrey, W., Chick, T., Nichols, W. y Pomeroy-Huff, M. (2010). Team Software Process (TSP), Body of Knowledge (BOK). Recuperado de: http://www.sei.cmu.edu/reports/10tr020.pdf Sólo para fines educativos.

3.3 Administración de equipos de trabajo

Una vez formado el equipo, será necesario identificar su estilo de trabajo que ayude al líder del equipo obtener el mayor provecho de la sinergia que pueda encontrar en el equipo. Humphrey (2006), describe cuatro estilos: Abierto, Cerrado, Aleatorio y Síncrono.

Haz clic en cada estilo para conocer más detalle

Humphrey, W. (2006). TSP(SM) Coaching Development Teams. EEUU: Pearson Education. Sólo para fines educativos.



Sus miembros son capaces de realizar tareas que se requieren. Participan en la planeación, diseño y asignan roles de común acuerdo. El consenso es la actividad que los describe.
Es un equipo en el que se propicia la creatividad para encontrar soluciones innovadoras a problemas complejos. Sus reuniones pueden ser calificadas como caóticas por lo que requieren de una guía para redirigir el grupo. Su principal ventaja es la generación de un ambiente creativo, por lo que suelen hallar soluciones que rompen paradigmas.
Los equipos cerrados están enfocados a la tarea, saben los pasos a realizar para alcanzar el objetivo y tratan hacer el trabajo lo más eficientemente posible. No dedican tiempo para el debate o las discusiones, principalmente porque requieren terminar lo antes posible sus asignaciones. Este estilo de equipo de trabajo aparece generalmente cuando existe un apremio por cumplir con las fechas de entrega. La mayor desventaja es que no le dedican esfuerzo para la mejora continua.
Es un grupo en el que sus miembros trabajan de manera relativamente independiente, ya que tienen poca necesidad de interactuar con sus compañeros de equipo. Es frecuente encontrar este tipo de equipos cuando son tareas específicas que son asignadas a una persona. El resultado del trabajo es de fácil acoplamiento

Como puedes observar en el diagrama, la característica principal del equipo con un estilo cerrado es que requiere de una mayor dirección que los abiertos, y los equipos aleatorios establecen una mecánica más interactiva que los sincrónicos.

Problemas comunes:

Los equipos de trabajo suelen terminar fracasando cuando se presentan los siguientes problemas, que Humphrey (2006) las categoriza en 4 grupos:

Haz clic para conocer más detalle



Cuando la cantidad de miembros no es proporcional al tamaño del software asignado, sus miembros no tienen las habilidades necesarias o las herramientas sin inapropiadas.
Aparece cuando el líder del equipo no tiene claro cómo guiar y motivar a sus miembros en el trabajo que se requiere hacer.
Surgen debido a la planeación de fechas de entrega poco realistas o demasiado optimistas, lo que suele desgastar las energías del equipo y minar la motivación.
La moral del equipo puede venirse abajo cuando está más preocupado por permanecer en el equipo que por trabajar en equipo. Problemas de evaluación, niveles salariales, seguridad en el trabajo y ambientes con mucha tensión, pueden generar climas organizacionales que no contribuyen al verdadero trabajo en equipo.

Técnicas del involucramiento

Para poder trabajar verdaderamente en equipo, el involucramiento de todos los miembros es una de las estrategias más efectivas, sobre todo cuando en el equipo está conformado por personas de recién ingreso y personas con expertas.

Humphrey (2006) propone utilizar las siguientes técnicas que puede utilizar un líder de equipo:

Haz clic en cada técnica para conocer más detalle

Realizar preguntas en las reuniones de equipo es una buena forma de conocer las opiniones de todos. Esto obligará a los nuevos miembros a salir de la obscuridad y emitir su opinión profesional.
Cuando el líder el equipo es un reconocido experto en el proceso, surge la idea entre los miembros del equipo que por su experiencia se debe hacer lo que el líder diga, provocando así que se siga el proceso que éste indica y no el proceso que defina el equipo, lo que finalmente provoca es que pocos se interesen en seguirlo y mucho menos en mejorarlo. Lo que el líder debe hacer es asignar un gerente de proceso que establezca una mecánica que fomente la participación de los miembros del equipo y establezcan su propio proceso.
Escuchar las opiniones de cada miembro siempre será una buena opción para involucrarlos en la toma de decisiones que afectan al equipo. Incluso es importante que nadie se reserve sus opiniones cuando crea que ayudan realizar un mejor trabajo.
Analizar el lenguaje corporal de los miembros del equipo debe ser una de las actividades del líder del equipo durante las reuniones. Fruncir el ceño, actuar agitado, alejarse de la mesa de reunión o no ofrecerse como voluntarios, suelen ser señales tácitas de desacuerdo. El líder debe hacer preguntas inteligentes que hagan aflorar las preocupaciones de los miembros del equipo.
Es muy frecuente que los miembros expertos o veteranos en proyectos de desarrollo ofrezcan ideas muy valiosas, sin embargo, es importante que el líder del equipo funja como moderador en las reuniones de trabajo y evite que sean un monólogo del experto. Todos deben participar y sentirse tomados en cuenta.
Tener a expertos en un equipo es una gran ventaja cuando éstos saben trabajar en equipo. El líder debe aprovechar su experiencia sin que ellos tengan actitudes altaneras que hagan sentir al resto del equipo menospreciado. Tratarlos como consultores o asesores, suele ser una buena estrategia que aporte al trabajo en equipo.
Es frecuente que las personas generen opiniones personales basadas corazonadas, lo que provoca tomar decisiones sin un verdadero fundamento. Es necesario entonces basarse en hechos reales y datos concretos para tratar de llegar a acuerdos que involucren a sus miembros por propio convencimiento.

Cierre


Si alguna vez has trabajado en equipo elaborando alguna evidencia o trabajo final en alguna de tus materias, sabrás lo difícil que puede llegar a ser poner en sintonía a todos los integrantes, es decir, lograr que todos se interesen por alcanzar la mejor calificación, aporten ideas, escuchen a sus compañeros, aceptar una crítica y necesitarán a su mejor esfuerzo. Si esto es difícil en un grupo de 5 personas o menos, cómo será trabajar en un grupo de 15 personas, y además coordinarse con otros grupos iguales de muchos. Las compañías dedicadas al desarrollo de software necesitan establecer una mecánica de trabajo en equipo adecuado si desean producir software de calidad. Tan solo piensa en la cantidad de personas que se necesita para crear las nuevas versiones del sistema operativo de Windows o de Mac.

TSP te ofrece algunos lineamientos para formar y administrar equipos de trabajo que se vuelvan autodirigidos, es decir, equipos que se encuentran convencidos que sólo trabajando unidos, colaborando y ofreciendo su mutuo apoyo, lograrán cualquier meta que se propongan.

TPS es una técnica que complementa las metodologías PSP y CMM. En su conjunto ayudan a las organizaciones a mantener una estructura enfocada al proceso de desarrollo de software, al trabajo en equipo y a la mejora continua. Cada organización debe tomar lo que le sirve y adecuarlo a sus condiciones particulares, así lograrán encontrar su propia fórmula para el éxito.

Checkpoint


Asegúrate de poder:

  • Identificar las características de un equipo de trabajo autoridigido para obtener los mejores resultados en los proyectos de desarrollo de software en los que participes.
  • Reconocer las técnicas de involucramiento que puedes utilizar cuando seas el líder del equipo de desarrollo de software.
  • Reconocer los diferentes estilos de equipos de trabajo para poder administrarlos de una forma adecuada según lo requiera el proyecto.

Referencias


  • Humphrey, W. (2006). TSP(SM) Coaching Development Teams. EE. UU: Pearson Education.
  • Humphrey, W. (1999). Introduction to the Team Software Process(SM). EE. UU: Addison Wesley Longman.
  • Humphrey, W., Chick, T., Nichols, W. y Pomeroy-Huff, M. (2010). Team Software Process (TSP), Body of Knowledge (BOK). Recuperado de http://www.sei.cmu.edu/reports/10tr020.pdf