The talking bit

A blog about programming, mainly PHP, and maybe other things


Project maintained by franiglesias Hosted on GitHub Pages — Theme by mattgraham

Ninja (Blogtober2019)

por Fran Iglesias

Mi compañera y manager en Holaluz Mavi Jiménez va a hacer un dibujo cada día del mes sobre una palabra propuesta en twitter. Y aquí vamos a intentar escribir un post por cada una de ellas.

Ninja

Etiquetas como Ninja, Rockstar, 10x, top y otras aplicadas a developers suenan como un intento de crear una especie de escala de excelencia profesional que a base de buscar el término más llamativo e ingenioso se vacía de significado cada vez más.

Definiciones favorables y desfavorables de las características de los profesionales a las que aplicar esta etiqueta se distribuyen en dos polos: las que consideran estos perfiles como positivos y deseables y las que aconsejan huir de ellos como de la peste. He aquí algunos ejemplos:

Los artículos más positivos tienden a mostrar un perfil que es casi calcado a lo que proponen Hunt y Thomas en “The Pragmatic Programmer”, que no es otro que el del profesional con orientación a la excelencia, con sentido práctico, una persona de equipo, capaz de enseñar y aprender, que busca no estancarse e investiga constantemente mejores formas de hacer su trabajo. Por resumir: una persona adulta, madura y responsable, preocupada por ejercer con profesionalidad y mejorar cada día.

Los artículos negativos tienden a denunciar el estereotipo de genio programador, capaz de resolver complejos problemas con un código críptico pero incomprensible para otros, socialmente inepto y ajeno a cualquier forma de trabajo en equipo. Un espécimen al que es mejor despedir.

Lejos de entrar a discutir si este tipo de profesional existe, creo que el verdadero problema está en imaginar en qué tipo de empresa encajan perfiles como el Ninja, rockstar, 10x o el top-programmer. Esa es la parte que da miedo.

Mi impresión es que hay pocas, por no decir ninguna, compañías en las que este perfil pueda plantearse siquiera.

Un equipo de desarrollo dedicado a crear herramientas internas o para clientes brilla cuando es capaz de conjugar la entrega de valor, tanto en forma de features, como en fiabilidad y minimización de problemas, con la excelencia técnica de mantener un código bien construido, mantenible y lo bastante flexible para evolucionar según las necesidades del negocio sin tener un drama cada vez que es necesario hacer un cambio. Un equipo que sea más que la suma de sus miembros y en el que las decisiones tecnológicas se adopten por que son convenientes para sus objetivos, no porque lucen más o menos en el currículum o estén más o menos de moda.

No creo que los Ninjas, sean quienes sean, tengan cabida en un equipo así.

October 5, 2019

Etiquetas: blogtober19  

Temas

php good-practices blogtober19 testing refactoring tdd design-principles legacy misc design-patterns bdd tips python ddd tools soft-skills bbdd api sql ethics testing, swift javascript