Red Hatでソリューションアーキテクトをしている杉本です。 この記事は Red Hat Developer Blog の APIs as a Product: Get the value out of your APIs を許可をうけて翻訳したものです。
ProgrammableWebが発表したこの2019年のレポートに見られるように、APIの普及は続いており、昨年の成長率は30%増となっています。企業をよりオープンなものとし、イノベーションを促進するために、APIはますます必要となっています。Payment Services Directive version 2(PSD2)、オープンバンキング、オープンデータAPIを公開する公共機関などはその一例です。このようにAPIが豊富にある中で、APIから価値を引き出し、競争が激化する中で差別化を図ることがますます重要になってきています。今やAPIは「プロダクト(製品)」として設計・管理すべきなのです。
組織を変える
APIをプロダクトとして設計するということは、APIの設計と管理の方法を大きく変えることを意味します。つまり「既存のサービスをパッケージ化する」という考え方から「顧客のニーズを満たす」という考え方に変える必要があります。この考え方では、APIを担当するチームはAPIというプロダクト(製品)を担当することになり、したがって、
- 既存のアセット(資産)ではなく、顧客のニーズに焦点を当て、
- プロジェクトの期間だけではなく、継続的にAPIを管理し、
- 有限のリソースから弾力性のあるコンピューティングへと移行し、
- APIに特化した中央集権的なチームから、さまざまな能力を持つクロスファンクショナルな製品チームへと進化する、 ことになります。
要するに、APIをプロダクト(製品)として設計するということは次のことを意味します:
- 顧客の問題を解決するものとしてAPIを捉えるということ
- APIによって提供される価値の共有指標を設定すること
- 何を改善すべきかを知るためのフィードバックループを持つこと
設計プロセスを変える
APIをプロダクト(製品)としてデザインするということは、APIの作り方を変えるということでもあります(デザイン思考の考え方を適用します)。
- APIに適用されたデザイン思考の最初のステップは、顧客にフォーカスすることです。顧客の目を通して見た場合に、顧客にとっての痛みは何か? 共感するということは潜在的な新規顧客と会って話を聞くことを意味します。そうすることにより、顧客が理解していること、顧客の組織構造、顧客が利用しているエコシステムの技術要素などを発見することができるでしょう。
- 次に、そこで見出されたことを総合して、顧客が解決しようとしている問題が何かを定義し、Job to be Done(解決したい課題) を特定します。例えばペットを購入するために支払い処理をしたい顧客と、自分が所有するペットの数を計算しようとしている顧客とでは、まったく異なるPetstore APIが必要となるでしょう。
- 問題が一旦定義されたら、APIのアイデア創造というプロセスを通して新しいアイデアを育てることができます。このステップでは、そのアイデアがソリューションとして適切であるかどうかを確認するために、APIを異なる設計で作ってみたりします。
- APIプロトタイピングの段階では、意味のある例に基づいてAPIのモックを作成し、実際に動作するAPIを作ります。他のチームメンバーはAPI設計案に関してフィードバックを行うことができます。
- 最後の前段階のステップでは、アーリーアダプターから最終的なデザインについてのフィードバックを得ることで、APIに対するビジネス的な期待値を調整します。
- 最終的に、実際のAPIを実装していきます。
APIプロダクトの設計を支援するオープンソースコミュニティ
ここまでは組織の変更についての話でしたが、専用のツールとオープンソースのコミュニティを活用することで、APIプロダクトの設計と管理をよりうまく行うことが可能です。
- MicrocksはオープンソースのKubernetesネイティブのツールで、アイデア創造のフェーズとプロトタイピングのフェーズにおいてAPIのモック作成とテストを行うことができます。
- Apicurioは、より良いAPIコントラクト(契約)を共同で設計するのに役立ちます。アーキテクト、プロダクトオーナー、デザイナー、開発者が共同でAPI設計を行うことができます。
- Red Hat 3scale API Management は、APIの設計プロセスを円滑にし、フィードバックを収集してAPIをプロダクトとして管理することにより、APIプロダクトの設計・管理を容易にします。
次回は、3scaleが実際にどのようにAPIをプロダクトとして構築するのに役立つのかを見ていきます。
上記は英語記事の翻訳ですが、Red Hat Developer ChannelのウェビナーにおいてカスタマージャーニーにおけるAPIの役割とカスタマーエンゲージメントのハブとなるレッドハット製品について日本語で解説しておりますのでぜひご視聴頂ければ幸いです。