Insights

Tercerización del desarrollo de software: 5 riesgos comunes

Con una economía que se globaliza y una tecnología que evoluciona constantemente, a muchas empresas les resulta cada vez más difícil desarrollar internamente todo el abanico de soluciones de software. Se ven obligadas a mantener una ventaja competitiva optimizando continuamente su eficiencia operativa, mejorando la atención al cliente y llevando nuevos productos al mercado.

La respuesta a estos desafíos es el equipo adecuado de desarrolladores de software, que no sólo asegure la calidad del producto final, sino que también se concentre en tus objetivos y metas generales de negocio. Y ese equipo ideal no tiene que ser interno.

A veces, la decisión más sensata es tercerizar el desarrollo de software mientras mantienes el foco en tus estrategias principales. Un buen socio puede ayudarte a superar desafíos difíciles de la tercerización al aportar a tu proyecto las habilidades y la experiencia colectiva de sus distintos proyectos y clientes anteriores.

Tercerización del desarrollo de software: 5 riesgos comunes - y cómo evitarlos

Algunos riesgos de la tercerización son riesgos comerciales habituales, con la complicación adicional de que no ocurren bajo el mismo techo. Otros tienen más que ver con elegir al proveedor adecuado. Es esencial que sepas qué riesgos vigilar al tercerizar un proyecto de software y cómo evitar los problemas comunes.

Basar las decisiones en el precio al elegir tu socio de tercerización

La tercerización puede ser una solución muy rentable para que las pequeñas empresas cubran sus necesidades de desarrollo de software, pero sigue costando dinero. Las empresas con un presupuesto especialmente ajustado suelen filtrar sus opciones de programadores según el precio y, lamentablemente, a menudo eligen las más baratas.

El problema de usar el precio para decidir qué empresa de desarrollo de software contratar es que podrías estar sacrificando valor. Por difícil que sea aceptarlo, las mejores cosas de la vida no siempre son gratis. A veces, realmente recibes lo que pagas.

Los pocos dólares adicionales que ahorraste no importarán a largo plazo si terminas tercerizando tus necesidades de programación a un programador descuidado y sin experiencia que perjudique o retrase tu proyecto. Por eso, el ahorro de costos puede llevar a una mala calidad.

No construir vínculos sólidos de comunicación

En los proyectos tercerizados, la comunicación puede ser difícil. Como los desarrolladores no trabajan en el mismo edificio, cuesta comunicarles comentarios con regularidad. Además, hay varios factores que considerar, como superar los problemas asociados con distintas zonas horarias, idiomas y normas culturales.

La comunicación efectiva es una habilidad, mientras que el inglés es sólo un idioma. Al comunicarte con desarrolladores externos, comprender los requisitos del proyecto y tener claridad sobre los entregables son los factores más importantes.

Un buen consejo para evitar este problema es establecer vínculos sólidos de comunicación desde el principio. Asegúrate de trabajar con proveedores que sean proactivos respecto de los horarios de reunión. Usar herramientas de colaboración como Slack o Asana, mantener contacto habitual con el equipo remoto por video o audio y realizar reuniones stand-up a intervalos regulares son buenas prácticas para establecer canales de comunicación con el equipo de desarrollo tercerizado.

Designa a un responsable de producto que esté disponible para responder preguntas y sea el punto de contacto entre tu empresa y los desarrolladores. Anímalo a darte información sobre el proyecto con regularidad para que, si ocurre algún contratiempo, al menos lo sepas.

Establecer expectativas poco realistas

Este error es bastante común entre los dueños de negocios que son relativamente nuevos en el desarrollo de software. Tienen una visión de cómo quieren que funcione su aplicación y cómo quieren que atienda a sus consumidores. Conocen las capacidades de programadores talentosos y competentes, y quedan impresionados. Por eso, fijan sus expectativas en un nivel que simplemente no es viable o práctico.

Contratar a un programador externo no es lo mismo que contratar a un mago: no puede hacer aparecer de la nada la aplicación exacta que imaginaste. Las ideas vagas y los conceptos generales son buenos puntos de partida, pero necesitas agregar detalles y especificaciones si quieres que la aplicación funcione realmente. Por lo tanto, al contratar a un programador, no te limites a describir lo que quieres, pagar y esperar algo increíble.

No entender el alcance del proyecto

Debes ser claro sobre tu proyecto tercerizado, porque muchas empresas tienen visiones e ideas que no pueden concretarse sin toda la información. Algunas comparten pequeños fragmentos de información por miedo a que un proveedor sepa demasiado. La falta de una visión completa lleva a un producto insatisfactorio.

Los temores son comprensibles, sin duda. Sin embargo, para satisfacer a ambas partes, las cláusulas de confidencialidad o de no competencia protegen la información confidencial y la competitividad. Como cliente, siempre tendrías el derecho de incluir protección de la propiedad intelectual en tu contrato, y las empresas pueden cumplirla. No debería haber excusas que impidan compartir con nosotros el alcance completo del proyecto, porque sin él no podríamos asignar las habilidades adecuadas para cumplir tus expectativas.

Desafíos de calidad del código

Determinar si el equipo de desarrollo tercerizado cumple los estándares de calidad al programar tu aplicación es un desafío que se amplifica cuando trabajas en una empresa no tecnológica, o la diriges, sin contar con experiencia significativa en programación. La calidad del código es un término ambiguo, ya que podría decirse que no existen definiciones estrictas de código de alta y baja calidad.

La calidad del código es un conjunto de atributos que hay que comunicar al equipo de desarrollo tercerizado. Según mi experiencia, el buen código debe tener dos cualidades clave: claridad y facilidad de mantenimiento.

Para el éxito a largo plazo y la ejecución sin errores, es crucial que el código esté bien documentado y probado y siga las buenas prácticas de formato y las convenciones del lenguaje de programación en el que se escribe la aplicación (o que se acerque tanto a una ejecución sin errores como razonablemente se pueda esperar. No se pueden eliminar todos.)

Mantener la calidad del código al tercerizar el desarrollo a equipos offshore requiere comunicar las expectativas, establecer de antemano los parámetros de calidad y tener reuniones informativas regulares con el equipo para seguir de cerca el trabajo de desarrollo.

El equipo al que tercerizas debería contar con controles para asegurar una calidad de código consistente.

Conclusión

La tercerización permite satisfacer las demandas de creación y actualización de software. Por eso, no es un proyecto de una sola vez, sino un proceso recurrente de largo plazo. Elegir un proveedor o una agencia de software requiere mucha reflexión y una selección cuidadosa. Un buen proveedor debería entender tu visión y estar dispuesto a ayudarte a alcanzarla.

Aunque siempre habrá desafíos y dificultades en la tercerización del software durante el camino hacia un proyecto exitoso, como en cualquier otro negocio, para muchas empresas sus beneficios superan los riesgos. Un socio dedicado al desarrollo de software y con buenas habilidades puede asegurar un desarrollo más rápido, económico y sencillo de tu proyecto.

“Tercerización del desarrollo de software: 5 riesgos comunes” by Gimena Aguerreberry is licensed under CC BY SA. Source code examples are licensed under MIT.

Foto de Daria Nepriakhina.

Categorized under Desarrollo de software.

Related reading