Rather than a dev ask a server guy to make a vm, then join it to the domain, then move it to the right OU, then install anti-virus, etc. then ask a dba to install SQL server, import the database schema, setup permissions, and enable network access, we write an ansible playbook that does it all in a repeatable manner, the same way every time.
You have an n-tier app with a reverse proxy load balancing for 3 web servers and 1 database server, and you want one copy of this app for dev, one for staging, and one for prod, and you want them all the same?
Ansible to the rescue (or better, Terraform, which gives you more control IMO)
You need one more environment for testing the changes to a new system? Add a line in Ansible and rerun the whole thing.
CM systems like Ansible or Terraform let you do Infra As Code and treat your servers like cattle, not pets.
A server acts weird? take out of load balancer, delete the entire VM, re-run ansible to recreate it, poof its happy again.