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?