<p>I would argue that referring to these milestones as "phases" would be preferable to "stages." This is because "staging" is already a more prevalent term in use in the industry.</p>

<p><a href="https://en.wikipedia.org/wiki/Deployment_environment#Staging" rel="nofollow noreferrer">Staging</a> refers to a <a href="https://softwareengineering.stackexchange.com/a/117985">specific environment</a> used for <a href="http://windowsitpro.com/windows-client/development-staging-and-production-model" rel="nofollow noreferrer">walking through testing the deployment process</a>. It is distinct from the <a href="https://serverfault.com/questions/264401/what-is-the-point-of-staging">QA environment used for bug testing and sanity checking and testing environments used for User Acceptance  &amp; integration Testing (UAT)</a>. All of these could be considered types of test environments.</p>

<p>The origin of this term comes from <a href="https://en.wikipedia.org/wiki/Staging_(theatre,_film,_television)" rel="nofollow noreferrer">theater</a> in which actors will walk through a scene - often stopping to adjust, clarify, and note physical positions on stage. This is often also referred to as "blocking" in theater. </p>

<p>Thus, if you call these milestones "stages" you could end up having a "staging stage" and for the sake of clarity, "staging <a href="https://en.wikipedia.org/wiki/Project_management#Phased_approach" rel="nofollow noreferrer">phase</a>" or "staging <a href="https://en.wikipedia.org/wiki/Milestone_(project_management)" rel="nofollow noreferrer">milestone</a>" would be preferable and more prevalent. These are the more common and customary terms, driven by the terminology of <a href="https://en.wikipedia.org/wiki/Project_management" rel="nofollow noreferrer">project management</a>.</p>

<p>I would typically dis-recommend using the term "testing" to refer to an environment, because it can be confusing as to <em>which</em> testing environment you are referring.</p>

CC BY-SA 3.0
2017-06-28T08:16:45.537Z
One may argue the term comes from rocket industry, building a program by analogy to a rocket, stage after stage, it's pretty common in the industry also. Re _you coud end up having a "staging stage"_ I disagree, you'd have a deploy stage, the fact it does target a staging environment is irrelevant, as it would be the same stage (process block) used to deploy to QA, rehearsal and then production.
Tensibai
CC BY-SA 3.0
2017-06-28T14:36:38.093Z
I'm doubtful that rocketry is the origin of the *staging environment* as the context of doing a mockup, dry run in order to figure out how it is done during the actual deployment. Perhaps that could be true of "stage" as a "phase", but not as a production mirror for practicing deployments. It could also be a military term referent to a "staging area" in which you prepare for deployment and assault of troops  - which leads me to my second point - referring to staging as a deploy phase would be inappropriate - deployment comes after staging.
James Shewey
CC BY-SA 3.0
2017-06-28T14:38:36.417Z
Finally, staging is *not* the same testing environment as QA or UAT, which is why I so heavily cited this sentence - to make that clear. (though to be fair, companies will often consolidate the environments for cost savings)
James Shewey
CC BY-SA 3.0
2017-06-28T14:50:39.207Z
I was saying that rocketry is an origin for the `stage` term, the `staging` term is indeed your definition and I didn't say anything else. It's just a counterpoint to your first sentence which is false. A staging phase would be running the deploy stage toward the staging environment. Here phases are build of stages. Stages are construct the same way in each phase and differ from their input only. See the phases as a rocket launch, the staging env as the rocket destination and the deploy stage as one stage of the rocket, and you have a common picture of a deploy pipeline nowaday.
Tensibai
CC BY-SA 3.0
2017-06-28T14:51:54.907Z
(Rocket stages being, build, unit test, deploy for example)
Tensibai
CC BY-SA 3.0
2017-06-28T14:56:10.240Z
And to give a little background of my assertion, Chef's Automate use stages and phases in a different way as you do: https://docs.chef.io/workflow.html#pipelines. Btw the rest of your answer is interesting but I find it a little off scope for the question.
Tensibai
CC BY-SA 3.0
2017-06-28T15:37:14.057Z
I forgot: Gentoo uses this terminology for install "stages" to indicate how low-level the install is.
James Shewey
CC BY-SA 3.0
2017-06-28T15:51:14.780Z
Well, I assume the question revolves around DevOps tooling (by the "build stage", "test stage") mostly driven by the most popular tool jenkins, which use the terminology pipeline stages, searching for pipeline phases give far different results.
Tensibai
CC BY-SA 3.0
2017-06-28T17:04:36.033Z
My googling found similar - referring to phases/milestones as "stages" definitely seems to be terminology that originated from Jenkins (or at least was fueled by).
James Shewey
CC BY-SA 4.0
2023-02-03T14:09:06.697Z
Rocketry?? The [dictionary](https://www.etymonline.com/word/stage) does not agree: from the 13th century "stage" meant a story of a building (from an old french term that could already refer to a phase, a rest in a journey, a dwelling, or a performance platform, from latin for a place to stand). Since the 14th century "stage" has also had the sense of a developmental step or milestone, and "staging" has meant a temporary support (although the meaning of an assembly point seems to be since WWII).
benjimin
CC BY-SA 3.0
2017-06-27T22:04:05.063Z
2017-06-28T08:17:35.413Z
2017-06-28T08:17:35.413Z
James Shewey
<p>Often in technology we co-opt English words and give them alternate meanings. However, in this case it's really just <a href="http://www.wordnik.com/words/stage" rel="nofollow noreferrer">the standard definition</a>:</p>

<blockquote>
  <p>A level, degree, or period of time in the course of a process</p>
</blockquote>

CC BY-SA 3.0
2017-06-19T09:06:55.760Z
thanks - but, if we reference to "test stage" how it can be time or level if we actually mean an environment used for specific purpose?
Ta Mu
CC BY-SA 3.0
2017-06-24T18:28:27.650Z
The test environment is not a stage; it is the environment in which the stage *happens*. The test stage is a part of a defined process, and it's supposed to happen in the test environment, but does not necessarily have to.
Xiong Chiamiov
CC BY-SA 3.0
2017-06-18T19:37:46.970Z
2017-06-18T19:37:46.970Z
Xiong Chiamiov
<p>Many of us use this term in daily business quite intuitively: "build stage", "test stage" and used long before the rise of DevOps. </p>

<p>But is there a formal and/or well-established definition of this term? </p>

<p>Additional question: Who and where used it for first time?</p>

<terminology><term-disambiguation>
What is, or could be the formal and/or officially established definion of a "stage"?
Ta Mu
# What is, or could be the formal and/or officially established definion of a "stage"?

(Asked by: username_0 on 2017-06-16)

Many of us use this term in daily business quite intuitively: "build stage", "test stage" and used long before the rise of DevOps.

But is there a formal and/or well-established definition of this term?

Additional question: Who and where used it for first time?

**Tags:** terminology, term-disambiguation


---

## 2 answers

### Answer by username_4 on 2017-06-18. Score: 4 | Accepted answer

Often in technology we co-opt English words and give them alternate meanings. However, in this case it's really just [the standard definition](http://www.wordnik.com/words/stage):

> A level, degree, or period of time in the course of a process

> **Comments:**
> **username_0**: thanks - but, if we reference to "test stage" how it can be time or level if we actually mean an environment used for specific purpose?  
> **username_4**: The test environment is not a stage; it is the environment in which the stage *happens*. The test stage is a part of a defined process, and it's supposed to happen in the test environment, but does not necessarily have to.  

---

### Answer by username_1 on 2017-06-27. Score: 2

I would argue that referring to these milestones as "phases" would be preferable to "stages." This is because "staging" is already a more prevalent term in use in the industry.

[Staging](https://en.wikipedia.org/wiki/Deployment_environment#Staging) refers to a [specific environment](https://softwareengineering.stackexchange.com/a/117985) used for [walking through testing the deployment process](http://windowsitpro.com/windows-client/development-staging-and-production-model). It is distinct from the [QA environment used for bug testing and sanity checking and testing environments used for User Acceptance & integration Testing (UAT)](https://serverfault.com/questions/264401/what-is-the-point-of-staging). All of these could be considered types of test environments.

The origin of this term comes from [theater](https://en.wikipedia.org/wiki/Staging_(theatre,_film,_television)) in which actors will walk through a scene - often stopping to adjust, clarify, and note physical positions on stage. This is often also referred to as "blocking" in theater.

Thus, if you call these milestones "stages" you could end up having a "staging stage" and for the sake of clarity, "staging [phase](https://en.wikipedia.org/wiki/Project_management#Phased_approach)" or "staging [milestone](https://en.wikipedia.org/wiki/Milestone_(project_management))" would be preferable and more prevalent. These are the more common and customary terms, driven by the terminology of [project management](https://en.wikipedia.org/wiki/Project_management).

I would typically dis-recommend using the term "testing" to refer to an environment, because it can be confusing as to *which* testing environment you are referring.

> **Comments:**
> **username_2**: One may argue the term comes from rocket industry, building a program by analogy to a rocket, stage after stage, it's pretty common in the industry also. Re _you coud end up having a "staging stage"_ I disagree, you'd have a deploy stage, the fact it does target a staging environment is irrelevant, as it would be the same stage (process block) used to deploy to QA, rehearsal and then production.  
> **username_1**: I'm doubtful that rocketry is the origin of the *staging environment* as the context of doing a mockup, dry run in order to figure out how it is done during the actual deployment. Perhaps that could be true of "stage" as a "phase", but not as a production mirror for practicing deployments. It could also be a military term referent to a "staging area" in which you prepare for deployment and assault of troops  - which leads me to my second point - referring to staging as a deploy phase would be inappropriate - deployment comes after staging.  
> **username_1**: Finally, staging is *not* the same testing environment as QA or UAT, which is why I so heavily cited this sentence - to make that clear. (though to be fair, companies will often consolidate the environments for cost savings)  
> **username_2**: I was saying that rocketry is an origin for the `stage` term, the `staging` term is indeed your definition and I didn't say anything else. It's just a counterpoint to your first sentence which is false. A staging phase would be running the deploy stage toward the staging environment. Here phases are build of stages. Stages are construct the same way in each phase and differ from their input only. See the phases as a rocket launch, the staging env as the rocket destination and the deploy stage as one stage of the rocket, and you have a common picture of a deploy pipeline nowaday.  
> **username_2**: (Rocket stages being, build, unit test, deploy for example)  
> **username_2**: And to give a little background of my assertion, Chef's Automate use stages and phases in a different way as you do: https://docs.chef.io/workflow.html#pipelines. Btw the rest of your answer is interesting but I find it a little off scope for the question.  
> **username_1**: I forgot: Gentoo uses this terminology for install "stages" to indicate how low-level the install is.  
> **username_2**: Well, I assume the question revolves around DevOps tooling (by the "build stage", "test stage") mostly driven by the most popular tool jenkins, which use the terminology pipeline stages, searching for pipeline phases give far different results.  
> **username_1**: My googling found similar - referring to phases/milestones as "stages" definitely seems to be terminology that originated from Jenkins (or at least was fueled by).  
> **username_3**: Rocketry?? The [dictionary](https://www.etymonline.com/word/stage) does not agree: from the 13th century "stage" meant a story of a building (from an old french term that could already refer to a phase, a rest in a journey, a dwelling, or a performance platform, from latin for a place to stand). Since the 14th century "stage" has also had the sense of a developmental step or milestone, and "staging" has meant a temporary support (although the meaning of an assembly point seems to be since WWII).  

---

