Herramientas a la venta para chapuzas

Existe la creencia de que si una herramienta creada y vendida por una compañía de renombre, permite realizar determinadas prácticas, estas son buenas. Error.

Las compañías que hacen negocio vendiendo herramientas para desarrolladores saben perfectamente que la mayoría de sus clientes se dedica a hacer ñapas y se lo pone fácil para que siga con ellas. Simplemente le dan a sus clientes lo que les piden, guantes ignifugos para seguir metidos en el fuego y gasolina para que no pare de arder.

Una de las empresas que mejor marketing hace de estas herramientas es Microsoft. Lo pone todo "a guevo" para que los desarrolladores de su plataforma hagan la chapuza más y más gordas. Pero esto no significa que Microsoft no haga buen software ni tenga gente muy buena trabajando. Significa que sabe hacer dinero muy bien. Y no significa que el uso de esas herramientas sea correcto. Lo digo porque se ve amenudo a la gente haciendo las cosas mal, animados por la herramienta.

Algunos ejemplos:
- El debugger: Poder depurar las webs como hace Visual Studio es una maravilla, no he visto debugger mejor en mi vida. Pero un buen artesano no necesita el debugger en el 97% de las veces. Y cuando lo necesita le vale con un "print".  Usa el debugger habitualmente significa que tu proceso de desarrollo es ineficiente y tu código malo.
- El poder colapsar bloques de codigo (regions): El código de un método debe caber en una pantalla y el de una clase no debería tener mas de 3 pantallas. El hecho de que puedas anotar bloques con "#region" y meter toneladas de código, no significa que sea una buena práctica. No puedes conformarte con meter regions en tus miles de líneas de código.
- Autogeneración de tests automáticos: Pex explora el código y genera tests que recorren todos sus caminos de ejecución posibles. ¿Y luego quién entiende y mantiene esos tests? No queremos 100% de cobertura sin más, queremos saber por qué fallan los tests y cómo arreglarlo!
- DataTables: .Net trae de serie clases que permiten manejar estructuras de tabla para transformar una tabla SQL en una Tabla C#.  El sueño de todo chapucero que quiere limitarse a conectar tablas SQL con una UI. ¡Los DataTables deberían estar terminantemente prohibidos!, porque rompen la posibilidad de orientar a objetos.

No cargues la responsabilidad de tu poco cuidado en la herramienta.

He puesto ejemplos de código .Net porque lo estoy trabajando recientemente pero esto pasa con Java y con todo. Lo único que cuando la herramienta la saca una empresa como Jetbrains, Microsoft, Attlassian, etc, la gente no se cuestiona su uso. Ahora me vienen pocos ejemplos a la mente pero hay muuuuchos más. ¿Te animas a ponerlos en los comentarios?

Enjoyed reading this post?
Subscribe to the RSS feed and have all new posts delivered straight to you.
  • Eladio López

    Para mi ya un caso extremo, son las herramientas “CASE” que generan código por tí (mejor dicho contra tí). En empresas que las usan ya para que hablar de test unitarios, POO o líneas de código por método y clase.
    Allí si hay un bug solo puedes ir a rezar al sitio más cercano. IBM es especialista.
    Me he sentido bastante identificado con el post… y reconozco que caigo en esas tentaciones, pero bueno, poco a poco saliendo del hoyo :).

    Un abrazo, Carlos!

  • http://www.carlosble.com Carlos Ble

    Es verdad Eladio! IBM es el rey de estas cosas sin duda 🙂
    Un abrazo

  • http://geeks.ms/blogs/devnettips Vicenç García

    Hola Carlos!

    Yo creo que la responsabilidad de todo esto es del desarrollador, que lo utiliza sin pensar.

    Si miramos los temas concretos que comentas:

    En el tema del debugger entiendo tu postura, pero para llegar a ese punto se necesita muchas horas haciendo tests y para ayudar a pasar esas horas el debugger va de muerte… 😛

    Pex es una herramienta del equipo de research, que diria que está todavía en beta y que ultimamente no le hacen mucho caso. Utilizar a lo bestia Pex es una locura, pero quizá hay escenarios que si es útil, como si te encuentras con un gran código legacy. Hablo por no callar, pq nunca lo he utilizado.

    Y los datatables… pues si, son una chapu 😀

    No quiero que parezca que defiendo a las grandes compañías, pero creo que la mayor responsabilidad en todo esto está en los desarrolladores. Yo por mi parte prefiero tener una buena caja de herramientas para poder escoger cual utilizar en cada momento.

    Un abrazo!!

  • http://www.carlosble.com Carlos Ble

    Totalmente de acuerdo Vicenç, lo que quería transmitir es que es responsabilidad del que usa la herramienta. Es que a veces, he topado con gente que pensaba que esas prácticas eran correctas porque estaban soportadas por el framework o la herramienta en concreto y quería hacer la distinción de que una cosa no conlleva la otra.
    Debo decir que Visual Studio es mi IDE favorito 🙂