Células de trabajo en proyectos complejos de software

El uso de equipos multi-funcionales o células de trabajo para romper el trabajo en compartimientos aislados o silos, mejora las posibilidades de éxito al construir sistemas complejos. Los programas de transformación tecnológica son importantes para la creación de valor al negocio y la construcción de capacidades estratégicas en todas las industrias.

Con muchas organizaciones que gastan alrededor del 50 por ciento de su presupuesto de TI en el desarrollo de aplicaciones, la capacidad de ejecutar programas de software más rápido y a menor costo es esencial para el éxito de muchos proyectos de transformación. Sin embargo, la calidad de la ejecución deja mucho que desear. Un estudio conjunto realizado por McKinsey y la Universidad de Oxford encontró que los grandes proyectos de software, en promedio, terminan 66%  por encima del presupuesto y el 33 % fuera de tiempo.

Por otra parte el 17% de los proyectos van tan mal que pueden poner en peligro la existencia misma de la empresa.

Algunos proyectos de desarrollo de aplicaciones a gran escala son particularmente difíciles debido a su complejidad y alto grado de interdependencia entre los flujos de trabajo. Esta categoría incluye:

  1. El desarrollo de sistemas para la facturación de las telecomunicaciones.
  2. Los reclamos de seguros.
  3. Pagos de impuestos.
  4. Las plataformas de banca minorista.

Estos proyectos exigen una estrecha coordinación debido a refinamientos frecuente a las necesidades de los usuarios originales. Esta coordinación sólo puede ocurrir rompiendo los silos tradicionales en el desarrollo de aplicaciones, un logro a menudo asociados con el enfoque de desarrollo de software ágil. Pero la metodología ágil es, principalmente, aplicable a proyectos más pequeños con una mínima definición frente a las necesidades del usuario que pueden ser divididos en una serie de subproyectos paralelos.

En los proyectos complejos como los que fueron mencionados anteriormente, los elementos de las prácticas como desarrollo iterativos inspirados en el desarrollo ágil, delgado, y basado en pruebas, sin duda juegan un papel importante. Sin embargo, en nuestra experiencia, estos enfoques deben combinarse con una nueva característica en la organización del proyecto, con equipos multi-funcionales o células de trabajo. Llamamos a estos equipos “células de trabajo”

El reto de coordinación en el desarrollo de aplicaciones

Las tres disciplinas involucradas en los proyectos de desarrollo de aplicaciones, análisis de proyectos de negocio, desarrollo y pruebas,  a menudo trabajan en silos o compartimientos aislados, con un flujo de información ineficiente entre ellos (Figura 1).

Este es un tema menor en pequeños emprendimientos de desarrollo de aplicaciones, pero los problemas de comunicación se hacen más grandes, en proyectos complejos grandes. El riesgo aumenta aún más cuando, los gerentes de proyecto y analistas de negocio, que son quienes reúnen los requisitos del usuario para construir las aplicaciones, se encuentran en un huso horario mientras que los desarrolladores y testers están a 10 o 12 horas de diferencia. Esto ralentiza la comunicación porque hay solapamiento limitado de horas de trabajo entre zonas horarias. Más aún, se intercambia información entre las disciplinas de manera hub-and-spoke, es decir, concentrar los reclamos o problemas en un lugar y derivarlos. Por ejemplo, los defectos de código identificados por quienes prueban (testers) se asignan a un desarrollador de aplicaciones de alto nivel, que a continuación, asigna el retrabajo de codificación para el resto del equipo. Estas múltiples transferencias pueden dar lugar a la falta de comunicación y a los cuellos de botella.

La falta de metodologías efectivas para medir la productividad y la calidad resulta en costosos desajustes entre la demanda y la capacidad. Los equipos de desarrollo esperan conocer las necesidades de los usuarios, acordar y dar por finalizada esta parte cuando reciben los requerimientos. No siempre las cosas suceden de esta forma.

Todas las partes implicadas  no necesariamente se alinearán en los últimos requisitos o en la aclaración de los requisitos. Esto produce re trabajos y frustración en los equipos. Como resultado de operar en compartimientos aislados, el trabajo se mueve en paquetes a través del ciclo de vida de desarrollo de software.

Por ejemplo, todos los casos de uso se examinan juntos en la fase de pruebas en una tarea de usuario-aceptación, en lugar probar en lotes,  a medida que son completados. Esto se traduce en la pérdida de oportunidades para llevar a cabo procesos en paralelo y acortar el “time to market”

El enfoque de células de trabajo

En nuestra experiencia, los proyectos grandes y complejos de software se ejecutan mejor con equipos de células de trabajo multi funcionales, que, de punta a punta, sean propietarios de los módulos de la aplicación.

El papel del gerente de proyecto cambia. En lugar de gestionar las comunicaciones y la transferencia de responsabilidades entre equipos funcionales,  su rol es el de asegurar que las células entregan sus módulos. (Figura 2)

Cuando el uso de células de trabajo se aplica bien, pueden generarse múltiples beneficios, incluyendo una mayor responsabilidad individual y colectiva, una mejor comunicación y coordinación, y las interacciones más cortas.

Más responsabilidad

En una célula de trabajo, los analistas de negocios, desarrolladores y probadores trabajan juntos como un grupo muy unido y asumen la responsabilidad de todo el proceso:

  1. La definición de los requisitos de los usuarios.
  2. El desarrollo de código.
  3. Pruebas funcionales.
  4. Retrabajo.
  5. Pruebas de usuario-aceptación.
  6. Entrega final de funcionalidad para el cliente.

Tal estructura de equipo alienta el aumento de la responsabilidad individual y colectiva.

Mejor comunicación

Las células de trabajo reducen el retrabajo y los retrasos que surgen debido a la falta de coordinación entre las disciplinas. La complejidad que implica la diferencia de husos horarios se hace más fácil de manejar cuando los cambios de requisitos, actualizaciones y aclaraciones suceden dentro de la unidad en lugar de entre las funciones.

Encontrar defectos y corregirlos es más eficientes: los miembros de la unidad de funciones cruzadas sabrán que el analista de negocio, desarrollador o probador está involucrado y se comunicará directamente. Los miembros del equipo se sienten en mejores condiciones para tener feedback directo,  lo que reduce el riesgo de error y el costo de los retrabajos. Los cambios de agenda se comunican de manera oportuna para asegurar que la capacidad está disponible para pruebas o reproceso. Pueden adelantar tiempo compartiendo releases preliminares y suficiente información sobre lo que se espera que los testers prueben. Una charla diaria de 15 minutos puede ayudar a la unidad de discutir el trabajo actual y alinear las prioridades. Además, cada células de trabajo puede tener las reuniones agendadas o reuniones  espontáneas todos los días.

Interacciones más cortas

Las unidades multifuncionales o células de trabajo permiten ciclos más cortos para las pruebas de transferencias debido a que la coordinación es más simple cuando cada interacción se mantiene dentro de un grupo pequeño. Como resultado, el tiempo de espera se reduce cuando los  testers necesitan de los desarrolladores para proporcionar aclaraciones o corregir defectos.

Algunos proyectos grandes de desarrollo de aplicaciones son un reto debido a su complejidad y la interdependencia entre los flujos de trabajo. Las células con la capacidad de trabajar de extremo a extremo de los módulos de la aplicación pueden mejorar el costo, la calidad y la velocidad de estos proyectos, proporcionando una mayor responsabilidad, mayor coordinación, y las interaciones más cortas.

Fuente: Sriram Chandrasekaran es consultor de McKinsey’s en New York, Sauri Gudlavalleti es consultor de la oficina en Delhiy Sanjay Kaniyar es asocaido principal en la oficina de Boston

Adaptado por la División Consultoría de www.evaluandosoftware.com

 

¿qué software es apto para su empresa?

Acceda a nuestros evaluadores

Comentarios

Deja un comentario