見出し画像

なぜ本番環境を 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 環境は生産環境なのだ。

この記事が良いと思った人は、おれにクリスピー・クリーム・ドーナツをおごってください。よろしくおねがいします。

この記事が気に入ったらサポートをしてみませんか?