メーカーはいかにしてWebAPIのテクニカルサポートを行うべきか?
CData Software Japan杉本さんの記事「なぜその API は使われないのか?API の活用を拒む3つの壁とその対策」でも指摘されていた通り、WebAPIに関するテクニカルサポートの有無はWebAPIを活発に利用してもらうための非常に重要な要素です。
しかし製品メーカーとして実際にWebAPIのサポート体制を作ろうとするといろいろな課題もあり、コラボスタイルでは2020年12月現在、WebAPIに関するテクニカルサポート体制を構築できていません(WebAPIに瑕疵がある場合を除く。)
まあでも今年も年の瀬だし、改めてWebAPIサポート構築のハードルやサポート手法のメリット・デメリットをまとめ、今後の体制構築に活かしていきたい!
という事で書いたこの記事は「Web API Advent Calendar 2020」21日目の投稿です。
人材確保に立ち向かう
WebAPIサポートの難しさは、なんといっても対応できる人材が限られる事です。
WebAPIのテクニカルサポート担当者は次に挙げるようなスキルを兼ね備えている必要があります。
(1)製品知識
そもそもの製品に関する機能・仕様が分かっていないと、質問の前提となる動作が理解できません。
そのため担当者はWebAPIの知識だけでなく、製品そのものの機能や仕様、利用シーンなどを理解しておく必要があります。
(2)基本的なプログラミング知識
ほとんどの場合WebAPIは何らかのプログラムを介して利用する事になりますので、基本的なプログラミング知識は必須です。
WebAPIはシェルスクリプトからの呼び出しがあったり、CORSを考慮したコーディングする必要があったりと多様なシーンで使われるので「プログラミング」に限らず、セキュリティ等も含めたある程度幅広いシステムに関する知識が要求されます。
(3)連携サービスに関する知識
WebAPIはサービス連携に利用される事も多いので、世の中にどのようなサービスが存在し、大まかにどんな性質を持っているのかがある程度分かっていることが望ましいです。
(4)業務・利用シーンに関する知識
「このような利用シーンでこのAPIを使いたいと思っているが、方法として適切だろうか?」といった質問に答える場合は、社内業務に関しての一般的な知識があれば回答がスムーズになります。
そしてこれらをベースとした上で、限られた情報から質問者の意図を読み取り、適切に問いかけながら問題を解決していくというコミュニケーションスキルも求められます。
以上を考えると、このポジションに充てる人材を外部から即戦力的に採用するのは難しく、地道に内部で育成していく必要があると思います。
問い合わせガイドラインを整備する
WebAPIのサポートに限った話ではありませんが、テクニカルサポートでは受付側のスキルだけでなく、質問する側が状況を正確に伝えるテクニックを持つ事で解決までの時間を大きく短縮する事ができます。
その為には、メーカーが適切な「問い合わせガイドライン」を提示しておくのが望ましいです。
WebAPIに限定されたものではありませんが、下記のAWSのガイドラインなどは、非常に良くまとまった内容で参考になります。
特にWebAPIのテクニカルサポートは質問の幅が広くなりがちなので、適切なガイドラインを策定し、ユーザーにも質問の仕方についての協力をお願いする事が重要になると考えられます。
問い合わせ受付手法を考える
これまでに見たような課題をクリアするため、WebAPIサポートでは通常製品ヘルプデスクでの対応だけでなく、次のような様々な手法を用いて課題解決を試みている事が多いようです。
(1)オプションサポート
一定の追加コストを支払ってもらう事で、通常は受け付けないWebAPIのサポートを受け付ける方法です。これによって問い合わせを絞り込み、かつリソース確保の原資を得ることができます。
WebAPIが無償ではなくオプションだったり、質問の為に上位グレードの契約が必要となる場合もこれにあたると言えるでしょう。
例えばGoogle Cloud Platformサポートでは「ブロンズ」でできる事はドキュメントの閲覧とコミュニティ サポートへの参加のみで、ヘルプデスクでの技術サポートを受けるためにはシルバー以上の契約が必要というレベル分けがされています。
ただ、有償サポート・有償APIはクローズドな印象を与えるので「とりあえず楽しく触ってみたい」から始まるシチズンディベロッパー的な開発者の広がりや、プラグイン、アライアンス製品などを含めたWebAPIエコシステムを広げていく際には不利に働く面がありそうです。
また追加費用を支払う事で、単なるWebAPI仕様への回答だけではなく、APIの現場適用にまで踏み込んだサポートを期待されることもあり得るので、有償で行うサポートの内容をしっかり定義し、期待値のズレが発生しないような対策が必要です。
(2)コミュニティサポート
WebAPIに興味を持つ技術者同士のコミュニティを作り、ユーザー同士の有志による相互のアドバイスを行う方法です。
ただ、何も手をかげず自然にコミュニティが成長するというのはメーカーが夢見がちな単なる幻想で、実際にコミュニティサポートを形にしていくためにはメーカー側がかなり力を入れて支援し、回答がつかない質問を見つけては対応する、といった地道な努力が必要となります。
不特定多数の人が出入りするコミュニティという空間を維持するのは、単純なメーカーサポートよりも多くの労力が必要になりそうですが、うまく軌道に乗せることができれば開発者のファン化にもつながる伸びしろの大きな施策であると言えます。
また、正式なサポートとは異なりメーカー側もあくまで「コミュニティの一員」として参加しているという立て付けなので、ベストエフォート的な対応が許される(?)というのも、人材の確保が難しいWebAPIのサポート手法としてのメリットです。
(3)パートナーサポート
メーカーでのサポートが薄くなっている領域を、パートナーさんにサポートしてもらう方法です。
例えばサイボウズ製品では、クロスヘッドさんが独自の有償API開発サポートを提供されています。
クロスヘッドさんのようにWebサイトでメニューとして確立されていなくとも、条件さえ合えばWebAPI利用に関する技術的なサポートを受け付けるというパートナーさんは、一定数いらっしゃると思われます。
このようなサポートはメーカーとして人材を確保する必要がなく、パートナーさんの収入源になり、ユーザーは必要な支援を受けられて、と正に「三方良し」の方法です。
ただ、そもそもの需要が無ければパートナーさんがサポート体制を作ってくれないという大きなハードルがあり、製品そのもののAPI利用が相当盛り上がっていないと実現が難しい施策と言えます。
まとめ
以上、まとめてみると課題は多いものの、WebAPIのサポートはサービスの成長を左右する、重要でかつ取り組みがいのあるテーマだという事を改めて感じました。
今後我々がメーカーとしてもっと成長していくためにも、遠くないうちに何らかの形でWebAPIサポートを提供できるようにしていきたいと思っています。