Desafíos intangibles del desarrollo de software 3/3

Con este post cerramos nuestra serie de reflexiones sobre esfuerzos y desafíos importantes que tienen los proyectos de desarrollo de software, muchos de los cuáles el cliente no los ve; pero influyen en la calidad general y el nivel de satisfacción final por el proyecto que pagó.

En los posts anteriores comentamos la Frase 1 y Frase 2, comunes en el ámbito del desarrollo de software; para finalizar la serie con la última :

Frase 3: Voy a cambiar de tecnología, porque no estamos avanzando con el lenguaje X y hoy en día en Silicon Valley todos usan el lenguaje Z

  1. ¿Es realmente "el lenguaje" tu problema o es el equipo o es la comunicación (incluyendo gente fuera del ámbito de TI)?

  2. ¿Decidirías construir de cero todo sobre vidrio y metal porque es la moda en el primer mundo (con un clima y mercado de la construcción diferentes al nuestro)? ¿O preferirías ir por las construcciones que sabes funcionan para nuestro clima, con proveedores de las materias prima exactas y la mano de obra disponible en plaza?

  • ¿Cuál es el presupuesto de TI de las empresas con las que te estás comparando?

  • ¿Cuánta mano de obra calificada puedes conseguir en comparación con el mercado en el cual existe ese éxito al que tu aspiras?

  • ¿Cuál es tu plazo para llegar al mercado?

Poniendo de ejemplo las dos tecnologías mobile más populares: Android e iOS; ambas plataformas han apoyado cambios drásticos de tecnología

Android: Java -> Kotlin
iOS: Objective C -> Swift

Si eres una startup que inicia y tienes uno o dos proyectos; y la mayoría de sus empleados son menores de 30 años; es probable que el cambio no sea muy dramático.

  • ¿Qué pasa si tienes 15 proyectos o 30 o 50 corriendo en las tecnologías recientemente declaradas “legacy” por los fabricantes?
  • ¿Cuánta documentación hay sobre la nueva tecnología?
  • ¿Cuántos cursos con buenas recomendaciones diponibles?
  • ¿Cuántos proyectos opensource que puedan usarse para estudio?
  • ¿Cuántos expertos en la empresa manejan el lenguaje para poder colaborar con pair/code review?

Años de know-how; librerías, proyectos o funcionalidades base; gente entrenada y experta en una tecnología deben ser reemplazadas o re-entrenadas.

Financieramente eso le hará tambalear a cualquier empresa, así como por supuesto afectará la calidad de lo que se produzca en la parte ascendente de la curva de aprendizaje.

Estamos convencidos de que la calidad de los profesionales y empresas de TI de Paraguay está a la par de los mejores del mundo. Nuestra presencia internacional, empresas amigas, colegas paraguayos o formados en Paraguay trabajando en las empresas top de TI lo demuestran.

TI en Paraguay está para las grandes ligas.

Estar con el bleeding edge de la tecnología; no significa usar lo más nuevo siempre; sino sacar el mejor provecho de la tecnología adecuada a tu realidad, a la de tu entorno y a la de tu cliente.

El cambio de una tecnología clave para un proyecto es una decisión que no debe ser tomada a la ligera, debe ser: justificada, planificada y ejecutada por etapas.

Las empresas de tecnología líderes del mundo, prueban y usan un poco de todo; pero para grandes exigencias confían en unos pocos lenguajes.

C y C++ siguen siendo LOS lenguajes, para producir sistemas operativos, controles automáticos de hardware, navegadores de internet; en síntesis la base de TODO lo que usamos a diario.

Recordemos algunos casos famosos de patinadas con tecnologías nuevas

  • Twitter (siendo uno de los principales colaboradores de Ruby), decidió migrar a Java porque el lenguaje no tenía la suficiente madurez para las exigencias del negocio;
  • Dropbox siendo ya una exitosa empresa, tuvo que contratar al creador de Python para resolver sus problemas de performance;
  • Facebook abandonó Parse poco después de adquirir la plataforma MBaaS;
  • Varios proyectos de Google dejados en el tintero o que nunca despegaron (Buzz, Dart, AngularJS, Wave, Google+, etc.); los casos de Google son emblemáticos, para no asociar su marca con fracasos; crearon Alphabet;
  • Airbnb está dejando React Native como plataforma para sus apps mobile.

Nuevo no es sinónimo de mejor

Ningún lenguaje que esté entre los 5 más usados en el mundo, tiene menos de 17 años (El más joven es Visual Basic.net con 17 años).

Mucho ojo con tu decisión, cuando la tecnología de la información ya es una parte importantísima en tu negocio; ¿arriesgarías tu inversión a una moda o irías por algo que está probado, es seguro y es activamente mantenido por sponsors y por una comunidad?

La figura se amplía si estás buscando un producto disruptive; donde el time-to-market es tu driver y la calidad o estabilidad del producto es negociable. Ahí tendrás probablemente más espacio para improvisar con lo que está de moda, te permita salir rápido al mercado para validar tu hipótesis de negocio, con una tecnología que además es un buzzword y ayudará a que tu producto haga más ruido.

La tecnología debe ser un facilitador, no un obstáculo.

XKCD Standards: https://xkcd.com/927/

En esas circunstancias usás lo que te funcione rápido, luzca diferente y tu equipo de investigación conozca y pueda quitar lo antes posible tu idea al mercado.

No dejes que lo perfecto o novedoso, se convierta en enemigo de algo suficientemente bueno

En nuestra experiencia, sólo la tecnología no es la que hará la diferencia para el éxito de tu negocio ni para que tus clientes te elijan.

Con el debido proceso de selección de tecnologías, herramientas de comunicación y seguimiento de proyectos podrás obtener un gran beneficio para tu negocio.

En Sodep ayudamos a nuestros clientes a convertirse en mejores versiones de su negocio con la ayuda de TI, nuestro objetivo es acompañar su crecimiento; aportando nuestra experiencia y conocimiento a que las herramientas de TI se conviertan en un aliado más para conseguir sus objetivos.

Conocemos la forma apropiada de combinar experiencia y tecnologías de punta, mezclando cautela con innovación.