Hacker News new | ask | show | jobs
by seanhunter 638 days ago
Yeah. The hallmark is they reference some document by Martin Fowler. That's a red flag for me.

I would add - one of the symptoms of this type of over-abstraction is what you could call the "where tf" problem. Any time you need to do anything it's really hard to figure out where

1) ...the thing you're trying to fix actually happens so you can fix it

2) ...the new feature you're trying to add should actually be added

3) ...it's going wrong when it's going slow/not scaling/stalling somehow

...because in reality the answer to the question "where" is always "all over the place". And that means you typically need to make several small changes in various places to do anything. So you've papered over the intrinsic complexity of the system and you have a really nice looking whiteboard but the complexity is now distributed in a bunch of places so it's conceptually complex and much harder for a dev to actually get their arms around the whole system and understand it fully. And you now have a false sense of security because you have great test coverage but the kind of problem you now face isn't caught by tests. Because typically the type of problem you hit is you should have made 6 changes in different places to implement your feature but you've forgotten one and only implemented 5. So the system is now semantically broken in some way even though all the tests pass.