The OpenTF Manifesto
Actually, can we just kill Terraform? Please?<p>Terraform has a bad design. It&#x27;s a configuration management tool, first and foremost, and configuration management tools need to do one thing well: fix things. Not just &quot;change state&quot;, but functionally, actually fix some software to make it work again. Terraform is really bad at this. It&#x27;s difficult to configure, difficult to operate, and it likes to find any reason at all to just blow up and force you to figure out how to make the software work again.<p>Configuration management tools should make your life easier, not harder. You shouldn&#x27;t have to hire a &quot;Terraform Admin with 3 yrs experience&quot; just to learn all the bizarre quirks of this one tool just to get your S3 bucket to have the correct policy again. You shouldn&#x27;t have to write Go tests just to change said policy. It&#x27;s like it was invented to be a jobs program for sysadmins.<p>I have a laundry list of all the stupid design decisions that went into the damn thing. And because the entire god damn industry is stuck on this one tool, no other tool will ever replace it. Its providers are so large and there are so many modules created that it would take years of constant development to replace it. So it doesn&#x27;t get changed or improved, and it can never be replaced. It is the incumbent that blocks progress. A technological quagmire we can&#x27;t extricate ourselves from.<p>The essential purpose of this tool is really to be a general interface to random APIs, track dependencies in a DAG, pass values into resources when it has them, attempt to submit a request to the API, and then die if it doesn&#x27;t get a 200 back. We can accomplish this in a simpler way that is less proprietary and more useful. And we can ramp up on specific functionality to give the solution actual intelligence, like default behaviors for specific resources in specific providers, hints on how to name a resource, more examples, canned modules that are easier to discover or publish, ability to use different languages or executables, etc. But we need to put forward those alternatives now, or we won&#x27;t get the chance again for a long time.