Environments should have homogeneous application configuration, software, operating system, infrastructure and data (where appropriate).
Less time will be taken to investigate issues caused by environmental discrepancies, this will allow for faster delivery of business requirements and give higher confidence in what we are delivering is correct.
- Configuration will need to be enshrined in version-controlled code.
- Software packages that are not amenable to being consistently configured will be less desirable.
- Software that is free, or provides cheaper licenses for development and testing, will be preferable.
- We will need to invest heavily in making data available and consistent across environments.
- Creating (and destroying) new environments, including appropriate data sets, will need to be as simple and as fast as possible and will rely heavily on the principle of Automate by Default.
- Particularly where an “environment” is required to include a large set of (distributed) applications in order to facilitate end-to-end testing, the creation and maintenance of an environment can be very expensive. Reducing/limiting the number of environments may act as an enabling constraint – the fewer environments we have, the easier and cheaper it will be to keep them consistent.
- We will require consistent configuration of infrastructure (including networks, firewalls and servers).