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