The DSP Model

Tsaqif Al Bari
Electronic Logbook
Published in
2 min readMay 23, 2021

--

Photo by Yancy Min on Unsplash

When you learn Web App Development, you may heard the term “staging environment” or “production”, without actually knowing what those term means. “Oh it probably means whats the state of the app” or something. Well those terms came from what is known as the DPS Model or “Development, Staging, Production” Model.

What is the DSP model?

The DSP model is a practical practice for software development where in a software development, developers need to set up different “environments” for different purposes during the software development. “Environment” refer to “the environment where the app will run on”, such as which operating system will the app run on, how much workload does the app will work on daily, what other application or systems will interact with the app, and so on.

As the name suggest, in the DSP model there are 3 different environments needed during software development, which are Development, Staging, and Production.

Development

Development environment refers to the environment where coding and feature implementation are made and changed during software development. Usually it is the local computer where the developer works on. This environment may not look like the actual environment where the app is supposed to run later after it is finished. This environment is set up so that is is easy for developers to make progress on the app development.

Staging

Staging environment refers to the environment where testing is ran. This environment should be similar to the actual environment where the application is supposed to run later on. If the app passed and run well in this environment, then and only then we can be sure to moved the app to the next stage of development, the production stage.

Production

Production stage refers to the environment where the app is supposed to run. This environment is the real deal, actual database, actual users and all. After the production stage where the app is finished, this is the environment where the app will be deployed.

Why should we separate theses environments?

There are many benefits to this. One of which is to enable our development flow to run on parallel. Imagine when a developer adds a new feature to our app. The QA team would need to test it before throwing it to production. During that time, the developer wouldn’t be able to make new progress, and our app need to go offline, irritating our actual users. By separating theses environment, everyone can do their job on parallel, speeding up the development process and give the best outcome overall for our users.

--

--

Tsaqif Al Bari
Electronic Logbook

Computer Science Student in University of Indonesia. Likes to code and drink chocolate milk.