Everything You Need to Know About DTAP
Within the world of software development DTAP is a well known term. Working with DTAP is something that comes automatically for most developers. But what exactly is DTAP, how do you integrate a DTAP street and, as it is not a new method, is it still relevant today?
What is DTAP?
The abbreviation DTAP stands for Develop, Test, Accept and Production. It helps software engineers to understand in which phase the development a certain piece of software is. The DTAP street follows four phases. DTAP can also be used to efficiently and structurally implement releases and patches. The four DTAP phases of the development street look something like this:
Phase 1: Development
The application or a part of software is first developed in a specially built development environment. Here, one or more people work in a development team on one joint version. In this phase it is important to register the multiple versions.
Phase 2: Test
Most of the time the developed piece of code is transferred to a test environment. Within this environment it can be tested technically as well as functionally. This can be done during the night, that way the results are ready for the developers the next day. Of course, it can also be done during the day, but then developers sometimes have to continue working on other functionalities, until the tests are done. When a release can be continued, this release can be completely tested by all parties involved.
Phase 3: Accept
After approval of the application it can be installed in the acceptance environment. This process is documented in a log. The acceptance environment is, in terms of hardware and software, equal to the production environment. This way you can see if everything works without being under the influence of daily use.
Phase 4: Production
After the application is accepted it can be installed within the production environment.
How to implement DTAP
Most of the time your DTAP environment runs on an external server, like Azure Devops from Microsoft. You can also choose to host it yourself, you can do this with Teamcity from Jetbrains. There are many packages available, but it comes down to configuring a couple of ‘builds’ that can deploy a part or your entire codebase to some sort of environment. Every build has multiple build steps. A very simple build, from a test to an acceptance environment for example, can be done in three steps:
- Retrieve the code from your version-control system.
- With this next step you might want to apply some environment specific fixes within your code, or you want to run a script to zip your code.
- Deploy the code to the acceptance environment.
The tools mentioned before have a useful interface for this. Most of the time, you can create an entire DTAP street with clicks only. Often you will see that you need to add extra steps for bigger and more complex projects and you will need to write a script for this yourself. But, most of the time these are small scripts that can be done in multiple steps.
Is DTAP still a relevant method?
Within a DTAP environment you have to, before you are ready for production, repeat a couple of steps. There are some best practices to make sure that the DTAP method works the way it should.
It can be very convenient for everyone involved to make sure the full development street is already present. A lot of the testing can be done with up to date data. And finally, it is always good to involve the client with the entire process.
Even if DTAP is implemented correctly, there are a couple of issues that might not make it so relevant anymore. DTAP is very time consuming and these days ‘testers’ and ‘developers’ are no longer two separate jobs. The entire project is done in a team and everyone is responsible for testing and developing the software. Because of this change in roles a process like DTAP can always be done more efficiently.
If we take a look into the future then DTAP will most likely be replaced with a container system. With a container system it is the idea that your system consists of multiple subsystems. It is then the intention that the entire system goes through the DTAP street, including the subsystems. This way you deploy the entire system four times. Next to that you can also test each subsystem individually and then you don’t have to go through the four steps of DTAP with your complete system. This saves you time and is therefore cheaper.
DTAP stands for development, test, accept and production. Most of the time the DTAP environment runs on an external server and the build of the different environments usually consists of three steps. DTAP is a method that is still used, especially in bigger companies. The expectancy is that a container system will most likely replace DTAP in the future.