Theoretical engineers
I read this comment in a Reddit thread about best practices vs. reality, and it really got me thinking:
The embodiment of “theoretical software engineer”. It’s like a theoretical physicist with the caveat that by the time you’re proven right or wrong, your opinion no longer matters.
I love the contradiction within this statement: "a theoretical engineer is like a theoretical physicist, but also not." That's because software development evolves so quickly, unlike the natural world. While theoretical engineers dive into theory — patterns, best practices, principles — they get out of touch with reality so quickly, that by the time they've come to conclusions, those conclusions have lost most of their value.
This resonates with me. Not because I think all theory is bad, but because in the real world, projects aren't perfect. There will always be compromise, there will always be the need for pragmatism and quick fixes. Software development — unlike physics — isn't defined by the laws of nature, it's defined by people: whimsical, emotional, often irrational beings. There are many uncontrollable factors, and trying to control all of them is a fool's errand.
Of course, everyone has a bit of a theorist inside them, some more than others. These aren't bad qualities, but we should be aware how to balance them with reality.