重要なポイント
- ソフトウェア開発は、従来のサプライチェーンによく似ています。
- オープンソースのパッケージは、サブアセンブリや構成部品として機能します。
- これらは、コンポーネントの倉庫や保管場所として機能するパッケージレジストリやホスト型アーティファクトリポジトリに格納されています。
- 開発チームは、これらのパーツを組み立てて、ソフトウェアアプリケーションやサービスという形で完成品に仕上げます。
- これらの製品は、継続的インテグレーションシステムとウェブホスティング製品のホスティングサービスを使用して、お客様に「出荷」されます。
概要
Sonatypeのお客様、あるいはSonatypeのソリューションを検討されている方は、「ソフトウェアサプライチェーン」と「サプライチェーンマネジメント」という言葉を耳にしたことがあるのではないでしょうか。この記事では、この2つの用語の定義と比較を行い、従来のサプライチェーンがソフトウェアサプライチェーンにどのように変換されるのか、その概要を説明します。
サプライチェーンマネジメントとは?
「サプライチェーンマネジメント」とは、未加工の原材料が完成品に加工され、消費者に届けられるまでの流れを管理することです。サプライチェーンマネジメントは、大規模なもの(原材料が海を渡るようなもの)から小規模なもの(部品がベルトコンベアーから次のベルトへと移動するようなもの)まで存在し、主に材料の移動に関係しています。
サプライチェーンマネジメントという考え方は新しいものではありません。「ローマは一日にして成らず」という言葉があるように、ローマはコンクリートの安定供給なくして建設されなかったのです。
しかし、現代のサプライチェーンマネジメントのコンセプトが確立されたのは、1980年代のことです。グローバル化は、より迅速な製造、より高い効率性、より高い品質の製品を約束した一方で、同時に深刻なリスクももたらしました。サプライチェーンマネジメントは、その利点を生かし、リスクを回避するために開発されたのです。
動きと流れ
前述したように、サプライチェーンマネジメントの主な対象は「モノの動き」です。なぜなら、品質とスピードの向上のほとんどは、材料が生産のある段階から次の段階へと移動する方法を改善することにあるからです。品質やスピードの低下は、通常、同じ原因から生じています。
動きと流れの重要性を理解するために、専門家が製造工場の効率化を任された場合の質問をいくつか考えてみましょう。この場合、材料がどこに保管されているか、どのように工場に到着するか、配送業者の信頼性はどうか、などを知りたいと思うでしょう。ベルトコンベアーの速度や、組み立て機械の能力も知りたいかもしれません。さらに、完成した製品がどれだけ速くトラックに積み込まれるか、トラックがどれだけ速く配達を完了するか、といったことも尋ねるでしょう。
ソフトウェアサプライチェーンとは?
ソフトウェアサプライチェーンとは、コンポーネント(あらかじめ作られた小さなコードの断片)が開発プロセスを経て、完成したソフトウェアになり、顧客に配布される仕組みのことです。これは、物理的な原材料が完成品に変換され、店の棚に出荷される方法に似ています。
「ソフトウェアサプライチェーン」という言葉は比較的新しく、SDLCにおけるオープンソースコンポーネントの役割に対する認識が高まった結果、2014年頃に作られた造語です。Sonatypeは、この言葉を「ソフトウェアサプライチェーンマネジメント」とともに、いち早く取り入れた企業の1つです。
従来のサプライチェーンをソフトウェアサプライチェーンに置き換える
サプライチェーンマネジメントでは、製造工程を調達、製造、流通、顧客接点の4つのステージに分けることがあります。ソフトウェアサプライチェーンには、これら4つのステージの1対1のアナログが存在します。
当社は調達を、ソーシングと呼びます
調達の段階では、サプライヤーから原材料を調達し、現地に配送し、使用できるようになるまで保管します。サプライチェーンの中でも戦略性の高い部分です。コストだけでなく、スピードや品質も重要です。また、人間関係も重要です。信頼できるベンダー、そして透明性を優先するベンダーは、最高のパートナーになります。
ソフトウェアサプライチェーンでは、これはソーシングの段階であり、オープンソースのコンポーネントはリポジトリから引き出されて開発環境に導入されます。オープンソースのコンポーネントは無償ですが(ある意味、詳しくはOSSガイドをご覧ください)、開発時間は高くつき、脆弱性や低品質のコンポーネントは修正が必要になるため、コストは依然として戦略的な要因となります。成功するソフトウェア組織は、最良のオープンソースコンポーネントを意図的に選択します。彼らは信頼できる数少ないソースを持ち、最高品質のコンポーネントのみを選択するのです。
ソフトウェア開発におけるオープンソースコンポーネントの利用は、ここ数年のトレンドであり、そのトレンドは加速する一方です。例えば、Sonatypeは「2021年ソフトウェアサプライチェーンの現状レポート」において、2020年から2021年の間にPythonコンポーネントのダウンロードは92%、Javaコンポーネントのダウンロードは71%増加すると推定しています。
当社は製造を、開発と呼びます
生産段階では、原材料が完成品に加工され、流通するまでの間、保管されます。この段階は、ベルトコンベアによって部品が機械に運ばれ、組み立てられる工場の現場のようなものです。この段階では、原材料の品質と、製品を動かし、組み立てる機械の効率に左右されます。
ソフトウェアサプライチェーンにおいて、ソフトウェアを構築するのが「開発」段階です。ソフトウェアの開発は、工場の現場のように観察することはできませんが、同じコンセプトが適用されます。コンポーネントは原材料であり、開発者のもとに移動し、完成したアプリケーションに組み立てられ、配布できるようになるまで保管されます。唯一の違いは、開発者が重要な機能を構築したり、コンポーネントを「適合」させたりするために、必要に応じて独自のコードを書くということです。工場の現場と同じように、この段階はコンポーネントの品質と、アプリケーションを動かし構築するプロセスの効率に敏感です。
当社は流通を、DevOpsと呼びます
流通段階の目標は、商品が消費者の手元まで迅速かつ安全に流れるようにすることです。従来のサプライチェーンマネジメントでは、企業のトラック群が商品を慎重に梱包し、最終目的地まで輸送します。天候やガソリン価格などの外的要因に非常に敏感で、複雑な作業です。この段階で最も重要なのは、一貫性とスピードです。頻繁でスピーディーな配送がカギとなります。
現代の超高速SDLCは、サプライチェーンマネジメントの伝統的な流通方法とは全く異なります。継続的改善/継続的デリバリー(CI/CD)とは、商品が常に開発部門に戻され、さらに改良された後、消費者に再配送されることを意味します。これは、トラックの一台では到底真似できない、常に動き続けるサイクルです。
しかし、従来のサプライチェーンにおける配送段階での懸念は、ソフトウェアサプライチェーンにおいてもすべて当てはまります。DevOpsは、ソフトウェアの配送におけるスピードと一貫性を最適化します。当社のガイド「DevOpsとは何か」では、DevOpsの原則が、「ソフトウェアデリバリーサイクルの短縮とデプロイの安定性の向上という共通の目標に向かって、すべてどのように機能するか」について説明しています。
当社は顧客接点を、カスタマーサクセスと呼びます
サプライチェーンマネジメントの顧客接点の段階は、消費者と完成品の相互作用に関わるものです。優れた顧客接点を実現するためには、綿密な計画が必要です。製品は消費者のニーズに合っているか?使いやすいか?消費者は必要なときに助けを求めることができるのか?このような疑問やその他の疑問は、製品が最終目的地に到着するずっと前に検討されなければなりません。
ソフトウェアサプライチェーンでは、この段階をカスタマーサクセスと呼びますが、その主な関心事はやはり消費者が完成品とどのように関わるか、特にその製品が顧客のニーズを満たしているかどうかということです。企業や個人ユーザーは通常、特定の戦略的目標を満たすためにソフトウェアを購入しますが、カスタマーサクセスとは、その目標達成を支援することなのです。
デフサムライは、Sonatypeのゴールドパートナーとして日本国内で同社製品を販売し、インストール、設定、テクニカルサーポートなどの導入支援サービスを提供しています。