## Metadata * URL:: [link](https://specbranch.com/posts/expensive-abstraction/) * Publisher:: [[specbranch.com|Specbranch]] * Tags:: ## Highlights * Every project is built with a set of assumptions, requirements, and values. * Even abstractions that are well-aligned at the outset of a project can see themselves becoming the wrong choice. Usually, the change comes from either the underlying assumptions changing or your values changing. * You can’t avoid abstractions as a software engineer - software itself is an abstraction. In a way, software engineers are professional abstraction wranglers. The only thing we can do is stay on top of our abstractions, the underlying assumptions they make, and their implications.