7 ms·
> A messy problem should have a messy solution as that would reflect the problem I've never heard this expressed before and it goes against my experience. My e
by michaelwww 4y ago
> A messy problem should have a messy solution as that would reflect the problem
I've never heard this expressed before and it goes against my experience. My entire goal is to find a simple solution to a messy problem. I can think of a lot of simple solutions to messy problems. If programming required me to come up with messy solutions to messy problems I wouldn't want to do it. Most programmers like that "a-ha" moment of a discovering a simple and elegant solution to a messy problem.
- Aperocky 4y agoExactly, solution to a messy problem is 3 simple solutions working together, not one messy solution.
- michaelwww 4y agoI'm a bit old so when I was growing up in the 60's a cartoonist named Rube Goldberg made his living by amusing people with overly-complicated solutions to simple problems. I don't hear him mentioned anymore so I'll mention him now https://en.wikipedia.org/wiki/Rube_Goldberg_machine https://en.wikipedia.org/wiki/Rube_Goldberg_machine
- speed_spread 4y agoI've been thinking about a Ruby variant that would be called Rube.
- kaba0 4y agoThat is not always possible - sometimes the problem domain is simply complex enough and we should accept that. Fighting essential complexity is stupid.
- bmitc 4y agoI think you maybe over interpreted what they said, at least compared to how I interpreted or think about these things. Highly optimized or robust code or code with a lot of edge cases is "messy" in the sense that there's a lot of details separate from the high-level concept that get mixed in and can't always be modularized or abstracted away or made simple. That's fine though if pieces of code like that are localized to the complex problem they solve. Simple is a relative concept that can change substantially. Simple code closer to hardware is messier that simple code at a higher level. I once interacted with a developer that optimized everything. Looking at the code, it was impossible to know what actually needed to be optimized because everything was optimized or had the appearance of so.
- kaba0 4y agoI would probably put it like a messy problem can’t have a too elegant solution, in that essential complexity can’t be reduced. If your problem domain have edge cases everywhere you might be able to put an elegant abstraction over the common case, but the edge cases will have to be dealt in an inelegant way.
- he0001 4y agoThere are several problems with real messy solutions as the real world isn’t beautiful. Time and time zones comes to mind. Some countries just deletes or add days. Contracts in HR are usually completely a mess as they differ from company to company. The list goes on. I believe the “fallacies-that-programmers-believe-about-X” is a good indication that problems aren’t that clear cut as they seem. And when you do get trapped with the “simple solution that doesn’t fit the next iteration of the problem scope”, where someone else tries to fix your elegant solution to yet fit another problem which the original code didn’t really solve or was thought of, creating a mess.