45

A coworker was wondering this today: "Why is it that in our industry 'production' means 'final, deliverable product'? You know, like if a movie is 'in production', it means they're currently filming it, not that that it's done and audiences are watching it."

6
  • 20
    Why make such a production over it?
    – Tim Post
    Apr 14, 2011 at 15:13
  • 1
    Ah, thanks for adding the etymology tag, ed. This is definitely a question about the origin of the term, not about what it means. Perhaps the "semantics" tag wasn't appropriate.
    – joshjs
    Apr 14, 2011 at 16:17
  • 6
    The word "production" refers to the production of bug reports, which you will receive plenty of, when you go live.
    – Niklas H
    Apr 14, 2011 at 17:32
  • 4
    But in movies, a finished movie is called a production is it not? Apr 14, 2011 at 21:43
  • 7
    Um, in our industry "production" doesn't mean "final, deliverable product" and I've never heard it used like that. It means "has gone live, and is being used to accomplish the business purpose it was built for". It may or may not be "final"; that's orthogonal.
    – Andres F.
    Mar 16, 2013 at 1:41

6 Answers 6

40

I think the term "production" has come from other industries like automotive or electronics, where once a component/product is ready to be used, it becomes part of producing/usage in something bigger like in a "production line" or "construction pipeline". In software the term "production environment" might hold parallel in the sense that people use this software deployed in production to do something that important etc.,

3
  • 24
    "Production" means the software's being used to "produce" something of value.
    – S.Lott
    Apr 14, 2011 at 15:24
  • 3
    Actually, the term "production," with respect to computation, dates back to a time when information processing was a production process that required a lot of manual intervention. Information came into a shop in paper form (coding sheets) and was sent out in paper form (reports). Apr 14, 2011 at 17:27
  • 2
    This answer makes intuitive sense, but it doesn't attempt to trace the etymology of the term production. So I'm not sure it's actually as correct as it it seems at first glance. In contrast, bit-twiddler's answer gives a historical origin for the term.
    – Kevin
    Feb 5, 2018 at 21:46
32

The term dates back to the time when the field was known as "Data Processing." Back then, users did not perform their own data entry. Instead, they filled out coding sheets that were punched onto decks of punch-cards by data entry personnel. These card decks were physically queued up for processing by a person known as the "production scheduler." All software ran as part of a batch job stream at that point in time. The production scheduler was responsible for prioritizing jobs. He/she produced a daily of list of jobs that were to be run by computer operations.

Computer operations was a 24x7x365 production environment when I first entered the field. Glass houses were not the typical "lights out" self-operating data centers that they are today. Instead, they were inhabited by computer operators who started jobs, fed card decks, hung 9-track tapes, mounted/dismounted disk packs, and pulled listings from high-speed impact printers. The nastiest job of all was running a bursting machine. A bursting machine removed carbon paper from multipart fanfold paper. Bursting carbon paper from multipart fanfold paper is the reason why one often sees computer operators wearing lab coats in old data center photographs.

25

S. Lott really hit the nail on the head but unfortunately only posted a comment.

The nuance that people seem to be missing here is that the word production does not refer to the state of the software itself but how the software is being used.

You might have the exact same build of the software, byte-for-byte, running in production and testing environments. The only difference between the two is what's being done with it. The version in production is being used to produce something - transactions, reports, bills, whatever.

A test or staging environment might "produce" those things too, but only in an abstract sense; since the output from those environments would simply be thrown away, what it's producing is more like a simulated product than an actual product.

Remember, most businesses are not development shops, and therefore the software is not the product. The software is a tool used to create that product. It is "in production" in the same sense that a power generator or assembly line is in production, i.e. because it has real output and that output is being sold and/or used to run the business.

In fact, "production" does not mean "final, deliverable product" at all. The correct term for a final deliverable is a release, or RTM. You never use the word "production" for shrinkwrap software.

2
  • 2
    Supporting evidence: dl.acm.org/citation.cfm?id=1434898 In this paper, the software is being used in the production of results (the paper is actually about electronic faults in the computer). Relevant quote: > If, as I understood you to say, you try to continue production after an intermittent malfunction is detected but not cured, how do you know whether the resulting production is of any value?
    – Graham Lee
    Feb 6, 2018 at 11:30
  • 1
    Aforementioned paper is from 1953.
    – Graham Lee
    Feb 6, 2018 at 12:28
7

In many industries, the term production does in fact refer to work with a live, usable product. Assembly lines are also called "production lines" because even though the products are being built by workers, the designs are finalized. There is no more "development" being done. You could equate this back to movies as well -- before production there are a number of steps that have to occur first: writing the scripts, storyboarding, etc., etc.

6

I think it is an abbreviation of "production environment". For enterprise apps, there is development environment and production environment. The latter is where the real, live company processes are run. So when you deploy stuff there, it is live, and any mistake costs hard cash.

(There may also be test environment(s), and a staging environment, which is usually identical to the production, but not live, so one can perform user acceptance testing (UAT) of new features/releases on it before going live.)

3
  • 4
    This merely begs the question why production environment? How has production come to signify where "finished" (obviously no software is truly ever finished) software goes?
    – Matt Ellen
    Apr 14, 2011 at 15:28
  • 4
    How does this explain the origins of the term "production environment"? Apr 14, 2011 at 15:52
  • am i mistaken to understand that this topic was asking the difference between production and development in regards to software development? I started on my answer right after you.
    – Aditya P
    Apr 14, 2011 at 15:55
5

I would guess that it goes back to when software was sold on disks. Those disks had to be 'produced', so the version of the software they were using was the 'production' version, copied from the 'production' server.

Since the core concepts of software are the same whether it's shrink-wrapped or hosted, you still have a 'production' server.

2
  • I don't know if this is where the term originated, but it makes sense for software that's distributed to clients (even if it's not on discs anymore). For web apps, the term "Live" always made more sense than the term "(in) production" because there's only one running (or "live") instance of the web app that all the clients log in to. Apr 14, 2011 at 15:38
  • 5
    The word is far older than any sort of disks software was distributed on. Apr 15, 2011 at 22:05

Not the answer you're looking for? Browse other questions tagged or ask your own question.