Chapter 5. Control Development, Test, Acceptance, and Production Environments

Testing shows the presence, not the absence of bugs.

Edsger Dijkstra, Software Engineering Techniques

Best Practice:

  • Create separate environments for various stages in the development pipeline.

  • Keep these environments as similar as possible and strictly control the progression of code from one environment to the next.

  • This improves speed and predictability of development, because defects found in each environment can be diagnosed clearly and fixed without disturbing the development flow.

Imagine that in your development team, a sprint-specific Definition of Done is defined and a version control system is in place. The developers are now able to write code and quickly merge their versions. You notice that development of new features proceeds quickly, but the process of testing, acceptance testing, and production monitoring takes a long time to perform and validate. There is still a fair amount of code that was tested successfully in the test environment that fails during acceptance testing. The team encounters trouble when they need to fix bugs/defects for which they had written the fix long ago.

These are the kind of issues that may be caused by inconsistencies between different environments: Development, Test, Acceptance, and Production (DTAP in short). Let us briefly review these four environments:

  • Development, in which developers modify source code. This environment is optimized for developer ...

Get Building Software Teams now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.