El síndrome NIH redux

Ya escribí en su momento sobre la cultura NIH, pero un interesante post de Jeff Atwood invita, como siempre a la reflexión sobre cuando es conveniente reinventar la rueda.

El caso es que se plantea hacer una función para sanear el HTML que introducen los usuarios de modo que se eviten los posibles ataques XSS. Alguien le dice que para que hacerlo si eso seguro que ya esta hecho a lo que Jeff responde con este post, indicando que el conocimiento sobre el saneamiento del HTML es una parte fundamental de su negocio.

En ese momento, se hace referencia a un artículo de Joel Spolsky en defensa del NIH, donde se introduce el siguiente cuestionario:

  1. La reutilización de código es:
    1. Buena
    2. Mala
  2. Reinventar la rueda es:
    1. Bueno
    2. Malo
  3. El síndrome NIH es:
    1. Bueno
    2. Malo

Cuestionario al que toda persona de bien debería responder 1), 2) y 2). ¿Verdad?

Entonces viene la defensa. Vale, reutilizar código, tanto nuestro como de otros es bueno. Vale, reinventar la rueda es una pérdida de tiempo, seguramente otros hacen mejores ruedas y vamos a perder el tiempo. Vale, el síndrome NIH es una lacra social.

Pero… ¿existe algún motivo por el que valga la pena reinventar la rueda?

Joel lo dice claro:

Si es una función principal de tu negocio, hazla tú mismo, no importa lo que sea.

Es decir, si lo que hay que desarrollar es nuestro propio negocio, hay que reinventar la rueda y invertir esfuerzo en hacerlo. No importa lo que sea, pero si nuestro negocio depende de ello y es parte del conocimiento de nuestra empresa, lo mejor será hacerlo uno mismo.

En mi caso por ejemplo, tenemos desarrollado un gestor de proyectos. En su momento, fue un producto estrella y lo lógico es que hiciésemos el desarrollo y además, lo usásemos. Ahora mismo, ya no es parte del negocio así que convendría buscar una solución externa a la gestión interna de proyectos.

También tenemos desarrollado un gestor de tickets, que nunca se pensó como parte del negocio por lo que nunca se tuvo que haber hecho, se podría haber usado perfectamente uno de los miles de gestores de tickets comerciales que existen, como por ejemplo se está haciendo con el CRM.

Pero ahora mismo estamos enfrascados en el desarrollo de un ECM. Vale, hay ECMs comerciales impresionantes a los que posiblemente nunca alcancemos, pero vender ECMs personalizados para el cliente es nuestro negocio y tenemos que saber hacer ECMs. Podríamos revender otros ECMs pero entonces la empresa debería cambiar su enfoque de negocio.

Via | Programming is hard, let’s go shopping!

Si te ha gustado esta entrada, por favor deja un comentario o suscríbete al RSS para que puedas recibir todas las novedades en tu lector de feeds favorito.
This entry was posted in Programación and tagged . Bookmark the permalink.

Leave a reply