No es necesario aplicar tus nuevos conocimientos al instante
Tenía pensada una entrada un poco más larga sobre el ciclo de vida de Hibernate, pero al finalizar la reunión de AgileCanarias de este viernes entre caña y caña, surgió un tema muy interesante que me gustaría comentar en el blog.
Hay un comportamiento típico en la mayoría de desarrolladores (de software) que conozco, incluyéndome a mi mismo, que es la tendencia a utilizar todo lo que aprenden a la mínima oportunidad. Y esto está bien cuando no se trata de proyectos reales que están en producción. Por ahí se suele decir que si "tu única herramienta es un martillo, todos tus problemas se parecerán sospechosamente a un clavo", pues este es un caso bastante similar pero en la otra cara de la moneda. Si te compras un taladro, estarás como loco buscando donde hacer un agujero, cuando lo que necesitas es apretar un tornillo.
Voy a dar una pequeña lista de razones por las que se debe andar con mucho ojo antes de aplicar una nueva técnica, herramienta, metodología o similar.
- Cuando utilizas nuevas aproximaciones que acabas de aprender, generalmente no conoces todas sus implicaciones. Siempre es mejor probar en un pequeño toy project (ver Apprenticeship Patterns) o hacer un spike, antes de usar dichas aproximaciones en "la vida real".
- Como continuación del punto anterior. Las nuevas "herramientas" siempre vienen con su "manual de instrucciones", que deberíamos al menos ojear aunque hayamos visto como la utilizan otras personas, porque puede que la estemos utilizando incorrectamente.
- Lo normal es buscar entre todas nuestras herramientas cual es la adecuada para hacer un trabajo, no buscar cuál es el problema adecuado para utilizar una determinada herramienta. Si lo hacemos de la segunda manera por norma general llegaremos a lo que se suele denominar sobre-ingeniería y tendremos código que al final nunca se utiliza. En el peor de los casos tendremos una solución que no es la adecuada, no escala bien o no cumple su objetivo con eficacia.
Yo creo que esto sucede porque asoma el pequeño ingeniero/científico, o como lo quieras llamar, que llevamos dentro. A veces necesitamos algo nuevo que nos llame la atención, que nos entretenga, que despierte de nuevo nuestro interés innovador. Pero por el bien de nuestro yo futuro, será mejor hacer algunas pruebas iniciales en un toy project, y pensar con la cabeza fría cuales son las mejores herramientas de las que disponemos para nuestros problemas actuales.
Si es algo que te ha pasado alguna vez, te sientes identificado, piensas que es una tontería o que simplemente este artículo es una chorrada, no dudes en dejar tus comentarios :-D
Comentarios
Muchas veces los jefes, proyectos, o incluso nosotros mismos, nos condicionan a actuar como bomberos, bomberos que sólo se preocupan por apagar fuegos. Esto hace que nos olvidemos de entender lo que hay debajo de las capas en las que estamos trabajando y que nos lancemos a resolver problemas fundamentandonos en la suposición en lugar de en el conocimiento..
Y como muchos saben "la suposición es la madre de las cagadas" !! xD
Muy buen post !!
Un saludo.
Diría que una estrategia conservadora será la más beneficiosa en ciertas condiciones y una más arriesgada lo será en otras.
Lo que tu dices tiene todo el sentido del mundo, siempre y cuando nos documentemos adecuadamente sobre esa tecnología antes de empezar a utilizarla.
Un saludo.
Me pareció apropiado el aporte.
Saludos