こんにちは、特命求人強化係の出井(いでい)です。
当社の基盤システムの一つである大規模SNSプラットフォームの、開発秘話です。
結構歴史が古く、多くのクライアントに支持されているシステムですが
その誕生秘話を紐解いていきます。
▽登場する社員
堂之上:新デバイス好きなチーフシステムエンジニア
佐々木:The職人。頼れるシニアプログラマー
高 井:ゲームとお肉が大好きなフロントエンドプログラマー
池 田:サッカー大好きなWEBディレクター
■初っ端から起きるつまずき
出井:
創業当時から、顧客要望に応じてバージョンアップを繰り返しているシステムだそうですが開発のきっかけとか苦労した点とかありましたか?
佐々木:
昔は通話回線のシステムを組んだり、ホームページの制作を細々とやっていたんですが、いろいろHP(ホームページ)などの試作していくと当時はJAVAアプレットを使うと非常に優秀なコミュニケーションツールに変わっていくのがわかりました。
試しに簡単なコミュニテイサイトを公開して見ると非常に盛り上がっていったんですが、その反面、マネタイズするには苦労して次第に赤字が増えていく悪循環でした。
出井:
さっそく、苦労が訪れたんですね。
佐々木:
この頃は、ITという業界そのものが「虚業」とかまだまだ言われていて、
広告価値とかも無い時代だったので、広告モデルはある程度突き抜けたサービスじゃないと出来ない感じでした。非常に試行錯誤の時期でしたね。
出井:
今じゃ考えられないですね。そこからどう立ち直ったんですか?
佐々木:
運が良かった面もあったんでしょうね。それと同じ時期に、ミクシィを始めとしたSNSブームが起きて、顧客の要望どおりにモバイル対応と大規模化に対応していくといつの間にか実績が評価されるようになりました。この頃には携帯電話のiモードの普及もあり、爆発的にモバイルユーザーが増えていたのもあって当社のシステムは支持されましたね。今はスマホユーザーが9割なので、アプリなどへの対応が主ですがこの時の経験は今も活きています。
■社内の片隅にサーバーを置いて運用
出井:
バージョンアップを重ねていく間の苦労話とかありますか?
佐々木:
実は初めの頃は見切り発車で開発を進めていて、拡張性を考えてはいたのですがコスト面もあってなかなか理想のシステム設計とはいかず、サーバーの置き場所から苦労していましたね。
堂之上:
そうですね。もう時効だと思うので言いますが、当初はまだ運用サーバーが仮想化する前で、サーバーもオフィスの一角を使って運用していました。ビルが停電するたびに電源を確保するなど、顧客のサービスを止めないように対応に苦慮しました。加えてクライアントのデータ毎に物理サーバーを設置してあって、そのメンテナンスは本当に手がかかっていましたね。
佐々木:
サーバーの安定稼働は顧客にとって命取りになるので、このシステムの拡張を試行錯誤していた時期が一番悩ましい時期だったね。
堂之上:
その後、地震をきっかけに専用のデータセンターに移設したあとは安定した可動が出来てきましたね。システム立ち上げ期は、先輩エンジニア同士の意見のやり取りなども激しい部分もありましたが、今となっては良いものを作る過程だったのかなと思います。
佐々木:
システムの運用って地味ですが本当に重要です。一か所でもセキュリティホールがあるとアタック側はそこを攻めてきますので(苦笑)
■バージョンアップの楽しさ
佐々木:
サービスが拡大すると、いろいろ要望が増えて来てその実装方法も毎回悩む部分です。例えば初期の頃だとテキストや画像が主流だったんですけど、スマートフォンが普及するとテキストに加えて動画が無いとWEBコミュニケーションは成り立ちません。LINEの普及で音声通話などの要望も基本機能に求められるようになりました。そうなると、サーバーやネットワーク機器を含めたインフラの整備も大規模化していきますしトラフィックに耐えるフレキシブルなモノが求められます。ユーザーやクライアントの目には見えない部分ですが、そういったことが結構、サービス運用の醍醐味かもしれません。
高井:
それと無料のスマホゲームに触れる人が増えたせいか、最近はログイン毎にゲーム性を持たせたり、演出の部分に関する要望も増えてきましたね。そうなると難しいのが、スマートフォンのブラウザ環境とアプリ環境での印象や操作感の統一感とかになるけど、そういった細かいことも悩ましいですが面白いですね。
池田:
人の成長と同じで、WEBサービスやアプリでも、昨日できなかった部分が今日出来ているというのは非常に嬉しいです。ただ、要望があるから、その機能を入れるという事はあまりやりません。顧客はユーザーの要望やライバルサイトの動向を調べて、依頼してくるのですが本当にユーザーの為になるものなのか?既に同じような機能があって、ユーザーは必要としていないんじゃないか?とか、開発前のレビュー等で粗だしをして作った方が開発側のコストも減るしユーザーの満足度も高いことが多いです。
■もし新しく取り組むなら?
池田:
求められている部分はスマートフォンへの更なるアジャストでしょうね。
まだまだガラケーの仕組みを引きずっている部分があるので、そこら辺をリプレイスしてスマートフォン用のブラウザと、アプリに寄せていく必要性があるなと思います。
佐々木:
長くやっていると技術的負債(無駄なコード等)と言うのは、どうしても貯まっていく一方なので、そこをどうにか解消する必要があるかなと思います。一見地味なアップデートでも内部的には革新的な試みを行っていたりします。クライアントやユーザーには分かりにくい部分なので本当に報われない事が多いですが、重要度は高いです。
堂之上:
最近は新しい技術が加速度的に実用レベルに達してて、いまやAI(人工知能)やVR(仮想現実)等、流行分野への進化が無いとダメなんじゃないかと思いがちですが、そうじゃないです。一番必要なのはいまシステムを使っているクライアントやユーザーの歩調に合わせた実装なのかなと思います。
■顧客が一番良いモノを提供する。
池田:
うちはスマートフォンアプリ開発は福岡では早い方で2010年には最初のiPhoneアプリを出しました。ただし本格的にクライアント向けに作り出し始めたのは2013年以降ですね。今や、スマートフォンユーザーを対象にしたサービスだとアプリ以外に考えが思い付きませんが、当初は引き合いには出されるけどそれほど重要じゃなかったんです。
技術を追求するのはエンジニアの仕事ですが、使うバランスや時期というのは重要。その点は自分らのような、企画寄りのディレクターや事業計画者の人間が、顧客やユーザーに接しながらタイミングを計りながらやる仕事なのかなと思います。
佐々木:
一般的に、受託案件は言われたように作ると思いがちですが、なるべく仕様段階で意図を考えてクライアントの想像以上のクオリティになるように心がけています。とはいっても難しいことではなくて、ちょっとした部分です。パッと見の動きが複雑なので、躊躇しているような処理やUIでも、既にモジュールやAPIが出回っている事が多い。仕様の意図を聞くと既存のモノを組み合わせるだけで、やりたかった事が実装できることも多いです。ちょっとした工夫で一番良いモノを出したいですね。
受託開発で作られているモノは、なかなか外で発表する事が少ないので
やりがいが少ないと考えがちですが、次に活かす”技術”とポジティブに捉えるとどうでしょうか?