6.2. Trabajo en equipo y mejora continua

Varias manos unidas. La unión hace la fuerza.
Imagen en Pixabay de TusitaStudio bajo licencia CC0 Puclic Domain

Trabajar en equipo consiste en reunir a dos o más personas organizándolas de tal manera que puedan cooperar para realizar en común un proyecto que sería muy difícil o imposible de conseguir de forma individual. También se origina cuando se pretende agilizar y mejorar algunas condiciones que obstaculizan el desarrollo de tareas diarias y la consecución de objetivos en las organizaciones.

Cuando se trabaja en equipo, se aúnan las aptitudes de los miembros y se potencian sus esfuerzos, disminuyendo el tiempo invertido en las tareas y aumentando la eficacia en la consecución de los resultados.

No todo grupo de personas reunidas forma un equipo de trabajo, ya que para ello se necesita alcanzar un cierto grado de cohesión y compenetración entre los componentes. Para ello se han de crear lazos de atracción interpersonal, fijar una serie de normas que dirijan el comportamiento de todos los miembros, donde la figura de un líder es fundamental, promover una buena comunicación entre el conjunto de integrantes, trabajar por el logro de los objetivos comunes y establecer relaciones positivas.

La cohesión de un equipo de trabajo se expresa a través del compañerismo y el sentido de pertenencia al grupo que manifiestan sus componentes. Mientras más cohesión exista, mejor trabajarán sus miembros y más productivos serán los resultados de sus acciones.

Cuando se detectan dificultades y problemas en los equipos de trabajo, se recurre a otro equipo que será el encargado de revisar y analizar el trabajo que se está realizando, es el llamado equipo de mejora continua, formado por un grupo de personas que pueden pertenecer al mismo departamento o sección que los del equipo de trabajo o a otro departamento diferente. La misión de este equipo es la de mejorar el nivel de calidad y productividad del equipo de trabajo. Una vez solucionados los problemas, el equipo de mejora continua puede disolverse.

Para ayudar al equipo de trabajo a sincronizar sus tareas, sobre todo cuando más de un miembro  opera sobre una misma parte del proyecto, se necesita realizar un control de versiones del trabajo realizado. Para ello se recurre a los sistemas de control de versiones. Más adelante conocerás su uso y podrás apreciar la potencia y la necesidad de los mismos.

Cuando se desarrolla software, a medida que aumenta la complejidad del mismo, aumenta considerablemente el número de líneas de código necesarias y con ello las horas de desarrollo a emplear. Parece evidente que si un programador necesita un tiempo determinado para realizar un programa, dos tardarían la mitad del tiempo, sin embargo, cuando se trabaja en equipo, los esfuerzos de los miembros se potencian, disminuyendo el tiempo de acción y aumentando la eficacia de los resultados, haciendo que el tiempo de desarrollo se reduzca mucho más.

Para proyectos de embergadura se hace pues indispensable que varios programadores trabajen sobre el mismo código. Pongamos por caso el ejemplo de la elaboración del un programa completo de gestión empresarial que abarcara desde la gestión de stock en almacenes, entradas, salidas, conformación de pedidos y paquetería, etc., hasta el control de facturación de ventas y compras, albaranes, control de flujos de tesorería, vencimientos de cobros y pagos, envíos de remesas digitales a bancos para cobros de recibos, domiciliación de pagos, etc. También podríamos implementar una parte para gestión contable, entrada de asientos, libro diario, libro mayor de cuentas, cuentas anuales, memoria, balances de comprobación, balances de situación, cuentas de explotación, cuenta de Pérdidas y Ganancias. Como vemos el trabajo es arduo y extenso. Qué ocurriría si no coordinamos los trabajos y lo programado por un desarrollador es machacado por lo elaborado por otro. Qué pasaría si en una modificación o revisión uno de los programadores no se percatara de que su última adición al programa no se ha mantenido porque el punto de partida tomado por otro desarrollador ha sido una versión anterior.

Si el trabajo en equipo no funciona bien, el proyecto puede llegar a ser un desastre. Para ello es de vital importancia incidir en el propio equipo. Existe un esquema llamado de las "5c" que define los roles del trabajo en equipo, y son los siguientes:

  • Complementariedad: Conseguir que cada miembro del equipo domine una parcela determinada del proyecto, de tal forma que uniendo los conocimientos de todos se pueda sacar el trabajo adelante.
  • Coordinación: Todos los miembros, guiados por un líder, deberán actuar de forma organizada para conseguir los objetivos marcados en el proyecto.
  • Comunicación: Para alcanzar un grado de coordinación óptimo deberá existir una comunicación abierta entre todos los componentes del equipo, logrando que cada miembro sepa lo que tiene que hacer y cuándo lo tiene que hacer.
  • Confianza: Cada componente del equipo deberá confiar en el buen hacer del resto de miembros, anteponiendo el éxito del equipo al suyo propio y pensando que el resto de sus compañeras y compañeros harán lo mismo.
  • Compromiso: Cada miembro se comprometerá a aportar lo mejor de si mismo y a poner todo su empeño en sacar el trabajo adelante.

En definitiva, si el equipo no está bien dirigido por un líder, cumpliendo con todos los requisitos anteriormente mencionados, el trabajo realizado puede volverse contradictorio, pues tener que volver sobre pasos anteriores será como mínimo una pérdida de tiempo, o aún peor, puede llevar al equipo a realizar una serie secuencial de parches para resolver problemas que lleguen a distorsionar en gran medida la estructura misma del programa.

Video en YouTube de GoEmprendedor bajo licencia de YouTube estándar

Gráfico de barras en ascenso.
Imagen en Pîxabay de Tumisu bajo licencia CC0 Public Domain
Serás el último de la fila.
Imagen en Pîxabay de 3dman_eu bajo licencia CC0 Public Domain

Cuando se tiene la necesidad imperiosa de que todos los miembros del equipo trabajen sobre el mismo código fuente, la coordinación es vital, ya que un pequeño descuido en la manipulación del mismo podría acarrear la pérdida de modificaciones o ampliaciones ya realizadas, haciendo que los tiempos de implementación se incrementen notablemente. Se hace indispensable por tanto una mejora en la gestión del código fuente y en la forma de trabajar de todos los programadores.

Cualquier persona que haya trabajado con un ordenador se habrá visto en la necesidad de manejar distintas fases por las que un trabajo va pasando (la creación de un informe, de una presentación, de un retoque fotográfico, de una hoja de cálculos, etc). Lo habitual es ir guardando distintas copias de un mismo fichero en las que se va cambiando el contenido de unas a otras, de tal manera que podamos volver a un estado anterior si nos arrepentimos de los últimos cambios realizados o, en caso de pérdida del trabajo, poder recurrir a alguna de las últimas copias que tuviésemos del fichero, para así recuperar la mayor cantidad posible. Seguramente todos hayamos utilizado diferentes métodos para llevar a cabo el control de los distintos ficheros que se van generando en la realización de un trabajo con el ordenador. En cualquier caso, la mayoría de las veces solemos recurrir a técnicas parecidas, comenzando por lo típico: realizar copias de ficheros con nombres como "Copia del trabajo", "Copia de Copia del trabajo", "Copia de Copia de Copia del trabajo", etc. Lo siguiente suele ser el juego con las fechas, añadiendo la misma en el propio nombre de los ficheros para reflejar cómo de actualizado está el contenido de los mismos. También solemos recurrir a almacenar lo distintos ficheros en carpetas separadas y clasificadas por fechas o haciendo referencia a algún cambio significativo que se haya producido en los contenidos. Añadimos a veces incluso la hora junto a la fecha para asegurarnos todavía más.

Como ves, en el primer párrafo se habla de coordinación, de colaboración, reducción de los tiempos, etc. En el segundo se hace alusión a la seguridad, a la necesidad de asegurar que no se pierda lo que ya hemos construido, a sistemas propios digamos más o menos artesanos de no tener que reelaborar un programa por algun fallo. También hemos hablado de optimizar rendimientos, alcanzar objetivos, trabajo en equipo, cohesión, compañerismo, etc. Todas estas metas o hitos que hay que ir consiguiendo son lógica consecuencia del primer vocablo de este apartado, la mejora necesaria, que nos lleva directamente  a la evolución en la forma de trabajar, por no hablar de la creciente competitivad en el terreno personal y la feroz competencia del mercado a la hora de asignar trabajos y mucho más proyectos de gran peso. En este último sentido el segundo vocablo es de gran elocuencia.

Llegamos pues a una clara conclusión, en cuanto al trabajo, tanto personal como en equipo... ¡¡¡MEJORA O MORIRÁS!!!