Logo
  • Lecciones aprendidas
  • Hola!
Dani Pàmies, Copyright 2015
10 abril, 2015
dpamies
Artículos
2

El programador ninja

PreviousNext
el-programador-ninja

Estaba yo trabajando esta semana en mis labores cotidianas cuando Lluis me pregunta: “Dani, ¿qué es un programador ninja?” Lluís había detectado que numerosas empresas de desarrollo software requieren programadores ninja para participar en sus proyectos.

Movido por la curiosidad y después de unas búsquedas en Google, encontré información variopinta y publicaciones interesantes como Ninja Programmer that all the tech companies want to hire? o “Ninja programador: afilando la katana”. Sintetizaría toda la información en las siguientes líneas:

  • Es un programador con amplia experiencia en diversos lenguajes de programación (java, php, javascript, c++, python, etc). Su experiencia ha sido adquirida con la práctica.
  • Puede participar en cualquier capa de desarrollo de un sistema: front-end, negocio, base de datos.
  • Fruto de su experiencia también domina diferentes frameworks de programación, patrones de programación, sistemas de bases de datos, conexiones entre sistemas (apis, webservices, etc),sistemas operativos diferentes, Plataforms as a services, microservicios, etc.
  • Tiene herramientas “ocultas” (foros, algoritmos, amigos, libros, artículos, aplicaciones, scripts, procesos batch, etc.) que le permiten solucionar casi cualquier problema dentro de un proyecto de desarrollo de software.
  • Saben usar la herramienta más adecuada en la situación que corresponde.
  • Arriesgan a usar estas herramientas como soluciones a problemas que otro tipo de programador no usaría. (como modificar un fichero mediante un editor hexadecimal en un sistema en producción). Adquieren riesgo.
  • Suelen dar respuesta a horas intempestivas. Cuando la cafeína predomina en su cuerpo.
  • Altamente eficientes, desarrollando en el menor tiempo y coste posible.

Interpreto pues que un programador ninja es requisito indispensable en un proyecto en dos tipos de escenarios:

  1. Que haya una falta de conocimiento en varios aspectos del proyecto y el equipo no sepa, pueda, o tenga tiempo para solucionar.
  2. Que el proyecto requiera de una figura que pueda moverse y desenvolverse bien en los diferentes módulos de desarrollo.

Si el escenario es el primero, puedes llegar a convertirte en lo que hace un tiempo llamaríamos “Browner eater” 🙂 . Si el escenario es el segundo, puede ser mucho más gratificante, dependiendo del tipo de reto que te guste. Si lo que te gusta es realizar arquitectura, optimizar procesos o abstraer conceptos para desarrollarlos, no es tu sitio. Si te gusta la acción, el reto a corto, encontrar el error, si que lo es. Todo y que no estoy de acuerdo en todo lo que se dice, te recomiendo el post “Programador ninja o programador zen” para ver ejemplos de lo que hablo.

Ya en mi post “El diseñador programador” hablé de aquellas figuras que saben y pueden hacer de todo, pero no volveré al debate, por el bien de todos 🙂 Sigo pensando que en caso de tener que elegir, prefiero trabajar en un equipo dónde diferentes personas tengan experiencia y aporten de lo que saben para aprender, que en uno dónde exista un gurú que lo sabe todo.

No creo que las características de un programador ninja sean intrínsecas a una forma de ser o de hacer, sino la potencialidad que puede darse dentro de un equipo en un proyecto o a su estilo creativo de resolución de problemas. Un profesional que tiene capacidad de abstracción adquirida por la experiencia y por la forma en como se dan solución a los problemas.

Un buen programador sabrá entender el problema, verlo desde diferentes ángulos, dar razonamientos lógicos para buscar soluciones y aplicar las herramientas que dispone para solucionarlo. Al igual que un buen diseñador, redactor, guionista, cantante, médico, abogado o cualquier otro profesional que se dedique en cuerpo y alma a lo que hace.

Para mi, al igual que para mucha otra gente, el término ninja es un término más marketiniano acuñado desde algún departamento de RRHH que ha ganado adeptos entre los desarrolladores. El término ha servido para hacer atractiva unas funciones de una empresa dentro de un equipo que realmente, puede que no lo sean tanto.

Para contestar a Lluis, y desde mi punto de vista, el término “programador ninja” no deja de ser un término marketiniano que usan departamentos de RRHH para definir: programador experimentado en diversos proyectos con diversas tecnologías que tiene un estilo creativo de resolución de problemas tipo “implementador”.

Si te consideras un “programador ninja” o has trabajado en un proyecto en el que se explicitaba este rol, ¡estaríamos encantados de escuchar tu opinión!

desarrollo informáticoequiposProgramación
Share this

The Author dpamies

More Posts Like This One

el-error-como-palanca-cambio

El error como palanca de cambio

20 marzo, 2015
Creatividad_gestion_proyectos

Creatividad en gestión de proyectos

27 noviembre, 2015
exigente-contrato-proyecto

Exigente con el contrato o con el proyecto

15 abril, 2016
2 Comments General

2 Comments

  • sikis izle
    7 mayo, 2016 10:02 pm

    excelente artigo.

    Reply
    • dpamies
      18 mayo, 2016 6:31 am

      Muchas gracias Sikis!

      Reply

Leave A Comment Cancelar respuesta

 

Entradas recientes

  • Taller de innovación creativa en BDW
  • ¿Gestionas o repartes?
  • ¿En qué es bueno mi hijo?
  • El brief como herramienta
  • Cyborgs, personas y tecnología

Comentarios recientes

  • dpamies en Equipos con entusiasmo
  • dpamies en El programador ninja
  • Ubuntu VPS en Equipos con entusiasmo
  • sikis izle en El programador ninja
  • Dani Pàmies en 6 beneficios de un proyecto UX

Archivos

  • junio 2016
  • mayo 2016
  • abril 2016
  • marzo 2016
  • febrero 2016
  • enero 2016
  • diciembre 2015
  • noviembre 2015
  • octubre 2015
  • septiembre 2015
  • agosto 2015
  • julio 2015
  • junio 2015
  • mayo 2015
  • abril 2015
  • marzo 2015
  • febrero 2015
  • enero 2015
  • diciembre 2014
  • noviembre 2014
  • octubre 2014
  • septiembre 2014
  • agosto 2014
  • julio 2014
  • mayo 2014
  • abril 2014
  • marzo 2014
  • febrero 2014

Categorías

  • Artículos
  • Eventos

Meta

  • Acceder
  • RSS de las entradas
  • RSS de los comentarios
  • WordPress.org