Mi experiencia con equipos remotos en países en vías de desarrollo.

Me llamo Juan Vilar, soy el Operations Officer de Hamro Dev y coordino a equipos de desarrollo esparcidos por todo el mundo desarrollando proyectos informáticos. Viví un año en Nepal. Comencé como voluntario, ayudando a reconstruir colegios destrozados por el terremoto de 2015 con esta ONG americana. Después de viajar por el país y conocer su cultura y su forma de pensar, comencé a trabajar en Hamro Dev y en la idea de trabajar como un consultor informático para empresas que quieren ver crecer su negocio a través de internet.


Vivir un año en Nepal me ha permitido tener un conocimiento muy amplio sobre como funcionan los sectores tecnológicos en países en vías de desarrollo. Lo cierto es que ya había trabajado anteriormente con equipos en este tipo de entornos, y siempre me quedé opiniones mixtas tanto para bien como para mal. Por ello he querido escribir esta experiencia para poder compartirla con vosotros y comparar un poco la diferencia entre un desarrollador que cobra $100 por hora o más, y contratar a un desarrollador por $15 - $30.

Soujanya Ganapathy helping rebuild schools in Nepal

Mucho talento, muy mala organización.


A medida que fui adquiriendo experiencia en el País fui entendiendo donde estaba su problema o su mayor cuello de botella. A lo largo de mi estancia en el país pude comprender que allí, al igual que aquí, hay talento y a raudales. Lo notaba a diario en todas partes. Desde taxistas que trabajaban de sol a sol y siempre con una sonrisa de oreja a oreja y un trato especial a los turistas durante todo el trayecto, sin importar las horribles horas de tráfico de Katmandú o la contaminación del aire. Lo notaba en la calidad que tenían los grafitis que inundaban la ciudad tapando viejos muros con arte vivo y en movimiento. Lo notaba en lo bonitos y trabajados que estaban los tatuajes que se hacían las personas, o en algunos de los productos típicos que se vendían de forma artesanal en muchas de las tiendas.

Un grafiti en Nepal

Ahora, viendo el caos que había en las ciudades en cuanto a tráfico y como conducían, pude aprender un poco que el primer problema con el que se topa un emprendedor en un país como Nepal es la visión cortoplacista que se tiene , así como un pensamiento poco cívico sobre su sociedad.  


En una sociedad así, es complicado poder introducir ideas que crezcan en la sociedad a largo plazo.  Si ya nos cuesta aquí en España, donde tenemos la suerte de disponer de muchas herramientas de un estado de derecho sofisticado y moderno, imaginaos en un país que hace relativamente poco que salió de una guerra civil o donde no ha habido gran progreso tecnológico en los penúltimos 20 años.


Es complicado darle valor a la innovación tecnológica en un país así. Por lo general cuando un país sufre un atraso social generalizado , este retraso se propaga también en diferentes aspectos del país. 


Lo que yo noté fué  una sociedad similar a la España de la postguerra , pero con ipads e iphones. Una sociedad muy conservadora y arraigada en sus tradiciones, pero polarizada por la entrada de las nuevas tecnologías que han tenido una penetración muy grande en la población más joven del país.


Y esto es algo normal.  ¿A quien no le gustan los gadgets tecnológicos y los teléfonos inteligentes? Al igual que aquí, también allí les hacía la vida más fácil. Una de las estampas que más me llamó la atención que había una relativamente gran parte de la población que estando en poblados relativamente remotos seguían teniendo smartphones y jugaban a juegos como el Candy Crush o el Clash of Clans.


Las empresas tecnológicas saben de esto, y supongo que es por eso por lo que ahora mismo, por ejemplo en India, el segundo Sistema Operativo por excelencia en el mercado de móviles no es iOS sino Kai OS (una versión modificada de Firefox OS para correr en terminales de gama baja y sin pantalla táctil). Los mercados emergentes tienen mucho espacio para este tipo de terminales y dispositivos, y Kai OS corre en teléfonos que ofrecen acceso a redes 3G y 4G por precios inferiores a 30€por terminal, y pagándo una media de 1 o 2 euros al mes en tener datos.

A nivel de front-end, hay DIFERENTES ESTÁNDARES DE CALIDAD.


Si bien es cierto que por lo general, el precio de desarrollo no se traduce necesariamente en una buena calidad de desarrollo de software (como ya comentamos una vez en una de nuestras entradas). He conocido a equipos freelancers que han trabajado bien y mal sin importar de donde han venido. Así en resumen  , me atrevería a decir que en cuanto a lo referente al desarrollo de tecnologías de front-end, hay diferentes estándares de calidad.


Es fácil imaginarse el por qué. Poner mucho énfasis en la fase de diseño es algo que ha tardado bastante en penetrar el mundo del desarrollo web y del diseño de apps.  Al menos a mi, me ha resultado difícil conseguir buenos diseñadores y desarrolladores de front-end en este tipo de países. Y no hablo solo de no utilizar patrones de desarrollo como el modelo vista - controlador , sino una enorme falta de coordinación entre el diseño del Front end y el Middleware o Backend. Me imagino que se programa como podrían programar en los Estados Unidos antes de la crisis del software.  No he notado tanto énfasis en estos equipos en ver el producto como una visión acabada para el usuario.


Una parte de la razón de esto, es que los usuarios en general son menos exigentes para este tipo de apps en estos países que en otros lugares donde el público es más exigente. Por ejemplo, en España una app donde tienes que intentar registrarte dos o tres veces porque no funciona a la primera, se llevaría 1 o 2 estrellas por el 90% de los usuarios, mientras que esta app en un país como India o Colombia podría tener una valoración media de 3 estrellas pese a los defectos y fallos de programación.

Lugar de limpieza y recolecta de agua. Muy útil durante los monzones.

Las mayores fuentes de conocimiento en el desarrollo software suelen ser grandes empresas que ya están establecidas en el país así como las universidades donde se enseñan los últimos avances y clases de desarrollo software.


Y es normal, la mano de obra en estos países es muy barata, y a menudo son un buen recurso de tener a mano porque la mayoría de equipos de desarrollo en los países desarrollados ya van a tope de faena y puede resultar difícil encontrar a un equipo libre que esté dispuesto a invertir su tiempo en tu proyecto. Muchas empresas ya conocen esto y el outsourcing digital para trabajos de desarrollo software en países como China o India donde el coste de la vida es más barato que en ciudades como San Francisco, Nueva York o Londres.


Por lo general, supervisión, caos y ganas de aprender.


 Uno de mis seres queridos trabajó para IBM como director en la India durante la década de los años 90 y si hay algo que nos contó de su trabajo allí es que es necesario estar encima de ellos para todo. A menudo su formación no ha sido acompañada de unas prácticas bien remuneradas y hacen lo que pueden. 


De nuevo, hay de todo, recuerdo una vez haber trabajado con un equipo de front end y un equipo de back-end para un proyecto relativamente importante. Al paso de un mes de haberles dejado libertad de trabajo (craso error) descubrí que por alguna razón habían decidido hacer caso a uno de los front-end (quien supuestamente tenía más experiencia en desarrollo de apps móviles) y  este había tomado todas las decisiones de arquitectura para que el equipo de front-end tuviese que hacer literalmente el mínimo esfuerzo. Si eres informático entenderás por ejemplo, la decisión de procesar el formato de la hora en el Back-end para pasarla formateada al front-end . Este "ingeniero" exigió al Back-end que le pasase la fecha ya formateada (por ejemplo, en lugar de pasar la fecha exacta o el horario unix y procesarlo en el front-end, forzó al back-end a pasar la fecha ya formateada ("hace cinco segundos", "Five seconds ago") al Front-end sin tener en cuenta que la app debía de ser multi idioma. Para cuando llevábamos  1 mes y medio empezamos a ver un montón de fallos de acoplamiento entre los diferentes módulos de la app y para cuando nos dimos cuenta de quien estaba causando todos los fallos (y pudimos corregirlos) tuvimos dos semanas de retraso en la entrega de ese proyecto. ¿Por qué eligió el diseñador de Front-end en vez del experimentado en Back-end (quien entendía cómo estaba desarrollado todo el sistema y la base de datos).

La otra cara de la moneda.


Algo que he podido comprobar también en estos países es que la desigualdad económica ha abierto una brecha enorme entre la gente rica y familias con dinero y aquellas que no lo tienen. De nuevo, esta polarización juega en contra del país. Por ejemplo, en Nepal el sistema de castas -aunque cada vez más en desuso- sigue teniendo mucha presencia en la sociedad, y a menudo la toma de decisiones entre algunos cabecillas de diferentes equipos está basado no tanto en la capacidad que tiene una persona en tomar decisiones, sino en la casta de la que proviene cada uno, o de la amistad que tiene cada persona con el jefe o el líder general del proyecto. A veces también ocurre que la persona responsable estudió informática hace 10 o 15 años, y dado que a menudo se trata de sociedades tan arraigadas en la costumbre y en la tradición , este tipo de pensamiento se traslada también a sus trabajos. Estas personas pueden tomar decisiones sin tener en cuenta los nuevos avances tecnológicos ni las nuevas formas más óptimas de pensamiento , solamente por que se encuentran chapados a la antigua.



Abuso generalizado de los sueldos de los empleados.


Otra cosa que también noté que estaba muy extendido era el abuso generalizado de los puestos directivos sobre los mandos intermedios. En el caso de una empresa bastante grande (con más de 100 empleados) en Nepal que trataba proyectos de varios millones de dólares con sus programadores, a los que pagaba entre 200 y 300 euros al mes (algo que te permite vivir cómodamente, pero no es ni de lejos un buen sueldo para Nepal). Cuando he tenido que trabajar como intermediario entre un equipo de desarrollo de un proyecto pre existente y un cliente que requería de mi ayuda, tratar de mediar con los programadores resulta ser algo muy complicado por el poco esfuerzo que le ponían. Y es normal, por esos sueldos me resultaba difícil exigirles un poco más de profesionalidad o de atención al detalle.  Todo cuanto hacía era agrandar la brecha entre los puestos directivos y los trabajadores.

otra imagen de nepal.

Otro ejemplo puede ser por ejemplo, el ritmo de trabajos completados de forma equivocada o de proyectos que no se han llegado a completar en plataformas como Workana o Freelancer , que son hervideros de este tipo de empresas. Bajo mi experiencia, a través de estas plataformas es sencillo encontrarse con freelancers muy profesionales que realizan grandes trabajos así como compañías o empresas que venden sus servicios a cualquier precio.


Recuerdo un día haber utilizado una de estas plataformas para publicar un proyecto en Español con la esperanza de encontrar a algún freelancer con buena reputación para poder realizar correctamente el trabajo. Uno de los requisitos que puse fue que era necesario hablar Español (acotando el campo de trabajo a España y Latino américa). Una especificación de doce páginas de largo con todos los detalles del proyecto y al cabo de 2 minutos recibí dos propuestas bien detalladas por un precio muy bajo. Ambas propuestas de Pakistán y de Rajistán (al norte de la India). Al principio me sorprendió la capacidad que habían tenido estas personas de entender el proyecto y de hablar Español en esa región del planeta , pero al poco tiempo descubrí cual era el embrujo. No tenían ni idea de hablar Español y sencillamente pujaban a la baja para obtener el proyecto.

Prácticas malas, pero también prácticas muy buenas.


Cuando los mandos directivos son inútiles, estas empresas están condenadas al fracaso y si no se va con cuidado a la hora de elegir desarrollador lo barato puede salir caro y sobretodo en este mundo.


Pero cuando se daban este tipo de casos, siempre me ha sorprendido ,sobretodo con freelancers, el empeño y la dedicación que le ponen así como las ganas de aprender. Cuando a menudo sabían que habían fallado siempre les notaba dispuestos a escuchar un argumento bien explicado y a aprender de el. Sobretodo la gente joven, que a nivel de programación todavía no ha cogido los malos vicios de desarrollo software y que tienen muchas ganas de aprender y de jugar en las ligas de desarrollo europeas y americanas.


Muy a menudo he notado a freelancers muy frustrados con la forma de llevar las cosas de sus empresas y de sus jefes, y cuando les presentas una forma de trabajo bien estructurada y mejor, con mejores avances tecnológicos, a menudo son ellos quienes me han acabado sorprendiendo aprendiendo en poco tiempo, demostrando poco a poco ser responsables y ganando independencia y poniendo ideas cada vez más innovadoras.


Aquí como en todo, quien quiere aprender y a quien le gusta su trabajo aprende y acaba enseñando. Al final del día lo que más he notado que es mejor para ellos es que noten un buen trato hacia ellos y la posibilidad de escalar en algo más novedoso que lo que ellos estaban acostumbrados.

Holi

El talento está a la orden del día, e internet nos abre un mundo de posibilidades para lograr encontrarlo.


Qué esperar, qué es lo bueno y qué es lo malo. 


Odio generalizar, pues de nuevo tengo que insistir en que puedes encontrarte de todo en todas partes , pero lo que más se suele sacrificar en estos proyectos es la estructuración de código (sobretodo en el front end). La necesidad de refactorizar fragmentos de código tras las primeras revisiones suele ser bastante elevada en muchos de los proyectos llevados a cabo por estos equipos.  El tiempo de desarrollo a menudo tampoco suele ser muy acertado, llegando a haber desajustes de entre el 30% y el 200% del tiempo de desarrollo. La capacidad de comunicar de forma fluida la idea principal es fundamental para el proyecto. Definir tu MVP podrá ser la diferencia entre el éxito y el fracaso de tu desarrollo y en este tipo de entornos de desarrollo aún más.


Otra cosa que a veces he sacrificado son las "florituras" que hacen que un front end pase de ser normal a ser fantástico. Por lo general me encuentro con resultados de front-end y diseños que están bien, pero que no destacan nada por encima de lo común ni ofrecen ningún tipo de innovación. Suelen cuidar en menor medida los pequeños detalles que te hacen ver algo y pensar "wow!".


A nivel de back-end, por lo general la calidad es mejor. Los programadores con los que me he encontrado tienen más experiencia en ello y, si bien es cierto que siempre tocará refactorizar alguna cosa, también la refactorización es algo que ocurre a en casi todos los proyectos independientemente de quien lo haya desarrollado, por lo general el dinero que ahorras en cuanto al coste de mano de obra compensa. 

Consejos personales e impresiones. 


En mi opinión, y más en estos temas, lo barato puede acabar saliendo muy caro. No recomendaría a nadie asignar un proyecto de desarrollo de app a un equipo en la India, Ecuador, Venezuela... si no se sabe lo que se está haciendo. Puedes perder el proyecto y que pase al olvido rápidamente. La probabilidad de que te hagan las cosas mal (o no como tu quieres) es muy a mi pesar, algo más elevada que en países del mundo desarrollado donde hay mejores prácticas de desarrollo y donde hay un sector tecnológico y una industria mucho más desarrollada.


Ahora, si eres un desarrollador que busca colaboradores para entrar en un proyecto a menor coste, bien por que no has podido encontrar a nadie en tu país, o bien porque has conocido a otras personas de estos países con los que te apetecería trabajar. Si sabes lo que estás haciendo, tienes mucho que ganar. Tener a programadores muy motivados con tus ideas y tus proyectos es una gran baza. India es ahora mismo el mercado móvil más creciente y el número de desarrolladores aumenta enormemente a diario. En un país de 1.3 billones de personas que está en auge, hay muchísima capacidad para crear talento, no obstante, siguen siendo 1.3 billones de personas, por lo que igual es algo más complicado encontrarlo. Control de código y sobretodo grandes dosis de liderazgo, sumado a unas ganas de aprender y de hacer las cosas bien pueden significar la diferencia entre un buen equipo y uno malo. El potencial está ahí, es cuestión de saber sacarlo.

Be the first to comment

Lo más popular entre los lectores

Email *
Suscribirme

¿De qué va esto?

Lo más reciente

Las categorías

Te puede interesar...