El mundo del desarrollo de software libre ha estado en las noticias últimamente. Desde la vulnerabilidad de Log4j que mandó a todo mundo a actualizar sus servidores, hasta las controversias por grandes compañías construyendo servicios y productos encima de productos de código libre sin honrar la naturaleza del mismo.
Con iniciativas como GitHub Sponsors, las compañías que dependen del software libre buscan incentivar que las personas que mantienen los proyectos sigan trabajando en ellos. Sin embargo, el panorama no se ve tan alentador para aquellos que tienen que lidiar con las implicaciones de mantener proyectos que son usados por millones de personas.
Esto es deprimente, por decir lo menos. Es deprimente porque no veo otra alternativa más qu dejar de escribir software. Después de todo, no puedo encontrar trabajo, no puedo hacer dinero trabajando en software libre, y el código que escriba puede terminar dañando a más personas de las que ayuda.
Mi interpretación del problema es que el propósito del software open source se ha pervertido a lo largo de los años. Inicialmente, la idea era poder colaborar para crear mejores soluciones. Durante un tiempo, cuando se construían las bases de la industria de la tecnología, eso era una realidad. Hoy en día, el que una solución sea de código abierto se utiliza como excusa para no dedicar tiempo a entender sus fundamentos.
¿Cuándo fue la última vez que realmente te dedicaste a entender la solución que un paquete de NPM implementaba? No importa, porque es de código abierto, y seguramente alguien más encontrará lo que está mal en ella — si es que hay algo mal, en primer lugar.
La comunidad de código abierto aporta muchísimo beneficio a la industria. ¿Cómo se logrará hacer que reconozca estos beneficios y corresponda de igual manera a la comunidad que habilitó su creación en primera instancia?
Aquí una idea de cómo puedes comenzar a influenciar un cambio positivo: si el producto en el que trabajas depende de una pieza en particular de código open source, pídele a los líderes de tu organización que asignen una parte del presupuesto para contribuir económicamente al mantenimiento de ese proyecto. Si la persona encargada no tiene habilitado un perfil de GitHub Sponsor, estoy seguro de que estará más que contenta de recibir un wire transfer mensualmente con la contribución de tu empresa.
StackOverflow compartió en su blog los resultados de una encuesta que aplicaron a 500 desarrolladores de software. La idea era encontrar los factores que actualmente están jugando un papel importante en el mercado laboral de desarrolladores.
Las respuestas podrían parecer obvias para cualquier persona que trabaje en el medio. Sin embargo, creo que es buena idea analizarlas un poco más allá simplemente compartir el número de personas que prefieren tal cosa en lugar de otra.
Los resultados
Para buscar nuevas oportunidades, 65 % lo hacen por un incremento de salario. Esto no debería de sorprenderle a nadie. En los últimos meses, sobre todo, se ha visto un incremento sustancial en la inflación de los salarios para personas que trabajamos en software. Hay varios factores que podrían estar influyendo en esto: la pandemia, la devaluación de la moneda, que cada vez hay empresas con más recursos para “quemar”.
Al momento de considerar empresas para unirse, el 56 % quieren que la empresa le ponga atención al developer experience. Este dato sí me sorprendió, pero tiene sentido. Conforme los retos se van haciendo más complejos y los equipos se van haciendo más distribuidos, lo que quieren los desarrolladores es que las empresas realmente inviertan en la infraestructura para soportar sus esfuerzos.
Hace unos años, la discusión sobre el developer experience era relativamente sencilla, porque había un alto grado de probabilidades de que los problemas se mitigaran simplemente eligiendo el cliente de git adecuado para el equipo. Hoy en día, los desarrolladores esperan que haya una infraestructura para colaborar, empujar código a producción, resolver conflictos, recabar datos, y más. Y no solo eso, sino que esperan que haya un equipo encargado de soportar dicha infraestructura.
Aquellas empresas que reparen en invertir en mejorar y facilitar el trabajo de los desarrolladores la van a tener muy difícil contratando y reteniendo talento.
Lo que hace que una empresa sea poco atractiva tiene que ver con el nivel de micromanagement de la organización. Me sorprendió conocer que hay algunas organizaciones prohíben a sus desarrolladores usar Stack Overflow. Fuera de eso, la mayoría de los desarrolladores están de acuerdo en que lo que quieren es que la cultura de la empresa no esté basada en el control y la desconfianza.
También me sorprendió la tercera razón más popular que hace que una empresa no sea atractiva para un desarrollador: que no tengan los recursos para darle confianza en su trabajo. ¿A qué se refiere esto? Algunas ideas:
Que no haya un proceso de retroalimentación establecido
Opacidad en el proceso de toma de decisiones
Una estructura organizacional demasiado plana
Y, retomando el punto anterior, indiferencia por el developer experience
La reputación de la empresa es primordial para el descubrimiento inicial de oportunidades. De acuerdo con los resultados de la encuesta, 47 % de los desarrolladores toman más en serio las recomendaciones de oportunidades que vienen de su red personal (familiares y amigos) que cualquier otro medio. Hace poco escribí sobre este fenómeno:
Es mucho más importante, para tu desarrollo profesional y tu superación personal, estar con las personas correctas, que en la compañía con el nombre más conocido.
El mercado laboral está más “caliente” que nunca. Y veo que muchas de las conversaciones al rededor del tema se enfocan en cómo se puede hacer para contratar más personas, pero lo que leo entre líneas de estas respuestas es que deberíamos estar hablando mucho, mucho más de cómo retener el talento que ya tenemos en nuestras compañías.
Si pudiera hacer sugerencias accionables para 1) retener al talento que tienes y 2) hacer tu compañía más atractiva para otros desarrolladores, te diría, en orden de importancia:
Invierte en facilitar el trabajo de tu equipo. Desarrolla infraestructura que ayude a que tus desarrolladores se puedan enfocar más en el qué, y no el cómo de hacer su trabajo. Pule los procesos de desarrollo, despliegue y revisión de código. Establece procesos claros par resolver conflictos.
Mejora tu cultura de colaboración. Promueve el dar y recibir feedback de manera orgánica y constante. Asegúrate de que los desarrolladores tienen la visibilidad necesaria para tomar decisiones y hacerse responsables de sus acciones. Empodera a tu equipo.
Hazlos sentir orgullosos de trabajar en tu compañía.
Súbeles el sueldo. Índice de inflación anual, multiplicado por 2. Al menos.
Se dice que alguien hace freelancing, o que es contratista, cuando la relación con el cliente tiene fecha de expiración. Se trabaja por proyecto, y puede que al terminar la encomienda actual no se vuelva a trabajar con el cliente.
Se dice que alguien trabaja de manera remota cuando la persona tiene un rol definitivo, de largo plazo, dentro de una organización.
Un freelancer rara vez puede influenciar a la organización, pues se le contrató para un trabajo en particular. Sus contribuciones están acotadas al dominio del problema actual que tiene el cliente.
Sin embargo, una de las implicaciones más importantes de la diferencia entre ser freelancer y un trabajador remoto es realmente cuál es tu trabajo.
Aunque parezca raro, la principal habilidad que un freelancer debe de desarrollar no es aquella por la que lo están contratando. Es la de ponerle precio a sus contribuciones y, aún más importante, la de cobrar.
Aprendiendo a valorar y cobrar por tu trabajo
Un error común que todos cometemos nuestras primeras veces haciendo freelancing es creer que todo va a salir bien. Que entendimos la idea del cliente, y que nos aceptará nuestras soluciones sin ediciones.
Pensamos que la transacción concluirá en tiempo y forma. Cuando la realidad es que cuando tomamos un proyecto de freelancing, es casi seguro que durante la marcha saldrán imprevistos que alterarán el costo, tiempo, o complejidad del proyecto.
Teniendo esto en cuenta, ¿cómo abordar la creación de un presupuesto de un trabajo, en tiempo y dinero?
Recientemente alguien me preguntó esto por correo electrónico. Esta persona acababa de tener su primera experiencia con un proyecto que no salió como esperaba.
¿Qué posibles soluciones u opciones darle al cliente para que salgamos en buenos tratos? Por último, supongo que es casi imposible no caer en este tipo de situaciones, pero ¿habrá una manera de disminuir el riesgo a que sucedan?
La diferencia entre el trabajo remoto y el freelancing es que, en realidad, el trabajo del freelancer es dominar el arte de realizar estimaciones y cobrarle al cliente.
Para bien o para mal, vas a tener que lidiar con muchos proyectos y clientes antes de que te conozcas lo suficiente como para determinar cuál es tu punto justo en cuanto a estimaciones. Desafortunadamente, esta es una habilidad que no puedes aprender en un libro, o experimentar en cabeza ajena. Vas a tener que hacerlo muchas veces hasta que entiendas cuáles son tus límites.
¿Cómo estimar proyectos para clientes?
No hay una solución definitiva para este problema. Por naturaleza, cuando tomas un proyecto nuevo no sabrás con qué te vas a encontrar. Así que, más que pensar en una solución particular para este problema, propongo pensar en términos de un marco de trabajo que puedas usar para lidiar con estas situaciones.
El marco de trabajo que más me ha funcionado, en particular, es el de “ser eficiente comunicando”. Sobrecomunica. No te esperes a la fecha de entrega para avisar que algo no va a estar listo. Da todos los detalles en cuanto los tengas disponibles.
Maneja las expectativas de manera correcta.
Esto te hará parecer mucho más profesional con tus clientes, y te ayudará a ganar una reputación que en el futuro te dará una ventaja competitiva sobre otros contratistas.
Ganando experiencia
Algo que le digo a las personas que trabajan conmigo es “enfócate en el proceso, no en los resultados”. Trabajar en modalidad de freelancing es complejo, y no es para todos. Pero puede ser bastante redituable para aquellas personas que saben cómo navegar sus altibajos. Enfocarte en el proceso, y no en el resultado de un proyecto en particular, te ayudará a aprender más sobre tu práctica, y cómo le puedes sacar más provecho.
En este artículo, Curtis Hebert comparte su experiencia con un freelancer novato. Leerlo te puede ayudar a comprender cómo se ve todo desde el otro lado de la mesa.
Después de todo, si no costara trabajo, la experiencia no se ganaría.
Lo he dicho en algunas ocasiones, en mi pódcast y en mis seminarios web: si juegas bien tus cartas, tu currículum solamente lo necesitarás la primera vez que busques empleo. Al inicio de tu carrera.
Aun así, probablemente te verás en la necesidad de mandar un CV, currículum, carta de vida, o como le digas, a una empresa para solicitar empleo. Y por eso te quiero regalar un consejo como alguien que constantemente revisa currículums de candidatos: cuéntame una historia.
Al contarme una historia, tu currículum te hará ver muchísimo más atractivo, y podremos entablar una conversación. Si todo sale bien, te ofreceré un empleo.
Te explico.
No digas lo obvio
Imagina conmigo la siguiente situación: entro a una tienda de deportes porque quiero comprar una bicicleta. ¿Crees que alguien me va a convencer de comprar una bicicleta diciéndome que tiene dos ruedas?
Por supuesto que no.
Sucede exactamente igual con un currículum. Cuando aplicas a una posición que requiere habilidades especiales, y dentro de tu CV solamente listas que sabes esas habilidades, no estás diciendo nada. No me estás llamando la atención. No te estás diferenciando.
¿Qué te hace diferente?
Ahora imagina que el vendedor se toma el tiempo de preguntarme para qué quiero una bicicleta, si ya tengo experiencia, y demás. ¿Qué pasaría si aprovecha esa información? Me ofrecería una bicicleta que me ayudará a cumplir mi meta de hacer ciclismo de montaña. Me contaría cómo el marco de fibra de carbono es más ligero pero más resistente, y por qué eso es bueno para mí. Haría una demostración de por qué el tamaño de la rueda de esta bicicleta en particular me ayudará a cansarme menos.
El vendedor entendió mis necesidades, y creó una historia al rededor de ellas para vender el producto. Jugó bien sus cartas, y el resultado es que yo salí de la tienda con mi bicicleta nueva.
Te invito a cuestionarte si realmente listar que sabes usar Photoshop e Illustrator le agregan valor a tu propuesta como diseñador gráfico. O si decir que sabes hacer balances de cuentas te diferencia como contador.
Te aconsejaría tomar nota de cuáles sí son tus habilidades que te distinguen, y aprender a venderlas mejor a empresas que sí busquen lo que tienes que ofrecer.
Regla #1 del marketing: conoce a tu cliente. ?
Es una pena que las escuelas actualmente hagan ver la creación de un currículum como algo burocrático, cuando en realidad es 100 % marketing. Recuerda, el marketing se trata simplemente de vender.
Y la regla #1 del marketing es conocer a tu cliente.
Volvamos al escenario del vendedor de bicicletas. Yo quería comprar una bicicleta para hacer ciclismo de montaña. ¿Crees que habría comprado una bicicleta en esa tienda si me hubieran ofrecido una bicicleta de pista? Obviamente no. Pero el vendedor hizo algo crucial: investigó cuáles eran mis necesidades.
¿Sabes qué es lo que quiere la empresa para la que estás aplicando? Porque por ahí deberías comenzar. Y una vez que sabes por qué están buscando nuevos integrantes para su equipo, puedes comenzar a crear una propuesta de valor adecuada.
En este punto debería de comenzar a hacerte sentido lo que te digo. No simplemente listes tus habilidades. Evita decir cosas obvias. Enfócate en vender tu historia, y responder las siguientes preguntas:
¿En dónde culminan tus habilidades?
¿Cómo las has usado antes?
¿Qué resultados favorables hubo?
Habiendo dicho esto, a continuación te muestro cómo puedes traducir una lista de habilidades en un párrafo que hará que tu currículum sobresalga.
Proceso creativo: esto es lo que te hace diferente. Tienes un proceso creativo, y gracias a él es que eres tan prolífico con tus contribuciones.
Tanto gráfico, como web y de correo: les estás diciendo que tus habilidades de diseño son multidisciplinarias. Implicas que conoces varias herramientas y sabes cómo utilizarlas para su propósito específico.
Incrementar sus ventas en un 35 %: esto es lo que ata con moño tu historia. Es por esto que todas tus habilidades son relevantes para la empresa. En este caso, les estás diciendo por qué te deberían contratar. Contigo en el equipo aumentan sus probabilidades de vender más.
El conjunto de esos tres factores, aderezados con datos particulares de tu perfil, es la historia que te va a hacer sobresalir.
Esto es casi una plantilla. Úsala a tu conveniencia.
Notas finales
Recuerda que un buen currículum no hará que te contraten. La idea de un currículum es entablar una conversación. Vender la idea de por qué vale la pena enviarte un correo pidiéndote una llamada. Hacerte parecer lo suficientemente interesante para que cuando te hablen, te pregunten por tu proceso creativo, no por comandos de Photoshop.
Pero sobre todo, ten en cuenta que el mejor currículum no es el que se envía, es el que se demuestra. Como dije al inicio, si juegas bien tus cartas, tus contribuciones, aportaciones, experiencia, y colegas hablarán por ti.