An environment for software development is much more than an OS. There are tools and systems that are installed onto it. People also have preferences, so there really isn't a one size fits all.
A better question may be "How do you maintain parity for your developer systems?"
This is more complex than using something like Packer or Ansible to create a consistent VM. How do you know if the developer changed something manually?