一般的にすでに十分大きくて開発コストのかかっている既存サービス(Googleほにゃらら)と同じようなシステムを開発することは、勝てっこないし無駄な労力で良くない、素直に迎合すべきこととされていると思う。この考えのせいで葛藤して判断が遅れているのが非常につらい。
例えば検索や地図やブラウザなどはGoogle、クラウド基盤はAWS、小さいツールでいうと動画変換はffmpegで画像変換はimage magick、形態素解析は~機械学習は~WEBフレームワークは~など定石ともいえるツールであふれていて、それをうまく組み合わせて使うのが賢いといわれている。
とはいっても、どうやっても既存サービスでは解決できない事があったり、不便・不都合が我慢ならない場合があるし仕事に支障が出ることは多い。そもそもなんで他人がつくったサービスを無理して使わないといけないのかと我に返るときがある。本当に簡単なものであればさっさと自分で作るのだけれども、それなりに手がかかるものの場合、「流石にGoogle様等の作った業界標準サービスを使わないのはダメだよなぁ」、となってしまう。しかし素朴なつくりであれば、案外作れるものがあると思う。実際作れるのだけれども、諦めてしまう。諦めるための理由を見つけようとしているだけなのかもしれない。
当然、大手しかサービスが無いわけではない。マイナーな良サービスはある。でもきっとそれにも欠点はある。どうせ自分で作れるレベルなのなら、自分が求めるものを自分で作ったほうがいい。
現場に出て5年間くらいずっと葛藤しているが、ほとんどのサービスについて「作るべき」だとようやく思い始めた。(手が動くかどうかは別)しかしここまでくるのに何年間もかかったのが残念すぎる。大学のころに色々手を付けておくべきだった。
やはり諸々自信が無い。自分の中で”十分に理解が深まった”と思えるような分野がほとんどない。でももう人生の時間は限りあるし、わからなくても手を動かさないと負け。実際は自分の思っているより”他人より”理解できている。
ここでは、流石にそろそろ自分で作るかと思っているサービス(すでにGoogleがやっている)を挙げていく。
自分でも作れんじゃね?サービス
1. Google Analytics(Webアクセスログ集約基盤)
いわゆるウェブサイトのアクセス数分析をするためのツールの定番で、これさえ入れておけばいい、という扱い。
既存のGoogle Analyticsの問題点
・構造が複雑すぎる。ユーザー・集客・行動・コンバージョンというカテゴリで多くの情報が取り扱えるということになっているが、デフォルトだとほとんどのデータが格納されていない。無数にある管理画面から正解(意味のあるデータが格納されている項目)を見つける高難易度ゲームとなっている。
・基本的にデータの反映が半日から1日程度かかる。今日の数字を知るのは明日の昼過ぎ、となる。アクセス数などを知りたいのは基本的にイベント中もしくはその直後なので、役に立たない。
・リアルタイムの値が直近30分のみの一部の値しか閲覧できない。フィルターを掛けて一部のみを見ることもできない。
・基本的だと思うイベントがデフォルトだと取得できない。ユーザーのクリックしたボタンやvideoタグの再生数など。Google Tag Managerなどで追加のイベントを発火させる必要がある。
・上記は有料のGoogle Analytics 360でも同じ
・2023年7月に旧来のバージョンであるUAを終了すると言っているのに、上記の問題はGA4(次のバージョン)でも改善する見込みがない、どころかGA4ではダッシュボードの閲覧がさらに難解になっており、直観的に基本的な値を見ることすらできなくなった。
どう対抗するか
・とにかく素朴につくる。
・超大量アクセスは想定しない。
・現場で必要なもののみを取得する。必要な情報を数秒おきに収集すれば良い。
デファクトスタンダードというGAのメリットを享受していない組織において、きっと同じ感想をGAに抱いているならば、絶対にメリットが多い。
懸念点
・プライバシーポリシー周り、既存サービスが戦ってきたものを考慮する必要がある。ただし彼らとは違って別のサービスと顧客情報をやり取りするためのサービスではなく、あくまで1stパーティデータを集めるだけなので難易度は低い。
・とはいっても大量アクセスに耐えないといけない。ブラウザの動作も軽くしないといけない。QUICなど新しいプロトコルを使いたいところだけれども、今スムーズに実装できる手段は限られるかもしれない。
2. Google AdManager・Google Admob(アドサーバ)
WEB広告サービスはどれも地獄。とにかく単純化が必要。ネットワーク広告を1から立ち上げるのは困難だが、自社の純広告くらいはちゃんと掲出したいということで、アドサーバを構築したい。例えば広告を設定したもののちゃんと表示されない、というときに正しく理由を表示できるアドサーバは存在しない。
さらに動画広告を正しく表示するためのVASTタグの構築などができるサービスはとても少なく困ることが多い。
アプリについても同じで、ネットワーク広告をネイティブアプリに表示するためのAdmobはマルチバイト文字に対応してないに等しいなど問題が多い。
昔ホリエモンが1人で広告サービスを作ったとかあるけれども、本来1人で作れるもの。Googleに頼るデメリットはとても多い。
3. Google検索(検索エンジン)
ご存じの通り、昨今の検索エンジン(笑)は、純粋なAND検索ができなくなった。特にマルチバイト文字圏の単語は勝手に1-gramで文字を分解して、すべての言葉がヒットしてしまう=Googleの表示したい項目が表示されるだけの、超恣意的サービスになっている。
この検索システムの劣化は、Google検索だけでなく、他の検索エンジン、Googleのサービス内(Gmailなど)、アメリカ発のサービス全般で見られる傾向となっている。
そこで、純粋にAND検索ができるような検索エンジンを作るだけで人気が出ると考えている。
ただ、Google・Bingがここまで必死に”まともに検索しないように”する理由もあるのだと思う、世の中にウェブサイトが多すぎて計算コストが非常にかかるのか?そもそも検索エンジンというのがどういう理屈で動いているのかを理解していない(インデックスを作っているから速く検索できるのだとは習った)が、ちゃんとした計算リソースと知識が組み合わされば、シンプルな検索エンジンはできると思っている。
ちなみにすでに手を出したツール
1. 動画配信サービス(限定公開のみのYouTube、Vimeoなどと同じ)
これは業務上必要だったので部分的に構築済み。
素朴な方法がHLSしかないので、配信遅延が大きい・配信安定性が低い。
分かりやすいサービス(JstreamやBrightcove、Vimeoなど)はクオリティ・カスタマイズ性が気になるし、何でもできるサービス(AWS Elemental MediaLive)は高価だし設定が煩雑すぎる。
2. CRM=顧客管理ツール (salesforceの一部機能)
顧客登録・ログイン・管理・メールマガジン などの機能
かなり組織によって使い方が違うツールなので、本当に既存商品を使うのが難しい。
3. Webメディア(の基盤)
そもそもローカルでWebメディアを作るってのは初めは抵抗が大きかった。実際は結構普通のことらしい。そしてネイティブアプリや様々なシステム連携を考えると1から作るほうが良かった。
とにかく
Googleなど既存サービスに頼っているとつらいことが多い。すぐに作るためにさっさとデキるエンジニアに投げたい。広島にはエンジニアが居ない。