Very interesting topic raised! First, I am rather on "idealistic" side, but also practically idealistic. I am trying to understand "it works" in the wider picture. This script works for me today to do a very specific thing. But it does not work any more if I need to use scripts to fix problems of software, which otherwise build with a narrow attitude "it works".
For me "it works" means, that it does not only work today, but also the non-functional qualities of the said piece of software enables it to work in the future. It does not mean that I should envision every possible direction the product will go, but that I systematically limit myself in the means of expression, I do not assume or demand too much from runtime environment, etc. Also, I have observed many times that something "does work" in a very specific setting, namely, on developer's own machine, with that developer's database data. It also works with the unit tests the developers came with. "It works" attitude is good for prototypes, but the attitude cause Y2K-like problems.
That said, I would challenge the dichotomy itself. The spectrum ("pragmatic" <-> "idealist") can be made into two-dimensional plane, where we can made pragmatic and idealistic dimensions more or less independent. This is very powerful way for imagining the synthesis, which resolves the "contradiction". And then we shall see that "it works" and "build in the correct way" are not really opposites. On that 2-dim plane we can see the path for an individual developer to a be a better oneself from near 0 to hero. The path will not be a diagonal in practice, which this article discusses in the black-n-white.
And obviously there are degrees in both how to understand "it works" and how to understand "built right way".
Here we come to the Holy Grail of software industry: working software built in the right way.
I guess, the same exercise I did above with rotating opposites 90 degrees can be done also to tackle software developer team's diverse spectra.
Again, thanks for bringing this up!