7 épocas después

By   Skrigueztep Skrigueztep Thu May 09 2024

Hola de nuevo…. Aquí estamos… de vuelta después de la última publicación en Noviembre del 2023. Muchas cosas han pasado, hemos estado bastante ocupado entre proyectos, trabajo, aprendizaje, etc… Y vamos ponernos al corriente.


Para comenzar, desde la última publicación, no sé si ya lo habia mencionado pero… creo que lo más destacado es que me dejaron a cargo del departamento de Staff Front-End.

Últimamente he estado ocupado, algo atareado con algunos proyectos…y dandole un tanto de espacio a la parte personal. Dentro de todo el desastre mental que tengo, ha estado algo organizado pero muy muy muy desorientado.

Con la parte de los proyectos… salio una migración de nativo a hibrido, de Android con Java a Ionic + Capacitor + Angular, el desarrollo movil de una app que creo me facilitará algunas cosas, el refactor de una herramienta que desarrolle y el rediseño del blog, entre varias otras cosas.

La migración

En esta parte, una consultora, con la que llevo trabajando unos años, me contactó para realizar una migración de una aplicación nativa de Android con Java a una aplicación hibrida de Ionic + Capacitor + Angular, ya que requerían que tuviera una vista y caracteristicas nativas con el mismo código tanto para IOS como para Android.

La migración la estimé con 2 meses… pero acabo de aprender unas muy buenas lecciones para los siguientes proyectos que tenga en puerta. Básicamente si logré realizar la migración en esos 2 meses o hasta menos, de toda la aplicación, por supuesto; cabe aclarar que solo la migración 😂🤣😂🤣😂🤣, porque estuvo bueno el tiempo de espera por recursos, que pudieran probar la aplicación, validar los cambios, etc…

La aplicación

Con este punto… baahh… pues básicamente me canse de estár usando la misma hoja de excel para estar haciendo mes a mes algunas cosas y pues ya que estaba con la parte movil pues decidi variar un poco y probar haber que tal…

La verdad fue que me llevé una gran sorpresa porque decidí que fuera con Ionic + Capacitor + Vue 3, y no me desepcionó la decisión… La sorpresa me la llevé ya que fue más fácil aplicar la arquitectura, conectar la db, hacer la depuración y realizar la personalización de los componentes… Ya que en esta app, tengo “libertad creativa” y no necesariamente necesitaba hacer el uso de los componentes de Ionic forzosamente y poder utilizar las etiquetas HTML.

El refactor

Hace un poco más de un año aproximadamente, cuando ya llevaba un poco en la parte de Staff, se me ocurrió desarrollar una CLI (Command Line Interface) para poder “automatizar” un proceso que tenia que realizar y me llevaba una semana si me ponia al 100% de mi tiempo…. y cuando las cosas de complicaban podría llevarme hasta 2 semanas…

Para atacar este punto comencé a desarrollar esta herramienta que me ahorraba demasiados copy/paste que tenia que realizar para cada uno de los proyectos que tenia que revisar y basado en esa revisión era estar rastreando algunas cosas… me llevó 2 o 3 meses desarrollarla y cuando llegó el momento de probarla 🥁🥁🥁🥁….

Comenzaron los fallos 🤣😂😵‍💫🥴

Afortunadamente todos estos cambios o errores los fuí tratando al momento y si era posible… probar; se probaban manualmente, obviamente también surgieron algunos fallos dificiles de depurar u errores ocasionales… Ingenuamente no le apliqué pruebas desde el inicio. Llegó un punto en donde eran tan ocasionales o muy dificiles de depurar que se fueron juntando las tareas… Llegó el momento en donde se me ocurré extender aun más la herramienta agregando algunos servicios que utilizó a menudo y en ese momento aproveché para pensar en que hacer y que no fuera más volatil.

La solución por la cual opté fue por aplicar arquitectura al proyecto…

El aplicar arquitectura implicaba definir bien, contextos, funcionalidades, flujos de información, responsabilidades, las opciones y características que se implementarian. Pero realizarlo iba a ser un cambio BRUTAL!

En resumen, realicé el proyecto desde 0, con un enfoque de monorepositorio, con arquitectura en cada repositorio, se redujeron las dependencias, se mejoró la depuración, se agregaron pruebas unitarias, se hizo más fácil el actualizar, mantener y mover el proyecto en general… Las tareas pendientes de errores se cerraron, básicamente durante el refactor se fueron resolviendo de forma automatica y mejoró bastante la madurez en comparación con la versión inicial.

Hasta hace poco, en estas 2 semanas pasadas tuve la oportunidad de poder utilizar la herramienta y oh sorpresa… nuevamente errores!! 😠😠😠😂🤣😂🤣😂🤣 Pero está vez los errores si ya están raros… muy raros y dificiles de resolver, lo cual es emocionante pero se vuelve tedioso, estresante y muy pero muy cansado el depurar y estar probando sin respuesta… principalmente porque son 2 servicios (APIs) con las cuales se conecta, y entre la autenticación y el envio de las peticiones todo era un desastre.

El workaround para poder avanzar en las actividades que tenia pendientes y que solo estaba retrasando por estar tratando de resolver los errores fue: comentar las funcionalidades (2 únicamente) que son las que están relacionadas con los servicios que se consumen y realizar una muy pequeña parte de forma manual… Ahora en lugar de llevarme 2 o 3 semanas en realizar las actividades… me tomó alrededor de 5 horas y media realizar la actividad completa, revisando aproximadamente 11 proyectos… Aun me falta resolver estos errores pero la satisfacción de pasar de escribir un comando super largo como de 2 o 3 parrafos en la consola a medio parrafo…es emocionante 🥳🥳🥳🥳…

El refactor del blog yo creo que lo dejaré para un articulo por aparte… pero mientras tanto…

Y por último… En este rato, ya habia comentado anteriormente si mal no recuerdo; que habia adquirido algunos libros acerca de Staff Engineering, los cuales habia comenzado con Software Engineering at Google: Lessons learned overtime de Titus Winters pero lo deje a menos de un tercio, ya que el trabajo me comia en tiempo y también las referencias hacia otros recursos o la influencia de… era mucha y opté por comenzar con otros de los libros, para no ir a ciegas.

En semana y media, quiza dos, terminé Staff Engineering: Leadership beyond the management track de Will Larson y actualmente estoy a la mitad de The Staff Enginer´s Path: A guide for individual contributors navigating growth and change de Tanya Reilly.

Me han surgido muchas dudas, he perdido el rumbo y he tenido que pensar muy bien varias cosas para ver y saber hacia donde dirigir el departamento y mi mismo camino profesional y más…

Finalmente… quiero agradecer a tod@s l@s que han estado involucrados durante el proceso… escuchandome, dandome ideas.. ayudandome con mil y un cosas, para tomar puntos de vista y opiniones distintas.

En especial agradecer a […], por estar conmigo durante el camino… soportandome, subiendome el animo, y a pesar de ser tan dificil el camino, esos momentos de crisis o inestabilidad, dudas y mil y un cosas… Siempre está ahi o aquí o conmigo…

Sin más que decir… además porque ya es temprano… muuuuy temprano… seguimos online

Happy coding 🖖👋