Me parece que el desacoplamiento y YAGNI son virtudes muy complementarias. (Me acabo de dar cuenta de la respuesta de Rob, y parece que estamos en la misma página aquí). La pregunta es cuánto desacoplamiento debe hacer, y YAGNI es un buen principio para ayudar a determinar la respuesta. (Para aquellos que hablan de pruebas unitarias, si necesita desacoplarse para hacer su prueba unitaria, entonces YAGNI obviamente no se aplica.)
Realmente dudo mucho de las personas que dicen que "siempre" se desacoplan. Quizás siempre lo hagan cada vez que piensan en eso. Pero nunca he visto un programa donde capas adicionales de abstracción no puedan agregarse en alguna parte, y sinceramente dudo que exista un ejemplo no trivial de tal programa. Todos dibujan una línea en algún lado.
Según mi experiencia, he desacoplado el código y nunca he aprovechado la flexibilidad adicional tan a menudo como he dejado el código acoplado y luego tuve que volver atrás y cambiarlo más tarde. No estoy seguro si eso significa que estoy bien equilibrado o quebrado en ambas direcciones.
YAGNI implica que uno no es un tipo de vidente, ver http://c2.com/cgi/wiki?YouArentGonnaNeedIt –
Sé exactamente lo que es, pero solo juegas un juego con él. Pero muestras por qué es esencialmente una frase tonta. Si quieres debatir si YAGNI es un galimatías psíquico o simplemente una miopía, no lo haré porque es una discusión aburrida e infructuosa. – BobbyShaftoe