ソフトウェア開発におけるコーディングは製造工程か

created: 2025-07-09

ウォーターフォール型開発などでは、「製造」という工程名が使われることがある。 工業や建築業からの用語転用とされる。 これらと比較しながら、ソフトウェア開発における「製造」という言葉について考える。

まず製造の定義を考えよう。 工場を参考にすると、設計した製品を安定して生産することだと思う。 つまり

  • 製品(=利用する最終成果物,ユーザーが操作する製品・アプリケーション)を
  • 事前設計通りに
  • 安定して

作り出す工程を製造工程としたい。

この定義に対して、コーディングを照らしあわせてみる。

  • コーディングの成果物はコードであって利用可能な最終成果物とは言い難い。
    • 例えば、C言語のコードはそのまま直接に利用可能ではない
  • コーディングは単に設計の一方向的な変換ではなく、実装と設計を行き来する試行錯誤のプロセスである。
    • パンチカードに穴を空けることや、機械語バイナリを手打ちすることは例外的
  • 「安定して」いるか。コーディングは同じ設計・仕様を元にしても差異が生まれやすく、「安定して」いるとは言えない。

これらの観点から、コーディングは製造工程ではないと考えた。

では、この定義において、ソフトウェア開発の製造工程はどこにあるか。 これは、単体で利用可能なソフトウェア開発においてはコンパイルが製造にあたり、システム・サービス開発においてはビルド・デプロイが製造に位置付けられる。

感想

だからといって、「コーディングを製造工程と呼ぶな」や「ビルド・デプロイこそが製造工程だ」と強く主張するつもりはない。 工場・建築などの別業界と同じ単語を使っているけれど、意味や特性は異なると感じたことの記録だ。

リンク

考えを書いていて検索していると、似たような内容を書いている人がいた。リンクしておく。

特に、1番目のページの図は自分の感覚に近く、腑に落ちた。