![見出し画像](https://assets.st-note.com/production/uploads/images/148443944/rectangle_large_type_2_f4e9ae61f8e5ad1f59527826ceba102b.jpeg?width=1200)
なぜ本番環境を Production と呼ぶのか?
某所で発されたこんな問いがきっかけ。
本番環境を英語だと、Production Environment って書くと思いますが、なんで生産やそのプロセスを意味する Production という用語を使うんでしょうか?
この記事では、特に歴史的経緯とかは触れないが(調べるのが面倒)、議論して腹落ちしたので紹介。
生産工場のメタファー
同僚にたまたま英語ネイティブがいたので、 Production や Staging と呼ばれる環境について聞いてみた。
I always thought both of those terms were using factories as a metaphor. A "production line" is where the final version of a product is mass-produced for sale to customers (as opposed to prototypes created during research and development), and a "staging area" is a place where shipments wait to be inspected and quality-controlled before they go out to customers.
工場のメタファーだと思うよ。「プロダクションライン」といえば、顧客に販売するための商品を大量生産する場所だ。これはリサーチとか開発をしている場所とは異なる。ステージングエリアといえば、出荷前に検査したり、品質管理したりする場所だ。
なるほど!と思いつつ、しかし「ソフトウェアを大量生産する……?」と言われるとちょっと良く分からない。物理ディスクを複製販売していたころならいざ知らず、今日びはSaaS (Software as a Service) として提供するのが一般的だからだ。
ドーナツを作るのか、生産設備を作るのか
ひょっとして、 "production line" という言葉をおれが誤解していたりするのか?と思って Wikipedia を見てみた。すると、ドーナツの生産工場の写真が乗っている。
ここで急に気づいたのだが、おれたちが作っているソフトウェアは、ドーナツではなくドーナツを作る設備なんじゃないか?ということだ。ドーナツは、言い換えれば顧客に提供する価値であり、おれたちが売っている対象だ。一方で、ソフトウェアエンジニアとして作っているものは、ドーナツではなくドーナツを大量生産する生産設備の方だ。
"production-readiness" という言葉がある。要は「本番デプロイオッケーです!」というような意味合いなのだが、「生産準備が完了している状態」と直訳するとなんかおかしな気がしていた。ソフトウェア自体はもう作ったんだから、準備もなにも終わっているはずなのだ。しかし、「価値をこれから生産するんだ」と考えるとしっくりくる。ソフトウェアは価値工場で、 Production 環境は生産環境なのだ。
この記事が良いと思った人は、おれにクリスピー・クリーム・ドーナツをおごってください。よろしくおねがいします。
この記事が気に入ったらサポートをしてみませんか?