In software development, creating the environment is a hugely important task.
Software development is about creating controlled environments where things work as expected. This is the rationale behind tools such as Ansible, Terraform, and other automation and Infrastructure as Code (IaC) tools. Development should reflect production. Unfortunately, it usually doesn't.
Development usually happens at small scale in environments that are not representative of where the software will be used by users. Working locally is convenient and developers like it. Additionally complex applications often require large amounts of supporting infrastructure for them to run.
But such mismatches between the developers write the code and where operations run it result in complex bugs being found after to pushing to production. It makes it difficult to reproduce issues that are due to environment, or appears alongside a certain network configuration, or happens with an older version of the database. Together, these issues contribute to long development cycles and impact operation and uptime.