ボクココ

個人開発に関するテックブログ

全員が満足する Web サービスを開発することができるのか

ども、@kimihom です。

前回書いた、Web サービスは機能の多さで勝負してはならない は多くの反響をいただいた。

その記事では、機能を多く追加することによってサーアビスのコアを見失い、尖りを持たないサービスになることを懸念した。サービスはコアを突き詰めることで、本当の強みを得ることができる。

ここで特に日本中、世界中で使われるサービスにしていきたいと考えている方にとっては、そんなんじゃあダメだと思われた方もいるだろう。ではどうしたら全員が満足できるサービスを開発・提供できるのかを考察する。

シンプルベースでカスタマイズ性を突き詰める

まずサービスの全体像は必ずシンプルにすること。そのシンプルは自分たちのサービスのコアとなるものだけを提供する。ここまでは変わらない。んでその中でもっと便利に使いたい、こういう機能が必要という人がそのうちの30%がいたとする。彼らは設定項目をいろいろいじって機能をより便利に使うことに熱心な人たちだ。彼らにはより細かい機能が使えるようなオプションをひっそりと用意してあげることが策として一つ存在する。

ただ間違っても開発エンジニアはその細かいオプション機能に時間を割くよりも、メイン機能を極めていくことのほうが大事であることは忘れてはならない。そうした30%の人たちのために開発時間を注ぎ込むより、100%の人がもっと満足する機能の改善に注力すべきだ。

なので、この方法はできなくはないが、あまりクールな解決策とは言えない。

機能を外部の開発者が利用できるようにする

サービスのコアを磨き続けつつ、ある人にはこの機能、ある人にはこの機能といったカスタマイズ性をどのように提供するか。その究極が API の公開 だと私は考える。

私たちコア機能を持つサービスは API を通じて外部に機能を提供し、外部開発者の好きなように私たちの機能をカスタマイズできるような環境を用意してあげる。私たちは APIで拡張できる環境さえ用意すれば、サービスのコアに集中することができる。

拡張機能が欲しい人がいれば、外部の開発会社などに依頼して API を使って拡張するようにすればよい。さらに、その外部の開発会社はその資産を使って他の企業にも同様に拡張機能として売り出すこともできれば尚よし。

ただこの策には一つ決定的な課題がある。それは外部の開発者がそのサービスを気に入って、自分たちが拡張しようという気概を持ってもらわねば、APIを公開しても誰も使われないオチになるという点だ。APIを公開したものの、結局 顧客からの要望は増え続けて自分たちが対応しないといけなくなったりする。

だからこそ API を提供してメインビジネスをやろうとしている会社は外部の開発者に寄り添うようになる。開発者が心地よく開発してもらうようにたくさんのノベルティでエンジニアを誘惑するわけだ。API ビジネスはそこに大きな労力を割く必要が出てくる。日本のエンジニアはただでさえそんなに多くないし、こうしたAPIの考え方に共感できるレベルのエンジニアがそこまでいないのが大きな問題な気がする。

この方法を成功させるには2つのどちらかを満たしている必要がある。外部開発者が儲かると思えるほど自社プラットフォーム側で大量の顧客を持っている場合か、その API を外部開発者が導入すればより自社のサービスがよりよくなると確信できるほどのものである場合か、である。

自分たちが API 連携の実装をする

開発する機能が自分たちのコアの機能ではないとしたら、そこに時間をかけるべきではない。かといって第三者の開発者がそんなにすぐに自社の API を使ってもらえるとも限らない。そういう場合は 自分たちが積極的に外部サービスのAPIを利用して拡張機能として顧客に自由に追加できるような環境を用意しよう。

強力なコア機能を持っているサービスが連携すれば、その連携先はとても歓迎してくれる。というか感謝される。一緒にイベントとかやりましょうとか、開発者として発表してくださいとか割と良い関係を築くこともできる。自分たちが API を公開して満足するというよりは 自分たちの API を公開しつつも 自分たちのコアでない機能は外部連携を実現して強くする という方針が良いのではないか、と思う。

他のコア機能を持った良いサービスと良い関係を築くことは、良い信頼関係を生み、良い顧客を呼んでくれる要因にもなる。そうして私たちはまたコア機能の改善に注力でき、さらなる素晴らしいサービスに磨き上げることができる。

終わりに

自分のサービスだけで全員を満足させる、というのは不可能だ。だからこそ他の良いサービスとうまく協働し、エコシステムとして顧客毎に合うような運用ができるように連携・セットアップしてもらうのがいい方法になる。

顧客の要望に全て答えることは一見いいことをしているように見えるかもしれない。しかし、それは他の顧客、シンプルさが気に入っている顧客を不満足にさせる結果につながる。しっかりと自分たちのコアを見つめることができれば、要望を切り分けて"作らない"という英断を下せるような体制を築くことができるだろう。それがゆくゆくは"全員が満足する Webサービス"となることができるのである。