Trabajo en una Agencia
Este año cumplo 6 años trabajando freelance para una agencia que lo mismo crea productos web y móviles que los mantiene; son de todos tipos, de todos tamaños, trabajando en solitario como en equipos pequeños a medianos.
Y cuando digo una agencia quiero aclarar que no ha sido la misma única agencia y ha sido intermitente con irrupciones trabajando en startups nacionales e internacionales y para empresas tan grandes que exigen a los programadores usar camisa y corbata y también de freelance para otros freelance que trabajan con corporaciones. Pero el trabajo en agencia es lo que más he hecho y por eso el título de este post.
Y estoy feliz porque viendo en retrospectiva antes de estos 6 años pase otros 5 años aproximadamente con proyectos tan escasos y clientes que pagaban muy poco que no llegaba al mes. Pero dedicaré otro post a hablar sobre esos primeros años de mi vida profesional y recomendaciones de que hubiera hecho mejor.
Ahora quiero enumerar algunas enseñanzas que he tenido trabajando en una agencia:
La base teórica y práctica es la mejor
Trabajar en una agencia es muy parecido a trabajar en una startup solo que más vertiginosamente. Porque en la segunda harás de todo pero en la primera lo podrías hacer hasta en proyectos simultáneos. Por eso saber los fundamentos teoricos y practicos de los lenguajes, frameworks y herramientas con las que trabajas te ayudará a saber hacer las preguntas correctas con expertos, en StackOverflow, en Github Issues o en donde sea que tengas que buscar.
Saber hacer preguntas o no dejar de preguntar
Si sabes hacer las preguntas adecuadas podrás ir solucionando y llegando hacia la siguiente pregunta adecuada. Pero si no sabes hacerlo porque esto solo se aprende con experiencia no dejes de preguntar. No dejes de preguntar a tu manager, al cliente, a tu equipo y a ti mismo. Porque aunque suene cursi puede que tú mismo tengas la respuesta. Y no tengas miedo de preguntar y tampoco ridiculices a nadie por hacer preguntas que quizás tú ya pudiste responder.
Documenta todo
Este es un punto especial que aprendí trabajando remoto y que omití en los párrafos anteriores pero los últimos 6 años los he hecho remotos con contadas ocasiones yendo a ver a un cliente a oficina o a un compañero freelance a su estudio.
Documenta todo es una mentalidad que se adquiere después de preguntar todo. Y es una habilidad que te va a servir para el futuro porque los humanos tendemos a no tener toda la información en todo momento y los programadores más. Documenta tu código, tu flujo de trabajo, la forma en que haces preguntas, la forma en que anotas tus respuestas, la infraestructura con la que trabajas, la metodología de tu equipo y tu cliente, documenta todo.
Un punto interesante a tomar en cuenta es que puedes documentar todo en un blog y entonces las preguntas que tengas también serán respuestas para otros.
El trabajo no es escribir código
No, no, y esto lo aprendí hace unos años. El trabajo es solucionar problemas, a veces escribiendo código, a veces eliminándolo, a veces configurando cosas pero todas las veces escuchando al que te está pagando. Y no escuchando exactamente lo que te piden porque a veces ellos tampoco saben sino escuchando donde les duele. Y sí, adivinaste, esto también se soluciona preguntando y documentando.
Desaprender es más difícil que aprender
Cuando iba a la universidad aprendí con Java 6. Y este también nos lo enseñaron en la preparatoria porque Java 6 salió en 2006 y tuvo updates hasta 2013 y una versión extendida hasta 2018 y por eso muchos siguieron ocupándose para enseñar y para construir productos. Y mientras tuvo actualizaciones nadie se preocupó por aprender Java 7 (2011), pero en cuanto se terminaron muchos prefirieron migrar a Java 8 (2014) porque el ciclo de actualizaciones se adapta mejor. Pero no muchas empresas invierten en capacitar, o sea no te pagarán ni te instruirán. O al menos así era en aquellos años. Y estas versiones trajeron cambios. Al igual que todos los lenguajes, al igual que todas las herramientas. Los fundamentos casi no cambian pero sus aplicaciones sí.
Por eso tienes que aprender a desaprender. Y eso significa que aprendes no por memorización sino por aprendizaje asociativo o por aprendizaje significativo o hasta el observacional. Para que no olvides algo y lo deseches sino sepas donde hacer las conexiones que necesitarás. Y sí otra vez, si documentados no importa que se te olvide, si documentas lo tendrás para siempre.
Conclusión final
Este es un post que escribo después de haber estado trabajando en una tarea relativamente sencilla por 4 días donde apenas y toque código pero hice o intenté hacer las cosas que puse arriba. Y así es la experiencia de trabajar en una empresa donde tienes varios proyectos, muchos compañeros y clientes diferentes.
Además dejarlo por escrito en este post es otra forma de documentar todo lo que he aprendido.