Developer: El despertar de la fuerza

jueves, 25 de junio de 2015


A estas alturas todos conocemos la película de Star Wars y sabemos que existe el poder de la fuerza y el poder del lado oscuro, bueno pues yo creo que estos conceptos encajan muy bien en la profesión de developer, en este artículo voy a hacer unas reflexiones haciendo un símil con la película.

Nacimiento en el lado oscuro

Se puede decir que todos nacemos en la profesión de developer perteneciendo al lado oscuro, no en cuanto a personalidad, pero si en cuanto a las malas prácticas de desarrollo que llevan a problemas, cuando nacemos no tenemos experiencia en como se deben hacer las cosas bien, no tenemos malas experiencias con las que haber aprendido un camino que conduce a problemas. No conocemos lo que es la duplicación de código, código espagueti, exceso de comentarios en el código, una mala arquitectura de aplicación, no hacer test unitarios etc...

El primer despertar


Hay un momento, que con la experienia llega, donde empezamos a comprender un paradigma como es la programación orientada a objetos, lo conocemos a través de un compañero, en una conferencia o en internet, pero al principio no lo comprendemos, esa forma rara de programar todo con clases no tiene sentido, pero un día el despertar se produce, empezamos a programar utilizando clases, empezamos a entender lo que es un objeto y los beneficios de su existencia.

También es el momento donde comprendemos el polimorfismo mediante las abstracciones y pensamos cómo he podido programar de otra forma hasta ahora.

En ese momento solo vemos objetos, cada vez que necesitamos algo pensamos en objetos, sabemos que necesito un servicio que haga tal cosa, o un objeto usuario que haga otra. Si tenemos objetos parecidos nos empezamos a dar cuenta de que tal vez sea bueno tener una abstracción común en forma de interface o de clase base para esos objetos con cosas en común.

Un nuevo despertar


Lo bonito que me he encontrado en esta profesion es que siempre hay cosas por aprender, nuevos despertares nos esperan. Cuando ya dominas o crees que dominas la programación orientada a objetos, de repente empiezas a oir conceptos como patrones de diseño y empiezas a leer a señores como Martin Fowler, Uncle Bob, Gang of Four, Kent Beck, Eric Evans y te das cuenta de todo lo que tienes que aprender y la cantidad de caminos que hay en el lado de la fuerza.

Es momento en el que empiezas a ser un Senior Developer donde ya no solo te dedicas a tirar lineas de código, empiezas a hacer algo más, empiezas a pensar de otro modo, piensas antes de escribir código, razonas la mejor forma de implementar una solución, piensas en la mejor arquitectura para una aplicación que vas a desarrollar. También en ese momento escribes test unitarios que te ayudan a definir tus clases, empiezas a entender los que son buenas prácticas y lo que son malas prácticas, empiezas a dominar conceptos como dominio, negocio, inyección de dependencias, abstracciones, código limpio, refactorización, principios SOLID etc.

Las tentaciones del lado oscuro


Al igual que en Star Wars, es más fácil hacer las cosas mal que hacerlas bién, lo realmente difícil es hacer código sólido, código poco acoplado que permita escalar adecuadamente, hacer refactorizaciones constantes, mantener los test unitarios, en definitiva programar bien requiere de más tiempo y constancia, tiempo para analizar las cosas y siempre habrá tentaciones que nos intentarán llevar al lado oscuro.

Siempre habrá un proyecto que va con retraso, un project manager que añade tareas en mitad de una versión queriendo mantener la misma fecha, código que heredas de un compañero que no sigue las mismas buenas prácticas que tu intentas seguir. Todas estas tentaciones hacen fácil acabar cayendo en el lado oscuro y haciendo alguna que otra ñapa o mala práctica, que a largo plazo o incluso a corto acabará en problemas.

Pero esta en nosotros mismos y solo en nosotros el mantenernos en el buen camino, en el lado de la fuerza. ¿Cómo lo hacemos?, hay que intentar buscar un equilibrio y saber que si puntualmente es necesario hacer una ñapa, esa parte hay que refactorizarla en cuanto se pueda, si nos añaden tareas en mitad de una versión la versión se tiene que retrasar para que se mantenga la calidad, es de sentido común. Si heredamos un código que no sigue buenas prácticas debemos intentar dejarlo mejor de lo que nos lo encontramos, no hay porque dejarlo perfecto pero si todo el equipo que trabaja en un proyecto tiene esa mentalidad al final el código siempre irá evolucionando a mejor.

Es fácil que conozcas a alguién bastante bueno ya sea otro developer, un jefe, el dueño de la empresa que son bastante válidos y estan bien considerados dentro de tu empresa pero que pertenecen al lado oscuro.



Maestros Jedi y Padawan



Los developers que son maestros Jedi son personas que son tranquilas, reflexivas, con bastante experiecia, con buen criterio para decidir, humilde, que siguen buenas prácticas, gente importate dentro de un equipo, personas que no dejan nunca de aprender y que tienen una experiencia bastante amplia en el poder de la fuerza. Padawan son personas con el potencial y personalidad para ser un maestro Jedi pero que carecen de la experiencia necesaria, con el tiempo lo normal es que acaben siéndolo.

Todos los Jedi y Padawan se llevan bien, rodeate de este tipo de personas, no he conocido ni uno solo que no este dispuesto a ayudar, a enseñarte o a aprender contigo. Conocen bien que tienen que mucho que aprender y siempre estan dispuestos a aprender con una actitud humilde.

Si alguién con apariencia de Jedi tiene una actitud poco humilde o prepotente, recela, seguro que esta más cerca del lado oscuro de lo que aparenta.

Si tu empresa esta llena de este tipo de personajes cercanos al lado oscuro, será el momento de pensar si no estarías mejor en otra empresa, si tienes un puesto de responsabilidad y tienes developers a tu cargo con este perfil vivirás mejor si los despides, no suelen aportar nada bueno y seguramente si un compañero del lado de la fuerza coge su código seguramente no sea una buena época. A todos nos ha pasado algo parecido en las empresas donde hemos estado.

La mejor elección es rodearse de Jedi y Padawan, cuando los encuentras notas el poder de la fuerza en su interior y se produce una afinidad natural desde el primer momento.

Conclusiones

Es importante conocer que hay dos caminos como developers, seguir el camino de la fuerza, intentar hacer las cosas bien, con buenas prácticas buscando un equilibrio y hay otro camino, el del lado oscuro, que es más fácil pero que a la larga da problemas y hace que no nos sintamos orgullosos del código que escribimos.

Nosotros y solo nosotros somos responsables de no caer en el lado oscuro.

Que la fuerza te acompañe.

No hay comentarios:

Publicar un comentario