It's time for another post about Post-Architecture! This time the thesis is Premature Abstraction Is the Root of All Evil: https://arendjr.nl/blog/2024/07/post-architecture-premature-abstraction-is-the-root-of-all-evil/
I've taken a bit more of a practical turn with guidance on how to keep (early) architecture as simple as possible. Please let me know what you think!
Replies to this post will appear as comments on the article.
@arendjr
I will stick in my perennial comment: most developers need to be taught to come up with abstractions (and use existing ones, like hashmap and set) rather than avoid creating too many. Overengineering happens and in this context lots of guidance helps but I want to scream "but you can use abstractions!!!" first
Very old discussion:
https://blog.startifact.com/posts/under-engineering-over-engineering-right-engineering/
@faassen Haha, yeah, using abstractions is indeed a skill that needs to be learned. I think we’re already pretty much in alignment, as nowhere did I mention you cannot use abstractions. Using abstractions is almost inevitable, and I think nobody would bat an eye if you use an abstraction you need. I think the main danger I’m trying to warn against is developers who identify more with the architect role and start to put abstractions where they’re not needed.
@arendjr
Oh for sure. I just worry somewhere along a game of telephone people will say "don't use abstractions"
Just like I have heard "just write the dumbest code and then profile if it's too slow". That's true if you have absolutely no idea, but if you know your database will have 10 million rows maybe a for loop to implement a query is something you can avoid right away