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."

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.
–
joshjsApr 14 '11 at 16:17

2

The word "production" refers to the production of bug reports, which you will receive plenty of, when you go live.
–
Niklas HApr 14 '11 at 17:32

1

But in movies, a finished movie is called a production is it not?
–
Lee KowalkowskiApr 14 '11 at 21:43

6 Answers
6

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.,

"Production" means the software's being used to "produce" something of value.
–
S.LottApr 14 '11 at 15:24

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).
–
bit-twiddlerApr 14 '11 at 17:27

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.

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.

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.)

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 EllenApr 14 '11 at 15:28

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 PApr 14 '11 at 15:55

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.

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.

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.
–
FrustratedWithFormsDesignerApr 14 '11 at 15:38

1

The word is far older than any sort of disks software was distributed on.
–
David ThornleyApr 15 '11 at 22:05