Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

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

share|improve this question
14  
Why make such a production over it? –  Tim Post Apr 14 '11 at 15:13
    
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 '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 H Apr 14 '11 at 17:32
1  
But in movies, a finished movie is called a production is it not? –  Lee Kowalkowski Apr 14 '11 at 21:43
    
This should be asked on English.SE –  zzzzBov Apr 15 '11 at 16:25
show 1 more comment

6 Answers 6

up vote 23 down vote accepted

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

share|improve this answer
10  
"Production" means the software's being used to "produce" something of value. –  S.Lott Apr 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-twiddler Apr 14 '11 at 17:27
add comment

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.

share|improve this answer
add comment

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.

share|improve this answer
add comment

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

share|improve this answer
3  
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 '11 at 15:28
2  
How does this explain the origins of the term "production environment"? –  FrustratedWithFormsDesigner Apr 14 '11 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 '11 at 15:55
add comment

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.

share|improve this answer
add comment

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.

share|improve this answer
    
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. –  FrustratedWithFormsDesigner Apr 14 '11 at 15:38
1  
The word is far older than any sort of disks software was distributed on. –  David Thornley Apr 15 '11 at 22:05
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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