Agile para proyectos de software externalizados

El desarrollo distribuido es una alternativa popular para desarrollar software. La forma más común de hacerlo recurre a la externalización, principalmente para reducir costos y asegurar que los proyectos se completen a tiempo.
La metodología ágil puede ser excelente para los proyectos externalizados, pero hay que considerar las diferencias de ubicación, idioma y cultura.
En Sophilabs, basándonos en nuestra experiencia como empresa de desarrollo nearshore, creemos que Agile ayuda de varias maneras a los equipos de desarrollo a gestionar mejor sus proyectos externalizados.
En este artículo hablaremos de la metodología ágil y la externalización como componentes importantes del proceso actual de desarrollo de software.
Prácticas ágiles
Agile no es solo un nuevo enfoque para el desarrollo de software: representa un cambio cultural significativo respecto de la disciplina y la planificación, centrado en mejorar los procesos.
Esta metodología de desarrollo se enfoca en la satisfacción del cliente y la autonomía de los empleados.
Esto se expresa claramente en el manifiesto ágil, que incluye declaraciones contundentes sobre mantener la satisfacción del cliente, como:
-
Aceptar cambios en los requisitos, incluso en etapas tardías del desarrollo
-
Las mejores arquitecturas, requisitos y diseños surgen de equipos que se organizan por sí mismos.
Los principios ágiles son directos, claros y bastante atractivos. La mejor manera de implementar Agile en toda tu organización es comenzar con un proyecto pequeño y evaluar los comentarios. Luego puedes empezar a aplicarlo a otros proyectos.
Con los procesos ágiles, se requiere una planificación detallada para la siguiente iteración. Esta perspectiva de planificación a corto plazo permite a los proveedores externos preparar un plan para una iteración de 2-6 semanas, entregar parte de la funcionalidad de una solución y luego planificar una nueva iteración.
Externalización de proyectos de software
Aunque externalizar no necesariamente equivale a desarrollar un proyecto de software mediante nearshoring, la disponibilidad de personal calificado y las ventajas económicas han hecho que ambos sean equivalentes a efectos prácticos.
La externalización nearshore y offshore tiene similitudes, pero también diferencias clave que ya exploramos en detalle. El desarrollo de software offshore tiene una clara ventaja económica, ya que las tarifas por hora tienden a ser más bajas, pero las grandes diferencias de zonas horarias dificultan mucho la comunicación.
Varios estudios han mostrado que la externalización mejora la productividad y no provoca pérdida de empleos y, más importante aún, que genera valor**. El principal motivo para externalizar es mantener bajos los costos, pero hay otros beneficios destacados, como la capacidad de abordar proyectos más grandes o ampliar mercados.
La mayoría de las empresas externalizan por la calidad del talento de desarrollo que pueden encontrar.
Distancia cultural
El desarrollo ágil representa un cambio significativo en la cultura de trabajo de tu empresa. En el desarrollo ágil no hay procesos ni herramientas prescritos; en cambio, los valores y principios guían el ciclo de vida del desarrollo de software.
La cultura es muy importante porque las diferencias culturales y su impacto en el trabajo cotidiano de los equipos a distancia pueden sorprender a sus integrantes. Estas diferencias importan.
En un entorno distribuido, la empresa que externaliza, por ejemplo una con sede en EE. UU., debe compartir sus valores culturales con la empresa contratada, por ejemplo una con sede en Latinoamérica.
Las similitudes culturales entre las empresas de Uruguay y EE. UU. se extienden a enfoques empresariales y estilos de trabajo idénticos, por lo que resulta fácil para los desarrolladores de ambos países colaborar.
Los ingenieros de software latinoamericanos parecen ser más creativos y asertivos, y ven las relaciones comerciales más como asociaciones que como relaciones jerárquicas entre trabajador y cliente. Por eso, a las empresas les conviene considerar Latinoamérica como destino para externalizar sus proyectos de desarrollo, lograr mejores resultados y construir relaciones significativas.
Hoy, muchas empresas importantes con sede en EE. UU. buscan empresas de desarrollo de software nearshore en Latinoamérica como posibles centros para sus futuros proyectos de desarrollo.
Distancia temporal y geográfica
A diferencia de la imagen popular de los desarrolladores de software como personas relativamente introvertidas y aisladas, en realidad dedican gran parte de su tiempo a comunicarse. Es probable que la distancia temporal reduzca la comunicación, que es un ingrediente crítico de las prácticas ágiles.
Cuando son las 9 a. m. en Nueva York, son las 10 a. m. en Montevideo, por lo que la diferencia horaria es insignificante.
Una diferencia horaria reducida asegura respuestas rápidas entre los equipos y una comunicación muy sincronizada, lo que permite resolver problemas con rapidez. La comunicación suele verse afectada por grandes diferencias de zonas horarias, y externalizar a países latinoamericanos elimina este problema por completo.
En cuanto al idioma, los países latinoamericanos superan a los asiáticos en dominio del inglés, y esta es una de las principales razones por las que las empresas estadounidenses eligen externalizar a Latinoamérica.
Valores ágiles y desarrollo externo
El manifiesto ágil enumera cuatro valores fundamentales que deberían guiar el desarrollo de software.
1. Individuos e interacciones por encima de procesos y herramientas
Las prácticas ágiles mejoran la comunicación organizacional al facilitar interacciones informales. En el desarrollo ágil distribuido, la comunicación cara a cara puede sustituirse por comunicación virtual y seguir generando el mismo sentimiento de equipo.
Esto quedó claro durante el último año. Aunque algunas empresas dudaban en permitir el trabajo remoto hasta que el coronavirus las obligó, es evidente que, cuando se hace bien, trabajar de forma remota ofrece ventajas reales a las empresas. Lo mismo puede decirse del nearshoring.
2. Software funcionando por encima de documentación exhaustiva
La premisa básica de externalizar es que un proyecto puede realizarse más rápido y a menor costo. Por eso, es probable que el objetivo de tener software funcionando se alcance antes. Los factores temporales pueden reducir la comunicación al externalizar offshore, pero esto no es un problema con equipos de desarrollo de software que trabajan en zonas horarias similares.
3. Colaboración con el cliente por encima de negociación contractual
Es probable que el cliente y el proveedor estén vinculados por un contrato. Al elegir a tu socio de desarrollo, es importante que la empresa sea lo suficientemente grande para dar soporte a proyectos de manera habitual
4. Responder al cambio por encima de seguir un plan
La respuesta a los cambios propuestos dependerá de diferentes factores, como la relación con el cliente que externaliza y el grado en que comparten la cultura ágil.
Por qué Agile es excelente para el desarrollo externo de software
Al trabajar con Agile, los resultados de cada iteración pueden analizarse fácilmente para evaluar regularmente el progreso del proyecto. Cuando queda claro que se necesitan cambios, pueden proponerse e implementarse sobre la marcha.
Con esta metodología, la gestión de proyectos es más fácil y eficaz. La flexibilidad para implementar cambios, incluso en equipos multifuncionales, la convierte en una excelente opción frente a otras metodologías.
La naturaleza flexible del desarrollo ágil permite a los proveedores enriquecer la gestión de proyectos externalizados e implementar mejoras continuas en el rendimiento de los equipos de desarrollo. Después de una iteración, el gerente de proyectos puede analizar el rendimiento del equipo, identificar sus debilidades e intentar superarlas en la siguiente iteración.
Además, a partir del rendimiento individual durante las iteraciones, los líderes pueden identificar a los integrantes que no mantienen el ritmo de trabajo requerido y, como opción, reemplazarlos por personal más adecuado para asegurar que los objetivos de la colaboración externa se alcancen a tiempo y dentro del presupuesto.
El desarrollo ágil de software es muy eficaz porque puede ayudar a los equipos a lograr mayor concentración y productividad.
En sophilabs seguimos la metodología en nuestro **proceso de desarrollo **y aplicamos prácticas de Scrum, Kanban y XP.