andres

El código me molesta

Estas ultimas semanas (o más de un mes, para ser preciso), tuve una tormenta de conocimientos, en donde caía todo rápido e intentaba mantener todo en la mente, claramente sin éxito.

En pos de organizar mi nuevo camino de aprendizaje, me puse a pensar dicho camino. Es decir, como empezar, con que continuar, etc… En definitiva, organizarme. Me encontré que con la lectura del libro “Clean Code: A Handbook of Agile Software Craftsmanship” de Robert C. Martin un nuevo mundo se abría ante mis ojos, una nueva forma de pensar el código: escribir código para programadores, no para computadoras.

Sin ahondar en detalles de lo que contiene el libro (que seguramente sea merecedor de miles de posts), me encontré con el primer paso de este nuevo camino en mi desarrollo profesional. Ese primer paso llegó solo, sin buscarlo, pero con una fuerza abrumadora que me esta ayudando a organizar mi mente. Ese primer paso, esa idea, esa sensación es que todo el código que escribí hace un tiempo me molesta, me incomoda.

¿Que quiero decir con esto? Es la sensación de que algo está mal en el código. Si, hace lo que debería hacer, cumple con los criterios de aceptación, pero aún está mal. ¿Por qué? Porque no puedo leerlo como una narración. No puedo leerlo como si estuviera contándome una historia. Y eso es lo que quiero. Quiero que leer mi código sea como leer un libro (Quienes leyeron el libro saben a que me refiero) y que no haya que hacer ningún esfuerzo para entenderlo.

Creo que esta sensación es fantástica, siento como si tuviera las puertas abiertas a un campo soleado, invitándome a un mundo nuevo en donde todo se ve mas claro.

Es hora de cruzar esa puerta.

andres

Vísteme despacio que estoy apurado

Pensando en como encarar este Post, se me vino a la mente la frase que ahora lo titula. Dicha frase fue atribuida a varias figuras de la historia, como puede ser Fernando VII, Napoleon Bonaparte o Carlos III. La realidad es que sea quien fuera el autor, fue adoptada como una frase de uso popular.

Pero, ¿por que la frase? ¿que tiene que ver con la informática? En estos días me fui dando cuenta que la gran mayoría de los puntos necesarios para mi crecimiento profesional, siempre necesito iniciar el camino de aprendizaje con el siguiente principio:

Si querés hacerlo bien, tenes que hacerlo despacio.

Hace días vengo consultando con colegas sobre como crecer en profesionalismo sin tener un entorno que te obligue a hacerlo. Es muy fácil aprender buenas prácticas cuando tenes un buen profesor. Pero, ¿cómo lo haces cuando querés encararlo sólo?

Lo primero que me encontré es que, contrario a lo que normalmente las empresas piden, no parece ser tan importante interiorizarte tanto en una tecnología sino en las bases del desarrollo de software: Ideas, pensamientos y prácticas que van mas allá de una tecnología en particular. Me topé, solo para citar un ejemplo, con la idea de “Clean Code”, el arte de escribir código de fácil interpretación. O como lo nombran de manera aún mas rica en un curso de Pluralsight:Clean Code: Writing Code for Humans“. Mas allá de los principios que allí mencionan, me encontré con la afirmación de algo que venia pensando hace semanas: Para avanzar en un nivel más profundo de profesionalismo, hay que pensar más antes de ejecutar, lo cual implica detenerse a analizar y tomar la decisión correcta. (Contrario a lo que muchas veces se fomenta que es sentarse y escribir código hasta que funcione)

Luego de unos 12 años en la industria, conozco muchas de mis fortalezas y debilidades, y una de las fortalezas que siempre destaco es mi capacidad de adaptación: No importa el trabajo al que me esté dedicando, puedo tomar el toro por las astas y llevar mi tarea a buen puerto. Pero no es la forma de hacerlo. Si bien muchas veces la situación lo amerita, no es el contexto ideal en el ciclo de vida de un producto. Este vicio disfrazado de virtud genera trabajo de mala calidad, que luego puede resultar inmantenible. Y lamentablemente uno lo aprende por la fuerza.

Es por ello es que el primer principio que considero que debemos seguir para crecer, es ir más lento. La historia nos muestra que luego nunca tenemos tiempo para mejorar lo que por apuro no lo hicimos bien desde el principio. Es por ello que debemos frenar, pensar y recién en última instancia ejecutar.

Asi que… vamos despacio…

Referencias:

  • https://siempreconectado.es/origen-visteme-despacio-que-tengo-prisa%C2%B4/
  • Imagen: https://pixabay.com/en/napoleon-napoleon-bonaparte-33073/
  • https://app.pluralsight.com/library/courses/writing-clean-code-humans/
andres

Nunca dejes de Desafiarte

Durante esta última semana tuve la tarea de crear una API sencilla. Funcionalmente no era nada del otro mundo, hasta podríamos decir que era trivial. El desafío era que no podía utilizar .NET, plataforma en la que trabajo desde hace unos 7 u 8 años.

La mayor parte del tiempo la ocupe en investigar la plataforma que iba a utilizar (JAVA) junto a los frameworks disponibles que me permitan llegar al objetivo en el irrisorio tiempo de 1 semana, teniendo que codificar únicamente en mi tiempo libre (Es decir, a lo sumo 2 o 3 horas libres durante cada día de la semana y unas 6 / 7 horas durante el fin de semana.

Entonces, resumimos en:

  • 30 horas disponibles muy fragmentadas
  • Programado en Java, que no lo utilizo hace unos 10 años
  • API REST, que nunca desarrollé en JAVA
  • MARIADB, que no utilizo desde los tiempos que era MySQL
  • Deploy en AWS, en donde ni siquiera tenia cuenta.

Durante algún momento en que mi cerebro estaba ya quemado y empezando a divagar, me tope con esa frase: “Nunca dejes de aprender”. Aunque yo la acompañaría de una frase que me inspiro en la decisión de utilizar JAVA y  durante el resto de la semana:

Nunca dejes de desafiarte

(Por cierto… llegué a completar el objetivo)

Photo de Negocios creado por creativeart