paint-brush
Cómo convertirse en un desarrollador 10x: una guía esencialpor@zawistowski
16,713 lecturas
16,713 lecturas

Cómo convertirse en un desarrollador 10x: una guía esencial

por Wojciech Zawistowski14m2023/03/22
Read on Terminal Reader

Demasiado Largo; Para Leer

Al mejorar la forma en que trabaja, solo SUMA al rendimiento de su equipo. Al mejorar la forma en que todos trabajan, MULTIPLICA el rendimiento de tu equipo. Ser un multiplicador te hará notar y promocionarte. Te mostraré 16 formas comprobadas de hacerlo.
featured image - Cómo convertirse en un desarrollador 10x: una guía esencial
Wojciech Zawistowski HackerNoon profile picture
  • El desarrollo de software es un deporte de equipo. Tu desempeño individual no importa tanto como el desempeño de todo tu equipo y empresa.


  • Al mejorar la forma en que trabaja, solo SUMA al rendimiento de su equipo. Al mejorar la forma en que todos trabajan, MULTIPLICA el rendimiento de tu equipo.


  • Multiplicar el desempeño de todo el equipo lo colocará en un carril mucho más rápido para ser notado y promovido que ser un contribuyente individual loco y eficiente.


  • Impulsar el desempeño de otras personas requiere una mentalidad y un enfoque diferentes a los de impulsar su desempeño individual. En este artículo, le mostraré 16 formas probadas de multiplicar el rendimiento de su equipo (o incluso de toda la empresa).

El concepto erróneo común de 10x Dev

Si busca en Google el término "desarrollador 10x", obtendrá muchos resultados relacionados con el rendimiento individual.


Echa un vistazo a las citas de algunos de los mejores resultados que obtuve:


  • "Un desarrollador diez veces es el desarrollador que es diez veces más eficiente que el desarrollador promedio en un equipo".


  • "Estas son las personas que desea que resuelvan sus problemas; lo harán en 1/10 del tiempo, con 1/10 del número de líneas de código".


  • "Estoy acostumbrado a estar en equipos en los que realizo el 60 % del trabajo con 7 u 8 desarrolladores en el equipo".


Declaraciones como estas me dan escalofríos.


Este. Es. No. Cómo. Nosotros. Construir. Moderno. Software.


El desarrollo de software es un juego de equipo. O incluso un juego de equipo de equipos. Y el juego se puntúa por los resultados comerciales, no por los productos brutos. Siendo eficaz como equipo y organización, no eficiente como individuo.


Como vicepresidente de ingeniería, no busco codificadores competitivos. No me importa cuántas líneas de código generes en qué momento. Y un solo desarrollador que hace el 60% del trabajo del equipo no es algo de lo que me jacte sino una disfunción que considero mi prioridad solucionar.


Entonces, ¿a quién estoy buscando, entonces? Consideremos las siguientes matemáticas:

La matemática simple de trabajar en equipo

Si solo mejora su propia producción, AGREGAR a la producción de su equipo.


Pero si mejora el rendimiento de cada miembro del equipo, MULTIPLICA el rendimiento de su equipo.


Y la multiplicación supera a la suma bastante rápido.


Incluso si realmente es un desarrollador mítico 10x, solo aumentará la producción de su equipo en 10 "unidades", sin importar el tamaño del equipo. Pero si mejora el rendimiento de todo el equipo en solo 2 veces, lo aumentará en 10 "unidades" para un equipo de solo 10 personas. Y por 100 "unidades" para un equipo de 100 personas.


Y estamos hablando de una situación extrema en la que eres 10 veces más eficiente que TODOS los demás desarrolladores del equipo. En realidad, la multiplicación vencerá a la suma para equipos mucho más pequeños que 10 personas.


Además, solo estamos hablando de la salida sin procesar: qué tan fuerte empujas, pero no en qué dirección empujas. Y la dirección en la que empuja todo el equipo es fundamental.

El desempeño individual y de su equipo están conectados

No importa si una lancha tiene un motor de 100 o 1000 caballos de fuerza si este motor empuja la embarcación hacia los lados o hacia atrás, no hacia adelante. Si avanza en la dirección equivocada, es posible que no solo desperdicie su propia producción, sino que también socave el trabajo de todo su equipo.


Puedes convertirte en un desarrollador -10x .


Y esta relación es de dos caras.


Incluso si empujas en la dirección correcta, tu productividad divina 10x puede verse afectada si el resto de tu equipo empuja en la dirección opuesta.


Necesitas ayudarlos, para que ellos puedan ayudarte. Cancela las debilidades de tu equipo para que no cancelen tu desempeño.


Puede sonar contradictorio, pero centrarse en hacer que todo su equipo sea más eficaz suele ser una mejor manera de impulsar su rendimiento individual en lugar de centrarse únicamente en su propio resultado.


Es por eso que otros gerentes y yo no buscamos tanto la eficiencia individual como la capacidad de impactar positivamente a su equipo. Y cuanto más impacto tenga, cuantas más personas ayude a ir rápido en la dirección correcta, más valor generará para su empresa.


Pero no se fíe sólo de mi palabra.

¿Qué te promociona en la mayoría de las empresas de software?

Echemos un vistazo a las escalas de carrera de ingeniería en un par de empresas conocidas:

CírculoCI

CircleCI utiliza una escalera de 6 niveles (E1-E6): ingeniero asociado, ingeniero, ingeniero senior, ingeniero de planta, ingeniero de planta senior e ingeniero principal.


Los niveles E1-E3 se enfocan en la ejecución del trabajo. E1 dentro de la tarea, E2 dentro de la épica/proyecto, E3 dentro del equipo.


Los niveles E4-E6 utilizan habilidades para escalar y generar apalancamiento. Facilitan, guían y asesoran a otros. E4 dentro del equipo y con las partes interesadas del negocio del equipo, E5 en varios equipos y E6 en toda la organización.


FUENTE: https://docs.google.com/spreadsheets/d/131XZCEb8LoXqy79WWrhCX4sBnGhCM1nAIz4feFZJsEo/edit#gid=0

Carta

Carta utiliza una escalera de 7 niveles (L2-L8). En sus propias palabras:


Es fácil articular lo más importante para la nivelación: su impacto en la empresa. Podemos resumir todo el sistema describiendo el impacto (aproximado) que esperamos que tengan los empleados a medida que avanzan: en las tareas (N2), en las funciones (N3), en los problemas (N4), en los equipos (N5), en la organización (L6), sobre la empresa (L7), y sobre la industria (L8).


FUENTE: https://medium.com/building-carta/engineering-levels-at-carta-d33db2a55a20

Spotify

A Spotify no le importan mucho los títulos externos como senior, staff o desarrollador principal. Son muy flexibles con respecto a ellos y dejan que los empleados elijan lo que tiene más sentido para ellos. Pero internamente, usan una escalera de 4 niveles organizada por lo que llaman "ámbitos de impacto".


Y describen estos 4 niveles ("pasos") así:


Hemos identificado cuatro pasos en su trayectoria profesional en Spotify. Cada paso está marcado no solo por una mayor responsabilidad, sino también por su mayor impacto dentro de la tecnología: paso individual, paso de escuadrón/capítulo, paso de tribu/gremio, paso de tecnología/empresa.


FUENTE: https://engineering.atspotify.com/2016/02/spotify-technology-career-steps/

buzón

Dropbox utiliza una escalera de 7 niveles (IC1-IC7): ingeniero de software 1-4, ingeniero de software de personal, ingeniero de software principal e ingeniero de software principal sénior.


Así es como describen el "alcance de la influencia" para cada nivel:


  • IC1: Trabajo en el ámbito de mi equipo con orientación específica de mi jefe.


  • IC2: Trabajo principalmente dentro del alcance de mi equipo con la orientación de alto nivel de mi gerente.


  • IC3: Trabajo principalmente con mi equipo directo y socios multifuncionales mientras dirijo la colaboración entre equipos para mi proyecto.


  • IC4: Soy un líder fuerte para mi equipo y mi impacto comienza a extenderse fuera de mi equipo.


  • IC5: Influyo cada vez más en las hojas de ruta de otros equipos de Dropbox para lograr objetivos que impactan en el negocio.


  • IC6: Típicamente influyo en la estrategia técnica de un grupo.


  • IC7: Por lo general, influyo en la estrategia del departamento y de toda la empresa para lograr objetivos que impacten en el negocio.


FUENTE: https://dropbox.github.io/dbx-career-framework/


He elegido estas 4 empresas porque describen sus escaleras de manera más sucinta y, por lo tanto, se pueden citar casi directamente. Pero un patrón similar se repite ampliamente en toda la industria.


Entonces, ¿qué te hace ascender en todas estas empresas? ¿Qué es lo que más valoran?


Nuevamente, el área del impacto que haces.


Cuanto más grande sea la parte de una organización (y más personas) en las que influyas positivamente, más valioso serás para la empresa y más reconocimiento obtendrás.


Operar a tal nivel puede sonar aterrador. Pero aumentar el rendimiento de todo su equipo en 2 o 3 veces suele ser menos desalentador de lo que parece. Y más fácil que aumentar su rendimiento individual a 10x.


Bien, entonces, ¿cómo puedes hacerlo?

Cómo impactar el rendimiento de todo el equipo o la empresa

Es difícil ser completamente exhaustivo, ya que hay muchas maneras en las que puedes impactar positivamente en el desempeño de otras personas. Pero exploremos varios de ellos para que pueda obtener una buena idea general y desarrollar la mentalidad que le permitirá generar más ideas por su cuenta.

1. Enseñe, guíe y comparta su conocimiento

Empieza pequeño. Discute cosas con tus compañeros de equipo. Difunde tu conocimiento a través de revisiones de código, programación en pareja y reuniones de equipo. Predique con el ejemplo, a través de su trabajo y comportamiento.


Difunde tus conocimientos no solo sobre codificación, sino también sobre cualquier cosa que pueda afectar el rendimiento de tu equipo: procesos, comunicación y gestión del tiempo.


Extienda su impacto a más personas a través de bolsas marrones, talleres y blogs. Aproveche las oportunidades para colaborar con otros equipos.


Finalmente, cuando sea ampliamente reconocido como experto, asuma la responsabilidad de administrar programas de aprendizaje en toda la empresa o liderar comunidades de práctica.

2. Aportar nuevos conocimientos a la empresa

No seas una sensación de una sola vez. No se base únicamente en su experiencia previa.


Aprende continuamente. Hable con colegas fuera de su empresa. Leer. Ir a conferencias. Manténgase actualizado con el estado del arte de la industria. Investigue lo que otras empresas están haciendo. Experimente con nuevas técnicas y bibliotecas.


Sea la fuente de conocimiento innovador que ayudará a su equipo a alcanzar el siguiente nivel.

3. Planificar y coordinar proyectos

Independientemente del proceso que utilice, el desarrollo de software es, al final, un flujo de proyectos grandes y pequeños. Lo bien que se analizan, desglosan, planifican y ejecutan tiene un tremendo impacto en el desempeño de los equipos que los ejecutan.


Ofrecerse como voluntario para preparar y liderar proyectos es una excelente manera de impactar el desempeño de varias personas.


Comience asumiendo la responsabilidad de una parte del proceso: análisis de requisitos, plan de implementación o desglose de tareas.


Realícelo controlando el proceso de principio a fin, supervisando toda la ejecución del proyecto.


Y para lograr el máximo impacto, asuma la responsabilidad de coordinar grandes proyectos entre equipos.

4. Tomar posesión de una parte del código base o del producto

En los sistemas de software complejos, hay muchas "partes móviles" que deben mantenerse durante mucho tiempo: módulos, bibliotecas, subsistemas, productos, servicios, API, herramientas, documentación, canalizaciones, etc. No es fácil mantenerlos bien sin una propiedad clara.


Y qué tan bien se mantienen tiene un gran impacto en el rendimiento de todos los que los usan, lo que, para algunos módulos fundamentales, puede incluso significar todos en toda la empresa.


Al tomar posesión de una parte del código base, producto o subsistema de su empresa y mantenerlo en excelente forma, puede tener un impacto que será difícil pasar por alto.


En una escala más pequeña, puede mantener algo interno de su equipo, por ejemplo, un módulo de código pequeño o un servicio web.


A mayor escala, puede mantener algo fundamental para todo el producto y la empresa, como un sistema de diseño central o una API orientada al cliente.

5. Mejorar las herramientas

Las herramientas eficientes marcan una gran diferencia en la velocidad a la que puede avanzar un equipo. Y hay tantas cosas en nuestro trabajo que se pueden optimizar, automatizar o usar de una manera más hábil.


Canalización sólida de CI/CD. Formateo y linting de código. Conjunto de pruebas rápidas. Código automatizado y generación de datos de prueba. Navegación de código más eficiente. Utilizando todo el poder de su IDE. Mejores entornos locales, de prueba y de ensayo. Sistema de gestión de proyectos bien configurado.


Herramientas robustas para depuración, monitoreo y registro. Mejor capacidad de descubrimiento de componentes y bibliotecas compartidas. Automatizando y conectando tus flujos de trabajo (Github, Slack, Trello, etc.). La lista podría seguir y seguir.


Al mejorar las herramientas, automatizar tareas repetitivas o simplemente difundir el conocimiento sobre cómo usar mejor las herramientas existentes, puede tener un gran impacto en el rendimiento de su equipo y de toda la empresa.

6. Mejorar la base de código y la arquitectura

Ponte en el lugar de los colegas que visitarán el proyecto después de ti. El código y la arquitectura fáciles de entender pueden hacer o deshacer el rendimiento de todo el equipo. Hágalos más limpios, más simples, más fáciles de navegar y depurar, y menos propensos a errores.


Incluso las mejoras relativamente pequeñas en un componente o módulo pueden aumentar considerablemente el rendimiento de su equipo. Y las mejoras más globales, por ejemplo, en las convenciones de código de todo el producto, pueden afectar incluso a toda la empresa.

7. Ayude a su equipo a ir en la dirección correcta

Reunir a las personas para avanzar hacia una única dirección correcta es una de las formas más poderosas de multiplicar el desempeño de todo el equipo. Y puedes influir mucho más de lo que piensas.


En primer lugar, comprenda usted mismo la dirección correcta. Esfuércese por comprender los objetivos, el negocio y los clientes de su empresa. Esto le permitirá comprender qué problemas deben resolverse y encontrar mejores soluciones para estos problemas.


En segundo lugar, ayude a su equipo a ir en la dirección correcta. Comparte y documenta lo que aprendiste. Ayude a su equipo a realizar un seguimiento de las métricas relevantes, recopilar comentarios y trabajar de una manera más iterativa y ágil. Conviértase en un consultor de confianza para su gerente de producto.


Tercero, ayude a coordinar con los otros equipos y partes interesadas, para que toda la empresa vaya en una sola dirección.

8. Apoyar a los no desarrolladores

El software no lo crean solo los desarrolladores de software. Es un esfuerzo concertado de desarrolladores, diseñadores, evaluadores, gerentes de productos, analistas, científicos de datos, investigadores de usuarios y varias partes interesadas comerciales (atención al cliente, marketing, ventas, finanzas).


Apoyalos. Trabajar en estrecha colaboración. Esfuércese en hacerles la vida más fácil, en ayudarlos a ir rápido y en coordinar sus esfuerzos para que todo el grupo interdisciplinario trabaje sin problemas.


Esto le permitirá impactar a su organización en un alcance aún más amplio que el del equipo de ingeniería por sí solo.

9. Mejorar Metodologías y Procesos

La forma en que trabaja su equipo y su organización tiene un impacto fundamental en el rendimiento. Y no está reservado solo para gerentes y scrum masters. Como desarrollador, también puede influir mucho en los procesos de la empresa.


Primero, infórmate. Comprender los principios del empirismo, el desarrollo iterativo, el descubrimiento de productos y Agile. Conozca los enfoques técnicos modernos como CI/CD o el desarrollo basado en indicadores de características. Aprenda cómo funcionan los equipos interdisciplinarios modernos.


En segundo lugar, observe con ojo crítico, busque proactivamente oportunidades de mejora y tome la iniciativa para dar forma al proceso. Sea activo dentro y fuera de su equipo. Participar en discusiones relacionadas con el proceso. Campeón implementando nuevas ideas.


Podrás multiplicar el rendimiento de muchas personas y equipos.

10. Liderar iniciativas técnicas

Muchas mejoras técnicas requieren un esfuerzo concertado de todo el equipo durante más tiempo: reemplazar sucesivamente el antiguo marco por uno más nuevo, migrar a un nuevo conjunto de convenciones de codificación y refactorizar gradualmente una parte crítica de la base de código.


Si no se gestionan ni se impulsan de manera consistente, tales iniciativas generalmente se esfuman rápidamente. Y sus resultados son mediocres en el mejor de los casos.


Voluntario para liderar tales iniciativas. Si los planifica y los administra bien, si facilita que otras personas contribuyan, y si coordina los esfuerzos a su alrededor y los ve hasta su finalización, puede tener un impacto sustancial en el desempeño futuro de su equipo y organización.

11. Mejorar la comunicación y la transparencia

La comunicación clara y transparente es esencial para un trabajo en equipo eficaz. Determina qué tan bien se coordinan las personas, cuánto confían entre sí, qué buenas decisiones toman y qué tan bien entienden sus objetivos.


Y esto se aplica a todos los niveles: dentro de un equipo, entre equipos, entre diferentes roles y departamentos, y entre empleados y gerencia. La calidad de la comunicación puede obstaculizar o desbloquear el desempeño de toda la organización.


Y puedes hacer mucho para mejorarlo.


Comparte tu estado con los otros equipos. Mantenga en buen estado la documentación, hojas de ruta y wikis de su equipo y empresa. Ayude a su equipo a mantenerse informado extrayendo información de forma proactiva de los otros equipos.


Pídale a la gerencia que aclare los objetivos de su equipo y los actualice sobre su progreso. Proponer mejoras en los estándares y canales de comunicación de toda la empresa (Slack, etc.). Iniciar reuniones de coordinación entre equipos cuando sea necesario.

12. Ejemplificar y promover la cultura

No hay una sola cultura correcta. Diferentes empresas se comportan de manera diferente con un nivel similar de éxito. Pero si diferentes personas, equipos y departamentos de la misma empresa chocan culturalmente, se acaba con la productividad.


Comprender la cultura de su empresa. Ejemplificarlo y promoverlo. Sea consciente de su comportamiento y patrones de comunicación.


Afecta el rendimiento de su empresa más de lo que piensa.

13. Motivar a otros

A veces, alcanzar un mayor rendimiento es solo una cuestión de motivación. La voluntad de esforzarse más. Sentirse más hambriento de éxito. Tener la actitud correcta.


No es necesario ser gerente para influir en la moral de su equipo. Predicar con el ejemplo. Transmite buenas vibraciones. Muestre entusiasmo, optimismo y coraje. Haz que el trabajo sea divertido. Manténgase calmado y sereno en una crisis. Reúna a su equipo para esforzarse un poco más cada día.


Tales comportamientos son virales y con frecuencia funcionan mejor que los intentos de "empoderar" a las personas desde arriba. Y se propagan fácilmente fuera de su equipo, lo que le permitirá tener un amplio impacto.

14. Ayuda con el reclutamiento y la incorporación

Otra forma de impulsar el desempeño de una organización es a través del reclutamiento.


Si puede, participe en el proceso de contratación. Participa en las entrevistas. Ayudar a preparar los desafíos de reclutamiento. Revisar CV.


E incluso si no puede participar en el proceso de contratación en sí, todavía hay mucho que puede hacer para ayudar a incorporar nuevos talentos. Refiera a sus colegas. Promocione su empresa a través de blogs, foros de discusión, presentaciones en conferencias y creación de redes. Deja una reseña positiva en Glassdoor.


Asumir la responsabilidad de incorporar y asesorar a los nuevos empleados.

15. Resuelve problemas complejos (y luego difunde el conocimiento)

Si puede resolver un problema que nadie más puede resolver, lo que le dará a su empresa una ventaja competitiva, puede generar una tonelada de valor.


Esto puede sonar como una tarea para un genio solitario, 10x, pero todavía se trata del equipo. Si no difunde el conocimiento sobre su solución brillante, si no la diseña para que sea fácil de reutilizar para otros, se convertirá en un cuello de botella y en un posible punto único de falla en lugar de un multiplicador.


Pondrás a tu empresa en riesgo, no aportará valor.


Pero si puede resolver problemas complejos de tal manera que todos entiendan su solución y puedan construir sobre ella, puede convertirse en un punto de inflexión.

16. Proporcionar dirección técnica y asesoramiento

Su empresa a menudo necesita hacer frente a decisiones con un impacto enorme y duradero. Elegir una pila de tecnología. Elegir un proveedor de nube. Tomar decisiones de construir vs comprar.


Aún más a menudo, surgen preguntas más pequeñas: ¿Cuál sería el tamaño aproximado del proyecto? ¿Es técnicamente factible? ¿Cuáles son las posibles soluciones a este problema?


Conviértase en un asesor de referencia para su equipo y para todo el negocio. Conozca el panorama de la industria en profundidad. Manténgase al día con los últimos desarrollos y tendencias. Ser bueno en la investigación. Le permitirá aportar mucho valor a su empresa.

"Pero, ¿realmente puedo hacer todo esto como desarrollador?"

¿Realmente puede poseer subsistemas, liderar proyectos o tomar decisiones de construcción o compra? ¿No es responsabilidad de los arquitectos, gerentes y líderes tecnológicos?


¡Sí tu puedes! En cualquier empresa bien administrada, su gerente o líder técnico estará encantado de delegar todo lo posible en usted. Este es en realidad su trabajo. Te ayuda a crecer y a tu equipo a desempeñarse mejor, que son las responsabilidades más importantes de un gerente.


Algunas de las cosas de mayor impacto pueden requerir más experiencia: nadie permitirá que un joven recién salido de un campamento de codificación sea dueño de un subsistema de misión crítica utilizado por todos los equipos de la empresa. Pero todos los impactos que discutimos tienen una progresión gradual.


Comience con iniciativas más pequeñas en su equipo y amplíe sucesivamente el alcance de su impacto. Trabaje con su líder o gerente para encontrar más oportunidades de crecimiento. Esté atento a tales oportunidades usted mismo, en su equipo y en toda la empresa. Hágase notar y construya una reputación.


Esto lo pondrá en una vía rápida para hacer un chapoteo cada vez más grande. Para convertirse no solo en un desarrollador 10x, sino incluso en un 100x. Y, si esta es su ambición, eventualmente convertirse en un líder tecnológico.

Línea de fondo

Sí, necesitas ser un desarrollador sólido. Es difícil ser un multiplicador para los demás mientras haces un trabajo horrible. Pero no te preocupes si realmente eres 10x, o 5x, o solo un sólido 1x. Cambie su mentalidad de la eficiencia personal a la eficacia de todo el equipo y la empresa.


Y cuando lo haga, solo el cielo (y el tamaño de su empresa) es el límite. Puede convertirse no solo en 10x dev, sino incluso en 100x y más.