アプリケーションやWebサービス開発の現場では、開発しているものを「プロダクト」、開発の方向性を決める責任者は「プロダクトオーナー」と呼んでいます。「プロダクト」はアジャイルやスクラム以降で定着した表現と思われます。

かつてのウォーターフォールの時代は「開発プロジェクト」「プロジェクトマネージャ」「プロジェクト」という表現をよく使いました。最近の「プロダクト」に相当する表現もありましたが、当時は開発の成果物と製造業の製品は実体の有無で明らかな違いがあり、対照的な存在とみなされていたように思います。

今も昔も、ソフトウェア開発の成果物とはプログラムやコードであり、処理の流れを記したものです。その点については変わりません。しかし今では先述したように、ソフトウェア開発では「プロダクト」という表現を使います。興味深いと思いませんか。「プロダクト」とは製造業の「製品」と同じです。

近年は、「ソフトウェアファクトリー」という表現も使われるようになりました。これは、アプリケーションはじめソフトウェアコンポーネントの製造を支えるものを指します。製造業の開発組織や体制を採り入れたものを指すこともあるようです。こうした表現からわかるように、ソフトウェア開発は製造業に近づいてきています。言い換えると、製造業の長所を採り入れようとしているのです。

プログラミングやデジタル化を縁遠く感じていた人もいたかもしれません。しかし、日本はものづくりの国です。ソフトウェア開発にものづくりの世界の鱗片を見ることができれば、親近感を持てるかもしれません。ひいては、ソフトウェア開発を積極的に進めていくきっかけになるのではないかと期待しています。

ニーズをとらえた製品をいち早く市場に出す

まずは、共通点から見ていきましょう。ソフトウェア開発でも製造業でも、プロダクトにおいて重要なことは時代のニーズをいち早くとらえて市場に出すことです。

今年の新型コロナウイルスのワクチン接種を振り返ってみましょう。ワクチン接種を前にして、いくつかの製造業がワクチンを適温で保存および輸送するのに適した冷凍庫の開発や製造に着手し始めました。ワクチンが皮下注射ではなく筋肉注射であることから、ワクチン接種に適した注射器の開発や製造も進みました。注射器の形状や針の長さで、1瓶から接種できる回数が変わるため、改良することに意味があったのです。コロナ禍という社会の危機に立ち向かうために、製造業はニーズに合う製品をいち早く製造するようにと動き出しました。

一方、ソフトウェア開発ベンダーも動き出しました。ワクチン接種の予約や接種記録を管理する必要があったからです。市区町村や職場でワクチン予約のためのサイトが立ち上がりました。接種状況は厚生労働省のワクチン接種記録システム(VRS)に集約され、国全体の接種回数が日々増えていくことを把握できています。2020年は特別定額給付金を申請するためのサイトもありました。今後はワクチンパスポート発行のためのサイトも立ち上がることでしょう。

これほどまでに短期間で全国規模で使用するWebサイトが稼働し、国民が一斉に利用することがあったでしょうか。コロナ禍で国民のデジタル体験は何年分も先取りしたように思います。製造業もソフトウェア開発も、コロナ禍でいち早くプロダクトをリリースすることに奔走しました。どちらも大きな社会貢献だったと思います。

品質を高めるために早い段階から本質的なものを組み込む

また、製造業とソフトウェア開発、どちらのプロダクトでも大事なのは、必要な機能を搭載し、高品質であり、生産性を高めることです。そのためには、製品のライフサイクルを早く回すことが重要になってきます。

品質を高めるための取り組みは製造業では絶え間なく続いてきました。近年、ソフトウェア開発と製造業で似ている興味深い動きとなるのがCAEやシフトレフトです。共通するのは、できるだけ早い段階から本質的なものを組み込むことです。

ソフトウェア開発においては、開発前の段階からセキュリティを考慮した設計を行ったり、開発したシステムにおけるセキュリティ診断工程を内製化・自動化したりする取り組みが行われています。これは開発の手戻りを極力防ぐためです。

製造業のCAE(Computer Aided Engineering:計算機援用工学)は製品開発の初期段階からコンピュータ上で仮想的な試作、仮想的な試験を行います。コンピュータで立体的な姿を把握してシミュレーションをしながら進めていくため、設計図面だけでは見落とすことも気づくことができます。試作品を製作する時間やコストを省くことができて、生産性向上や効率化にもつながります。自動車や建物などの巨大なプロダクトになると、CAEは特に有効です。近年ではVR技術も使われます。関係者たちがVRゴーグルを装着し、早い段階から仮想空間で検証を重ねることで完成度を高めていきます。

ソフトウェア開発のシフトレフトはセキュリティ実装が主眼となりますが、大事な機能は最初から組み込んでおくという点では製造業のCAEと共通しています。「セキュリティ・バイ・デザイン」という言葉もあるように、後から組み込もうとすると、整合性がとれなくなってしまうことがあります。そのため重要なものは設計の初期段階から組み込んでおく必要があります。

資産管理やマイクロサービスで生産性向上

生産性向上の観点から製造業とソフトウェア開発を見ると、資産管理やマイクロサービスが共通点と言えます。製造業では部品を極力共通化することで、生産性向上や効率化につなげています。これには全体を通じて資産管理を徹底することが重要になります。

ソフトウェア開発には、マイクロサービス化があります。モノリシックではなく、マイクロサービスとして細かく機能を分割することで、プログラムやコードの再利用性を高め、ひいては生産性向上につなげます。ここでも、製造業と同様に、プログラムの資産管理が欠かせません。

サプライチェーン

もう一つ、製造業とソフトウェア開発の共通項を感じさせるキーワードがサプライチェーンです。もともと、サプライチェーンは製造業における用語であり、プロダクトの企画から最終的な廃棄までのプロセスのつながりを表します。ソフトウェア開発でもプロダクトの高度化が進み、製造業のようなサプライチェーン構造が発展しています。

また、サプライチェーンで生まれる複雑性やリスクなどの課題、そのための解決策となる可視化など、あらゆるところで製造業とソフトウェア開発の共通項を見出すことができます。それだけソフトウェア開発やソフトウェアは製造業に近づいていると言えるのではないでしょうか。

繰り返しになりますが、製造業もソフトウェア開発も、大事なのは時代のニーズに合わせたプロダクトをいち早く市場に出すことです。必要な機能を搭載し、高品質で高生産性を追求していく努力も欠かせません。これからはあらゆる企業がアプリケーションやソフトウェアでビジネスをしていく時代になります。製造業が製品を次々と生産しながら発展してきたように、企業はプログラムを生産することで成長し発展していきます。次回は逆に製造業がソフトウェア開発に近づいている動きについてお話しします。

著者プロフィール


GitLab日本担当カントリーマネージャー 村上 督(むらかみ・ただし)

Citrix SystemsやAcronisなどで経営幹部を務めるなど、テクノロジー分野に25年従事。複雑な販売情勢下におけるダイレクト販売、収益性のあるパートナー関係構築のためのチャネル販売分野に精通しており、チーム作りのスペシャリスト。ワイン愛好家であり、週末には各国のワインを嗜んでいる。