Los desarrolladores 10x son las criaturas míticas de nuestro tiempo.
¿Qué son? ¿Qué hacen para ser tan especiales?
¿Qué significa 10x? Un desarrollador 10x es alguien que es (se cree que es) tan productivo como otros 10. Por lo tanto, sería capaz de producir 10 veces el resultado de sus colegas.
¿De qué estamos hablando realmente?
Claro que un Ingeniero Senior podría ser 10 veces más productivo que un becario, pero ¿realmente sería posible entre compañeros con los mismos años de experiencia y, al menos sobre el papel, el mismo nivel de habilidades?
A menudo, cuando se lee sobre Rendimiento y Productividad en Equipos se encuentran cosas como la Ley de Pareto y la Curva de Gauss. (también referenciadas como Ley de Potencia y Curva de Bell).
La Ley de Pareto es la famosa regla del 80-20, válida para casi todo: desde la distribución de la riqueza y la desigualdad global hasta la gestión del tiempo y la productividad.
Cuando se habla de Rendimiento en Equipos resulta :
El 80% de los desarrolladores hacen sólo el 20% del trabajo. Esto significa que el 20% restante, los Top Performers, son capaces de completar el 80% de todas las tareas.
La curva de Bell se utiliza a menudo para describir la distribución de la capacidad de rendimiento de los empleados, afirmando que alrededor del 80% de los empleados se sitúan en torno a la media, mientras que el resto son de alto rendimiento o de bajo rendimiento.
De cualquier manera que veamos esos gráficos y números, la diferencia entre el que más rinde y el que menos en un equipo puede ser enorme. ¿Quizás nos referimos a eso cuando hablamos de un dev 10x? O simplemente deberíamos considerar la diferencia con respecto a la media de los demás dev. Tanto si esto es estadísticamente posible como si no, no podemos negar que algunos desarrolladores son, de hecho, más eficaces que otros.
Entonces, ¿de dónde viene esta genialidad?
¿Se debe a los años de experiencia? La verdad es que no.
10 años de experiencia podrían significar simplemente una experiencia de 1 año repetida 10 veces.
Si estás atrapado en el mismo trabajo haciendo la misma tarea todos los días, todos los años y si no sientes la necesidad de dar un paso adelante y aprender cosas nuevas, puedes sorprenderte cuando un desarrollador normal con sólo 3 años en su currículum es muy rápido y sabe más que tú (no sólo en la última pila de tecnología).
¿Es porque trabajan hasta tarde y no tienen una vida? La verdad es que no.
Un dev 10x no es trabajar muchas horas. No significa trabajar más tiempo. Definitivamente significa trabajar más duro, pero sobre todo de una manera más inteligente.
Estoy lejos de ser un dev 10x, pero en mi carrera, tuve la suerte de conocer y trabajar con al menos un par de tales individuos increíbles, y puedo decir que estos son algunos de los rasgos / cualidades que tenían en común:
Trabajar en las cosas correctas de la manera correcta
Eficacia y eficiencia:
Ser eficaz es hacer las cosas correctas mientras que ser eficiente es hacer las cosas bien.
Bueno, los devs 10x normalmente hacen ambas cosas. No pierden el tiempo haciendo cosas innecesarias de la manera más perfecta. Consiguen hacer las cosas correctas, de la manera (suficientemente) correcta.
Esto se puede lograr mediante:
Hacer preguntas
por qué
A veces los malos requisitos, las especificaciones poco claras y las suposiciones erróneas pueden hacerte perder horas de tiempo de desarrollo. No sólo tendrás que reajustar tus estimaciones o apretar en el retrabajo, sino que también puede ser muy frustrante tener que tirar todo el increíble código que acabas de crear.
cómo
Si estás atascado, si necesitas ayuda, pide ayuda. no pidas una solución, pide una pista, una orientación, un consejo que te lleve a averiguar la solución por ti mismo.No tengas miedo.Se supone que no lo sabes todo y es bueno que demuestres que tienes ganas de aprender.
Concéntrate, evita las distracciones
¿Cuánto tiempo pasamos realmente viendo youtube, revisando nuestro teléfono, respondiendo a los amigos en WhatsApp o Snapchat, o simplemente haciendo scroll en el muro de Facebook?
¿Y si te digo que pasas entre 1 y 2 horas al día en ellas? revisa el uso de esas apps en tu teléfono. te asustarás. (puedes usar apps como esta para comprobarlo).
No necesariamente tenemos que dejar todo eso. Sólo reconocer cuánto tiempo se pierde en estas cosas, cuando se supone que debemos ser productivos es el primer paso y luego podemos utilizar herramientas como la técnica Pomodoro para ayudarnos a mantenernos alejados de las redes sociales y el teléfono inteligente y mantener el FLUJO durante al menos toda la duración de un temporizador Pomodoro.
Ni siquiera estoy diciendo que no debamos tomar un descanso, es más ser realmente conscientes de dónde se está drenando nuestro precioso tiempo. (aunque definitivamente es mejor levantarse, dar un paseo, charlar con un colega, ir a jugar al kicker o al tenis de mesa durante 10 minutos, en lugar de consultar Facebook. Dale a tus ojos y a tu cerebro un poco de descanso fuera de cualquier pantalla).
Tener un descanso, holgazanear un poco puede realmente aumentar tu productividad
Usa herramientas que te aceleren, aprende atajos
Lo que hacemos mayormente es escribir y hacer clic, parece una locura pero realmente puedes llegar a ser súper rápido si empiezas a usar atajos en tu IDE y si usas la Terminal / CommandLine extensamente. Ejecutar grep version package.json
es mucho más rápido que ir al Finder, hacer clic en package.json abrir y luego leer el parámetro de la versión.
Escribir
git stash git pull git checkout -b my_new_feature git stash pop
es waaaay más rápido que hacer lo mismo con cualquier herramienta visual.
Puede que pienses que eso es sólo ahorrar segundos, pero para llegar a ser un dev 10X cada segundo importa (y de todas formas alejarse del ratón es bueno para prevenir el Síndrome del Túnel Carpiano)
Aquí puedes leer sobre algunas herramientas y consejos que me ayudan a escribir y depurar código mejor y más rápido.
Tener ganas de aprender
La cantidad de información que hay es enorme. A veces hay que pagar por ella, la mayoría de las veces es gratis. No hay excusas para no dedicar algo de tiempo al desarrollo personal. Lee artículos, escucha podcasts, mira tutoriales y sigue cursos online. Ni siquiera tiene que ser siempre sobre la codificación – de lo contrario se podría argumentar que, de hecho, un 10x dev pasa todo su día «trabajando» – (por ejemplo, me parece Getting Smarter Every Day y You are not so smart muy cosquillas de la mente).
Es más una actitud, un estado de ánimo. La curiosidad, la sed de conocimiento marca la diferencia con la media.
Rodéate de los mejores / Encuentra un mentor
Ser el desarrollador más rápido, más inteligente y más hábil de tu equipo puede ser bueno para tu ego, pero no lo es para tu crecimiento. Por muy cómodo y satisfactorio que sea, intenta no ser nunca la persona más inteligente de la sala, y busca siempre a personas que sean muy buenas en lo que hacen, que sean mejores que tú y quédate con ellas.
Devuelve. Comparte tus conocimientos
En cuanto aprendas algo, intenta ayudar a otra persona, enseña a otros compañeros, comparte tus aprendizajes.
Puede ser dando algún consejo después de tu standup diario, haciendo una pequeña presentación a tu equipo, escribiendo un post en un blog o convirtiéndote en mentor en una plataforma de codificación online.
Nunca seas arrogante o te irrites con alguien que sabe menos que tú.
Si tenemos en cuenta todo esto, por supuesto que un muy buen desarrollador tiene sólidas y fuertes habilidades de programación, pero lo que realmente puede marcar la diferencia son la pasión, la actitud y algunas habilidades blandas.
Los compañeros a los que miraba con asombro y que más me inspiraban para mejorar estaban muy motivados y capacitados y, por supuesto, eran súper rápidos en sus tareas: nada parecía detenerlos o asustarlos, si no sabían algo, lo investigaban durante un par de horas y luego se sentían lo suficientemente seguros como para hacerse cargo de la corrección de errores o de la función. Y además, escribían documentación, organizaban talleres o mini presentaciones en cuanto encontraban o aprendían algo que podía ser beneficioso para otros miembros del equipo. Les encantaba compartir.
Y al final, creo que esto podría ser el verdadero factor multiplicador. Compartir el conocimiento, fomentar el crecimiento, ser un ejemplo de pasión y trabajo duro, es lo que realmente puede tener un impacto increíblemente positivo en otras personas y elevar el listón en el rendimiento de un equipo ( aunque esté formado sólo por desarrolladores «medios»).