Concepto: Colaborar con los otros equipos
Este principio explica cómo fomentar la colaboración eficaz.
Descripción principal

Introducción

Este principio enfatiza la importancia de fomentar una óptima comunicación en todo el proyecto. Esto se logra mediante una adecuada organización del equipo y la configuración de entornos de colaboración eficaces.

      
Ventajas
  • Productividad de equipo
  • Más interrelación entre las necesidades empresariales y el desarrollo y las operaciones de los sistemas de software.
Patrón
  1. Motivar al personal para que rinda al máximo.
  2. Crear equipos autogestionados.
  3. Fomentar la colaboración entre funciones (por ejemplo, analistas, desarrolladores, verificadores)
  4. Proporcionar entornos de colaboración eficaces
  5. Gestionar los artefactos en evolución y las tareas para mejorar la colaboración y la perspectiva del progreso y de la calidad con los entornos integrados.
  6. Integrar los equipos comerciales, de software y de operación
Antipatrones
  • Para apoyar a los desarrolladores heroicos que deseen trabajar jornadas muy largas, incluidos los fines de semana.
  • Tener un personal altamente especializado equipado con sólidas herramientas con las que realizar su trabajo, con una colaboración limitada entre los distintos miembros del equipo y una integración limitada entre las diferentes herramientas. Se parte de la suposición de que si todos los implicados realizan su trabajo, el resultado final será satisfactorio.

Discusión 

Un grupo de personas con talento y motivación en estrecha colaboración producen el software. Muchos sistemas complejos precisan la colaboración de un cierto número de interesados con diversas habilidades, y los proyectos más grandes suelen abarcar los límites geográficos y temporales, aumentando la complejidad del proceso de desarrollo. Por eso, las cuestiones de personal y la colaboración (lo que algunos han denominado el elemento "soft" del desarrollo de software) han sido un punto de atención principal de la comunidad de desarrollo ágil. El seguimiento de este principio precisa la respuesta a muchas preguntas, que incluyen:

  • ¿Cómo motivar al personal para que rinda al máximo?
  • ¿Cómo colaborar en un equipo de software en paralelo frente a uno distribuido?
  • ¿Cómo colaborar entre equipos responsables del aspecto comercial, del desarrollo de software y de las operaciones de IT?

El primer paso para una colaboración eficaz es motivar a los individuos del equipo para que rindan al máximo. La noción de equipos autogestionados ha ganado popularidad en la comunidad Agile (consulte Concepto: Prácticas de Agile y RUP); se basa en hacer que un equipo se comprometa con su objetivo de entrega y, a continuación, proporcionarles la capacidad de decidir sobre todos los temas que influyen en el resultado directamente. Cuando sienten que son enteramente responsables del resultado final, la motivación es mucho mayor para llevar a cabo un buen trabajo. Ya en el manifiesto Agile se habla de crear proyectos en torno a individuos motivados. Debe proporcionárseles el entorno y el soporte necesario, y confiar en ellos para que terminen el trabajo.

El segundo paso es fomentar la colaboración entre funciones. Como dice Walker Royce, el desarrollo de software es un deporte de equipo. Un enfoque iterativo aumenta la necesidad de trabajar en estrecha colaboración como equipo. Es necesario deshacer los obstáculos que suelen existir entre analistas, desarrolladores y verificadores, y ampliar las responsabilidades de estos roles para garantizar una colaboración eficaz en un entorno con un ritmo rápido. Todos los miembros necesitan entender la misión y la visión del proyecto.

A medida que crecen los equipos, debe proporcionarles entornos de colaboración eficaces. Estos entornos facilitan y automatizan la recopilación de métricas y los informes de estado y automatizan la gestión de compilaciones y la contabilidad en torno a la gestión de la configuración. Esta eficacia reduce la necesidad de reuniones, lo que libera a miembros del equipo para que puedan pasar más tiempo en actividades más productivas y creativas. Estos entornos también deben habilitar una colaboración más eficaz al simplificar la comunicación, salvando lapsos de espacio y de tiempo entre los distintos miembros del equipo. Se dan ejemplos de este tipo de rangos de entorno desde las salas de proyectos compartidas, a soluciones de red o basadas en web, como las wikis o los entornos de desarrollo integrados y los entornos de gestión de cambios y configuración.

A medida que el software se convierte en un factor más importante para los principales procesos empresariales, aumenta la necesidad de colaboración efectiva entre equipos. En la mayoría de empresas, los equipos responsables de dirigir el negocio, desarrollar las aplicaciones y ejecutarlas cuentan con poca comunicación.

El objetivo final de este principio es la colaboración integrada entre los equipos comerciales, de software y de operación. A medida que el software se convierte en un factor más importante en cómo llevamos el negocio, debemos crear una estrecha colaboración entre 1) los equipos que deciden cómo llevar a cabo los negocios en el presente y en el futuro, 2) los equipos que desarrollan los sistemas de software de soporte y 3) los equipos que ejecutan las operaciones de IT. En la mayoría de las empresas, estos tres grupos tienen poca comunicación.