To meet these requirements, we worked with virtualization systems early on and finally found our solution with DDEV, a Docker-based local development system.
On the one hand, we can use Docker containers to assemble all the software components we need for a project. Even multiple projects at the same time with very different requirements are no problem, which is sometimes essential for testing client/server components at the same time.
Also, all DDEV configuration is also under version control; this means that a developer can check out a new project from version control within minutes and have a working copy on the local machine using one command. This has allowed us to optimize setup times for projects.
Also, a current database state and file assets (each from the previous day) are synchronized from a cache to the local machine with one command. Even very large projects are ready to work on a developer's computer in less than 15 minutes. If necessary, the data is automatically anonymized, which I will discuss in more detail in a later part of this series.
For our customers, this means faster results and less onboarding time. Our developers are happy about a standardized project setup and can concentrate on the essentials without having to waste time in the project setup.