Gotchas of my arguments through this repository are collected here.
Obviously I'm baised towards Crossplane (look at the name this repo!). I'm shaped by my experiences and preferences with productivity and scalability in mind.
Terraform is a tool that I have (a lot) more experiences and the shortcomings of it are more exposed to me. Crossplane is a tool that I appreciate as a new generation tool that it makes possible to push the boundaries of what we can do differently with IaC.
In Why Not Terraform, I depict the unhappy cases, and in Why Crossplane, I depict the happy cases intentionally.
Why? I wanted to point out what might be (hidden) in your way with using Terraform and what might be enabling you a better way with Crossplane.
It's technically possible to overcome shortcomings of Terraform workflow when your team make extra efforts. It's (quite) possible to have difficult times with Crossplane especially since it's newer tool and best practices are much harder to find.
But hopefully what I depcited on each documents resonate with real use case scenarios that I believe naturally occur.