Valores intrínsecos de un hacker

Como escuela dirigida a hackers era primordial establecer los valores que definen a un hacker potencial, a esa persona que tiene el perfil para construir, modificar, mejorar herramientas y sistemas que tengan un impacto en nuestras vidas.

Tenemos que entender primeramente qué es un hacker y como lo vemos del lado de la Hacker School Monterrey. Tomando de las mejores definiciones:

“[…] “hacker” connotes mastery in the most literal sense: someone who can make a computer do what he wants — whether the computer wants to or not.”

Paul Graham, The Word Hacker.

Básicamente, un hacker es una persona que puede construir y modificar los sistemas para su beneficio: “In reality, hacking just means building something quickly or testing the boundaries of what can be done.” — Mark Zuckerberg, Letter to Investors, 2012.

Durante varios años hemos conocido a grandes personas que han comenzado sus proyectos o que se han unido a grandes iniciativas, y desde el momento que cruzas las primeras palabras hasta cuando existe la oportunidad de compartir una pantalla para construir código, hay elementos que los definen de manera auténtica.

Partiendo de estas experiencias incluyendo las que hemos tenido en Hacker School Monterrey, hemos definido una serie de valores que consideramos debe tener todo hacker o toda aquella persona con la posibilidad de desarrollar esas habilidades técnicas que necesita al momento de crear el software que se construye hoy en día.

1. Colaboración

A pesar de que mucho del software que ha surgido en los últimos años se construye por equipos de no más de 10 personas, esa capacidad de colaborar con otros hackers e individuos es muy importante para mantener agilidad y desplegar valor continuamente ante los usuarios.

El software no se construye individualmente ni de manera aislada. Los experimentos y validaciones que ocurren en un par de horas son pruebas que hace sólo un hacker, pero al momento de querer llevar esa validación al siguiente nivel, es importante sumar a otros y organizarse para que el sistema se haga de la mejor manera. Dos cabezas piensan mejor que una, y en software es algo que se promueve a través de estrategias como la programación en parejas.

Como Fred Brooks menciona en su gran pieza The Mythical Man-Month, no por tener más desarrolladores se tendrá el software más rápido. La colaboración implica muchos elementos tales como la comunicación, sinergia y estrategias de trabajo que permitan desarrollar software al ritmo que lo demanda el mundo actual.

2. Transparencia

La razón por la cual esta industria avanza y se reinventa es gracias a la transparencia.

Al momento de compartir el código de un proyecto, diseñar una librería o liberar un nuevo framework se comparte y deja disponible conocimiento para los demás, quienes pueden tomarlo y modificarlo para hacer una herramienta mejor. Ejemplos evidentes son las iniciativas Open Source, donde quien sienta la motivación y capacidad puede contribuir y colaborar, gracias a la transparencia que existe del código, colaboradores y el proceso mismo que se sigue para marcar el avance de la herramienta que se trabaja. Sin esa transparencia muchos otros hackers, incluso empresas dependientes de tecnología hubieran tenido imposible la oportunidad de tomar algo nuevo o siquiera comenzar a trabajar.

Hoy en día muchos equipos consideran indispensable este valor. Nuevos productos han sido creados gracias a la transparencia de otras personas, y haber compartido herramientas que permitieron a esos productos vivir. El hecho de que alguien comparta su trabajo en Github o cualquier red de desarrollo es algo muy respetado también ya que se destacan algunas características de la persona como pasión y apertura al cambio. Igualmente compartir tu trabajo con un colega y disfrutar del diálogo que pueda existir como retroalimentación, es lo que hace que construyamos mejor software.

3. Empatía

La capacidad de ponerse en los pies de la otra persona es empatía. En el caso de un hacker, es importante ponerse en los pies de dos perfiles: el usuario y otros hackers.

Primeramente, entender lo que el usuario necesita y que el sistema que se está construyendo impactará tanto a una persona como a quien construye el software, es una característica que permitirá dar forma a los sistemas de tal manera que tengan el impacto que demandan. Si logramos entender los dolores y necesidades del usuario final, el software podrá irse construyendo con mayor sentido y de forma medible.

Por otro lado, tener empatía con otros hackers es una parte esencial para construir software de calidad. Considerar a otras personas al momento de construir software permitirá que el código que se está construyendo pueda tener la legibilidad y estructuración adecuada para que otra persona pueda tomar el producto sin miedo, atacar una curva de aprendizaje reducida, y ser productivo desde el primer día. Entender las frustraciones que podría enfrentar otro hacker al tomar código con deuda técnica es importante para no recaer en prácticas que haga que el software se deteriore rápidamente y demande un migración o cambio en el corto plazo.

4. Determinación

El hacker es una persona enfocada en la tarea. La capacidad de ejecutar y construir lo que visualiza en su mente sucede gracias a la determinación que deposita en el proceso de ver esa idea realizada.

El proceso de construcción de software implica tener todas las posibilidades en la mira, y podrá decidir rápidamente, en caso de que no se pueda desarrollar la idea por el camino A, optar por el camino B, siempre con la determinación de ver la idea construida.

Un hacker es el ejemplo perfecto de alguien que se ensucia las manos, y que buscará hacerlo siempre para entender la problemática e implementar una solución.

5. Humildad

La carrera de todo hacker debe estar permeada de humildad.

Una de las situaciones más difíciles en esta industria es actualizarse de manera constante sin ser absorbidos por la operación de la empresa en la que trabajamos, o por factores externos que impiden que estemos explorando el estado-del-arte de la construcción de software.

Conforme pasa el tiempo y las generaciones van creciendo y madurando en la industria, otras generaciones entran a la industria con un perfil lleno de energía, jovialidad y entusiasmo, justo como aquellos que ya tienen rato lo hicieron en su momento. Lo interesante es ver cómo entre diversas generaciones se transfiere y comparte el conocimiento de muchas maneras. El poder aceptar que la experiencia no deriva de la edad sino de las acciones, y que esta industria se mueve por la meritocracia, es lo que permite a todo hacker seguir creciendo. La humildad es poder aceptar diferencias y entenderlas, sacando el mayor provecho desde la perspectiva individual y respetando las trayectorias de otros individuos.

Un ejemplo ha sido ver a personas de no más de 25 años compartiendo prácticas que han utilizado durante los últimos años para construir software que funcionará como servicio. Quienes están oyendo estas experiencias son personas que tienen más de 40 años, y llevan tantos años en la industria que supera la edad prácticamente de quien les está compartiendo sus técnicas; el aceptar y tomar lo mejor de eso para crecer es fundamental para no estancarse.

6. Curiosidad

Este valor habla por sí sólo, pero es poder mantenernos interesados en seguir imaginando, creyendo y aprendiendo de todo lo nuevo que surge en una industria tan cambiante.

La capacidad de asombro de nuevas tecnologías y herramientas debe existir constantemente. La diferencia entre un turista y un viajero es que el turista va de la mano con los guías a diferentes partes, dependiendo de lo que le vayan diciendo y al pie de la letra. El viajero va por su cuenta por el mundo, manteniendo esa curiosidad presente que le permite conocer y entender a otras culturas, además de respetarlas por la naturaleza que las define. Así es como debe mantenerse un hacker, y más si lo que busca es mejorar lo que ya se está haciendo con la curiosidad de entrar a nuevas tecnologías, modificarlas y mejorarlas.

Estos son los valores que compartimos y defendemos en la Hacker School Monterrey: instructores, alumnos y colaboradores. Estos valores definen nuestra cultura, rituales y lo que perseguimos como organización.

Un objetivo grande de tener esto definido es poder expandir la importancia de los mismos en la red que esté fuera de la escuela, y poder conectar a otras personas que tengan los mismos valores, conectarse y construir cosas de alto impacto.

Nuestra misión no es hacer que los estudiantes terminen el programa y sigan haciendo lo que siempre han hecho.

Nuestra intención es cambiar la forma en que opera esta industria, incentivando a que se construyan nuevos productos, equipos y oportunidades. De la creación de nueva riqueza y valor para la gente, lograremos posicionarnos como una nación que forja el mejor talento en Tecnología y Software.


Te invitamos a que conozcas más acerca de los programas de Hacker School Monterrey. Nuestro próximo programa de Back-End Development comienza el 5 de Abril, te invitamos a que te inscribas en esta liga.