← Back to context

Comment by TeMPOraL

7 days ago

> Second, people are not good at separating problem from implementation. in fact, people are horrible at this. I think people have a very difficult time envisioning that the problem and the existing solution implementation (which itself might be making the problem worse) are separate things. so most people rarely consider and often actively oppose, radically different solutions.

I'm bouncing back and forth on this. One thing I've learned over nearly two decades of programming, is that problems often are not separate from implementation - the one often defines or shapes the other to a large degree. Moreover, often enough it's not worth it to aim for clean separation - that's the road to becoming an "architecture astronaut".

I've also noticed this generalizes outside of programming. The key insight being, when people accuse "techies" of being "know-it-alls" and coming up with simplistic solutions (or my pet peeve of a term, "technological solutions to social problems"), what they're complaining about is generalizations - the kind you get when you focus on the abstract problem and forget about implementation details. This is particularly notable when one then tries to transfer a general solution/framework from one problem space to another, because whether or not it applies is largely determined by implementation details.

An example: understanding exponential growth and connecting it with basic virology is good. Applying that model to virological problems is okay - but the devil's in the details. Transferring that model to something else by means of analogy? Well, that very much depends on which assumptions you borrowed from virology, and it's helpful to be aware of those assumptions (implementation details) in the first place.

Seen plenty of that on every side of argument during COVID.