Cómo ejecutamos proyectos ágiles como equipo distribuido extendido de clientes

Publicado: 2018-12-14

Un informe reciente de Computereconomics encontró que en el período 2018/19, el proceso de desarrollo de aplicaciones se ha convertido en el que presencia la máxima oportunidad de subcontratación: el 56% de las organizaciones de todo el mundo subcontratan sus requisitos de desarrollo.

La razón detrás de esta mayor demanda de subcontratación de las necesidades de desarrollo de aplicaciones móviles ha sido la misma de siempre: un costo más bajo que el que se tendría que pagar si se emplearan desarrolladores del propio país, lo que permite un mayor enfoque en el negocio principal y una mejor calidad de servicio.

Sin embargo, incluso con la subcontratación ocupando un lugar central en la industria del desarrollo de aplicaciones, hemos encontrado que hay algunas preocupaciones comunes que los clientes muestran cuando planean subcontratar su proyecto de desarrollo de software fuera de su país geográfico.

En este artículo, veremos cómo funciona Appinventiv con clientes en el extranjero utilizando el ciclo de desarrollo ágil distribuido que permite un proceso de trabajo más conectado con un modelo de remuneración y riesgo alineado en todos.

Pero antes de pasar a la parte en la que decimos cómo operamos como el equipo distribuido de nuestros clientes y trabajamos de manera tan fluida que nos convertimos en su equipo técnico interno extendido, es importante saber qué significa Equipo Agile Distribuido .

¿Qué queremos decir con equipo ágil distribuido ?  

Un equipo distribuido es un concepto que se utiliza para explicar el evento en el que dos o más equipos funcionan en varias ubicaciones geográficas en lugar de un espacio de oficina o incluso dos espacios de oficina en una ciudad.
El equipo ágil distribuido se basa en tecnologías digitales para interactuar sin problemas y trabajar juntos hacia el mismo objetivo: la entrega oportuna del proyecto.

¿Por qué las empresas invierten en un equipo distribuido de desarrollo de aplicaciones móviles?

Hay una serie de razones que impulsan a las empresas a invertir en equipos distribuidos, razones que van desde:

  1. La escasez de desarrolladores calificados en su nación
  2. La necesidad de probar el mercado antes de realizar una inversión para la formación del equipo.
  3. Aprovechar el beneficio del equipo flexible que se puede aumentar al momento de escalar la aplicación y disolverse cuando finaliza la necesidad.

Con la definición y la necesidad ahora atendidas, veamos ahora cómo funciona el equipo de Appinventiv como un equipo distribuido de nuestros clientes. Pero antes de saltar allí, veamos rápidamente cómo es nuestra típica estructura de equipo ágil distribuida :

Enfoque de Appinventiv para el desarrollo ágil distribuido  

Muchas veces recibimos un proyecto en el que el requisito nos obliga a trabajar en estrecha conexión con los FTE de los clientes. En tales casos, se vuelve muy importante que no dejemos que la distancia en miles de millas se interponga entre el trabajo y que podamos hacer cambios y tomar medidas en el proceso de desarrollo en tiempo real.

Cómo aseguramos la entrega oportuna sin alcances cero de retraso en la comunicación y malentendidos es una pregunta cuya respuesta se encuentra en la Metodología Agile Distribuida .

Compatible con empresas de pequeña y gran escala, seguir las mejores prácticas ágiles distribuidas es muy útil cuando tenemos que trabajar junto a un equipo que se encuentra en otra ubicación geográfica con una zona horaria absolutamente diferente.

Veamos el método de desarrollo ágil distribuido que aplicamos en nuestro proceso de desarrollo de aplicaciones móviles.

Una vez que hemos presentado a todos los miembros del equipo entre sí y hemos colaborado en el software de gestión de proyectos, comienza el trabajo real.

Formulamos el proceso de metodología Agile Scrum diario . Mientras que en su sentido tradicional, Scrum requiere una reunión cara a cara de 15 minutos donde cada participante comparte el estado de sus tareas e informa al equipo de las tareas que realizarán a continuación, es casi imposible seguir el mismo proceso cuando la mitad del equipo está sentado en alguna otra nación geográfica en alguna otra zona horaria.

Lo que hacemos para mantener viva la esencia de la interacción cara a cara en el scrum es realizar una videollamada en un momento determinado, que es adecuado para todos los miembros del equipo que trabajan en el proyecto. Con la ayuda de compartir la pantalla, nuestro Agile Scrum Master se ejecuta a través de la acumulación de sprint virtual con la ayuda de herramientas como Trello o Jira, lo que permite que cada miembro del equipo brinde una actualización sobre hacia dónde se dirige el proyecto.

Lo que hemos experimentado es que es muy importante dar acceso a todos los miembros del equipo a una plataforma de seguimiento de tareas que sea fácilmente accesible y actualizable. También enfatizamos el uso de una plataforma de comunicación como Skype o Slack para que todos compartan actualizaciones o pregunten sus dudas entre los dos períodos de tiempo de scrum.

Otro enfoque que seguimos para el proceso ágil y de scrum diario es que para cada scrum diferente, designamos un maestro de scrum. Entonces, cada equipo individual trabaja como un equipo scrum separado con un maestro scrum y un propietario del producto: un proceso que también se conoce como Scrum of Scrums.

En esto, todos los representantes de scrum brindan una respuesta a las siguientes preguntas en el scrum:

  • El trabajo que el equipo ha completado desde el último Scrum de Scrums
  • El equipo de trabajo tiene previsto hacer antes de la próxima reunión de Scrum of Scrums
  • El bloqueador actual que enfrenta el equipo
  • El bloqueador que puede llevar a otro equipo Scrum.

El método permite que todas las personas principales que trabajan en el proyecto interactúen entre sí directamente, algo que siempre se traduce en dedicación desde la etapa de iniciación hasta el período de lanzamiento. Esto asegura una comunicación abierta, clara y transparente entre todos los equipos, donde todos tienen voz.
El proceso aparte del scrum de scrums es el mismo que seguimos bajo la típica metodología Agile.
Pero el mero hecho de que la distancia entre nuestro equipo y el equipo de nuestros clientes sea muy grande y, sin embargo, tenemos que trabajar de la mejor manera posible, ha traído una serie de aprendizajes que hemos impulsado con la adopción de Distributed Agile. Veamos cuáles son esos aprendizajes:

Los aprendizajes que obtuvimos al trabajar en el proceso de desarrollo ágil distribuido

1. La creación de un equipo distribuido se trata de construir una cultura y no un proceso

Lo que define el éxito de un proyecto que trabaja bajo el enfoque ágil para equipos distribuidos no depende de qué tan bien capacitados estén los miembros del equipo, sino qué tan bien pueden trabajar juntos, el sentido de propiedad con el que trabajan y, en última instancia, cómo estrechamente alineados están con el objetivo del proyecto, algo que viene con la cultura y no con un proceso de formación.

2. Solo los proyectos SMART tienen éxito

Cuando un proyecto debe ser completado por un equipo que ni siquiera está en el mismo país y mucho menos en la oficina, es muy importante que los objetivos que ha establecido para el proyecto sigan el SMART: específico, medible, alcanzable, realista y de tiempo. -enmarcado, concepto a la t.

3. No existe una alternativa a las herramientas de colaboración en línea

No importa cuánto le cueste, tendrá que confiar en las herramientas de colaboración en línea que son en tiempo real y tienen retrasos mínimos o nulos. En cuanto a la finalización de las plataformas de comunicación y gestión de proyectos en línea, de ninguna manera puede reducir la holgura. Deberá asegurarse de que sean técnicamente capaces de manejar sus requisitos.

Ahora que hemos visto los aprendizajes que hemos obtenido de nuestra amplia experiencia laboral como equipo distribuido, es hora de analizar algunos de los desafíos que encontramos durante el proceso y cómo los resolvimos para convertirnos en una aplicación Agile distribuida confiable. Empresa de desarrollo .

Desafíos con el enfoque de desarrollo ágil distribuido y cómo los resolvemos

1. Diferencia en la cultura

Por lo general , el enfoque de desarrollo de software ágil distribuido requiere trabajar con equipos que provienen de diferentes orígenes culturales. Esta diferencia provoca fricciones debido a los diferentes valores y figuras retóricas.
Nuestra solución: Trabajamos muy de cerca con el equipo del cliente en los primeros días para que nos acostumbremos a sus entrelíneas y contextos.

2. Una diferencia en las zonas horarias

El quid de la metodología ágil distribuida son los equipos que trabajan en diferentes países geográficos. En una situación como esta, es muy común que surja una brecha de comunicación debido a la diferencia horaria.
Nuestra solución: Seguimos el concepto de ágil para un equipo distribuido hasta la médula. Fijamos un horario en el que los equipos de todas las naciones estén presentes y activos. Para lograr un enfoque y una atención completos, les pedimos a nuestros compañeros de equipo que cambien el horario de su oficina el día del scrum, para que duerman bien y estén atentos.

3. Falta de una idea común de 'panorama general'

Debido a la diferencia en la ubicación geográfica, la estructura de trabajo y las políticas, puede haber una discrepancia en la idea del panorama general: el objetivo final de la aplicación móvil. Esta diferencia puede provocar una falta de interés por parte de algunos miembros del equipo y un mayor interés por parte de otros.
Nuestra solución: una reunión de visión al inicio del proyecto y un recordatorio en cada scrum, para que todos trabajen hacia el mismo objetivo.

4. Ausencia de propiedad del código

La ausencia de propiedad colectiva del código significa que ninguna persona posee el código, es propiedad de todo el equipo y, por lo tanto, cuando algo sale mal, comienza el juego de la culpa.
Nuestra Solución: Aplicamos un sistema de control de versiones para verificar quién está trabajando en un código y cuándo y el efecto del mismo. De esta manera, hay total transparencia y honestidad en la imagen.

Entonces, esta es la historia de cómo nosotros en Appinventiv, nos hemos convertido en un equipo distribuido de clientes que pertenecen a todas partes del mundo.
¿Quiere hablar sobre cómo aumentar el nivel de su desarrollo de software ágil distribuido? Póngase en contacto con nuestros estrategas de aplicaciones móviles.