Everything You Need to Know About DTAP

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. 

Related blogs

How to: Getting An App On The AppExchange

How to: Getting An App On The AppExchange

Published 07-07-2021

As a Salesforce developer designing an application or component for the AppExchange can seem like quite a daunting task. But if you break it into small steps and don’t get too lost in small details it can become something quite manageable. Let’s go through all the steps and take the TimeCapsule app as an example.

How to Set up GitHub

How to Set up GitHub

Published 22-06-2021

GitHub is an online software platform for version control and collaboration. By using GitHub, you and your colleagues can work together on projects no matter where you are. In our projects, we use Git not just to improve our teamwork: we also use it to make it more enjoyable. In the end, a team effort not only ensures a better result, but also a more satisfied feeling. Here’s a short guide on how to start using GitHub.

The difference between a software engineer and a software developer

The difference between a software engineer and a software developer

Published 13-06-2021

The terms or job profiles software engineer and software developer are oftentimes used interchangeably. However, a software engineer and a software developer really are two different jobs. In this blog we’ll tell you what both terms, according to us, mean and what the difference is. 

5 Advantages of Salesforce NPSP

5 Advantages of Salesforce NPSP

Published 11-06-2021

About a year ago Salesforce.org introduced the Nonprofit Cloud, a combination of Salesforce products that meet the needs of nonprofit organizations. A big part of the Nonprofit Cloud is the Nonprofit Success Pack, this pack adds elements to Salesforce that are specifically created for nonprofit organizations. Some examples are donation and donor management functionalities and a dashboard for fundraising and campaigns.

Artificial Intelligence and Salesforce Einstein

Artificial Intelligence and Salesforce Einstein

Published 01-06-2021

AI and voice are relatively new concepts for businesses. Concepts which can seem very difficult to start with but just with Blockchain, Salesforce has created a platform to make it very easy for you to incorporate AI in your business, Salesforce Einstein. 

Data visualization in Salesforce

Data visualization in Salesforce

Published 07-05-2021

Did you know it is really easy to visualize your data in Salesforce? As a company you probably have a lot of data in Salesforce. Data can be pretty useful to figure out which areas need improvement or are doing really well. Visualized data makes that even easier. 

What is Salesforce Blockchain?

What is Salesforce Blockchain?

Published 07-04-2021

We were very enthusiastic when Salesforce announced Salesforce Blockchain during the TrailheaDX event of 2019.  Now that it is officially a part of Salesforce, we would like to explain what it is and how you can use it. 

5 Advantages Of A Mobile CRM

5 Advantages Of A Mobile CRM

Published 30-03-2021

Recognize this? Visiting a (potential) client and you cannot get your laptop to work or access the right data and records immediately, despite your preparations.
Luckily, most CRM platforms have a mobile app these days. Using a mobile CRM puts an end to these kinds of issues. Next to having immediate access to your records, there are more advantages to a mobile CRM (like the Salesforce Mobile App):

Switching to Salesforce Lightning

Switching to Salesforce Lightning

Published 20-02-2021

Not sure if you want to switch from Salesforce Classic to lightning? Switching seems like a project that costs a lot of time, not to mention the teams that need to be introduced and get used to a renewed system. Regardless if it takes time, we are convinced switching from Salesforce Classic to Lightning is worth the extra effort.

What is Apex?

What is Apex?

Published 30-01-2021

For Salesforce developers Apex is almost like their second language; they know this type of programming language inside out. But what exactly is Apex and when do you use Apex?