
"新潟なのに"モダンな開発環境!?プログラミング経験ゼロの広報担当が自社プロダクト「ooowl(オウル)」の裏側を覗いてみた
「インターネット広告会社」って、どんなイメージがありますか?
「お客様の要望をヒアリングして最適なプランを提案する」のような、
人対人のクライアントワークのイメージが強いでしょう。
もちろんその側面もあります。しかし、ユニークワンはインターネット広告会社としては珍しく「自社プロダクト開発」にも力を入れています!自社の業務効率化はもちろん、お客様向けのサービス開発にも積極的に取り組み中です。
特に注力しているのは
Instagram・Twitter分析ツール「ooowl(オウル)」!

さまざまな業種・業態のお客様のSNS運用を支援してきたノウハウを活かし「初心者のためのInstagram・Twitter分析ツール」としてお客様へご提供しています。
そしてなんと…「ooowl」は今年3月に大幅リニューアル!
リニューアルに伴い、プレスリリースも打っちゃいました!
これから、問合せも増えるかもしれないな…(ワクワク)
エンジニア採用のエントリーも増えちゃうかも…?(ワクワク)
・・・・・・
あれ、ちょっと待てよ…?
もし「ooowlってどんな仕組みで構築されてるんですか?」みたいな質問が来たら、広報担当として答えられるかな…!?
なんとなーく「東京のスタートアップでエンジニアとして活躍していた平山さんがクラウドサービスやらプログラミングやらを駆使して構築したプロダクト」という認識しかない…
これは広報担当として、非常にマズイ…😨
一旦、上司の櫻井さんに相談してみよう…!
ーーーーー
ソガ:櫻井さん!私、広報担当なのにooowlの裏側のこと、全然知らないことに気づきました…
櫻井:なんだって!?!?広報たるもの、問合せが来ても対応できるように準備をしないと!せっかくプレスリリースを打ったタイミングだしちょうどいい!平山さんに色々聞いてみて!
ソガ:承知しました💪!
ーーーーー
ということで、ooowlを構築・運用しているエンジニア・平山さ~~ん!
ooowlの裏側を、教えてくださ~~い!

・ ・ ・
ooowl(オウル)はGoogleのクラウドサーバー(GCP)上で動いてます!
ソガ:平山さん!ooowlをリニューアルして大々的にプレスリリースも打ちました!でもよく考えたら、わたし広報なのに技術的なことほぼ知らなくて… 今後のためにもぜひイチから教えてください!🙇♀️
まず、すごく基本的なことなのですがooowlってクラウド上にあるサービスですよね?
平山:そうです!GoogleCloudPlatform(GCP)上で動いてます。
ソガ:クラウドサービスってamazon(AWS)やMicroSoft(Azure)とか、他のサービスもあると思うんですけどGCPを使っているのは理由があるんでしょうか?
平山:正直、サービス内容自体に大きな差はないんです。ただGCPはGoogle系のサービスと連携がしやすいんですよね。Google広告はもちろん、データポータルやスプレッドシートなど… 普段業務で使うサービスと連携した開発がしやすいので、GCPを使ってます。
ソガ:なるほど… Googleのサービスをフル活用しているユニークワンとは相性バッチリですね!なんとなく、サービスのインフラ担当者は昼夜もなく24時間365日サーバーに張り付いてるというイメージなのですが、平山さんももしかして…そうなのでしょうか?
平山:いえ、毎日ぐっすり寝てます笑 近年では「サーバーレス」という自分達で固定のサーバーを持たずにサーバーの増強・メンテナンスを全てクラウド側に任せる仕組みが発達しています。弊社でも積極的に取り入れているのでインフラの運用コストは最小限で済んでいます。
例えば、突然サービスへのアクセスが増えて1台のサーバーでは処理し切れなくなった時は自動で2台目が立ち上がり、アクセスが落ち着いたら1台に戻るというような仕組みが組み込まれています。
サクサク動く操作画面の正体は…?
ソガ:そういえばooowlの画面って、サクサク動いて操作しやすいですよね!「分析ツール」と聞くと、なんだか操作感が遅そうなイメージが勝手にあるのですが…
平山:それは"SPA(Sigle Page Application)'"として構築されているからです。
ソガ:SPA…?(初耳)
平山:まず、Webページが表示される仕組みって、Webサーバーにリクエストが送られてHTMLファイルがブラウザに表示される、というのがざっくりとした流れです。

平山:基本的に従来のwebアプリケーションはサーバーから配信されるhtmlファイルをブラウザが読み込んでページを表示するという仕組みなのですが、この方法ではページを遷移した時にhtmlファイルを再度上から下までフルで再読み込みせねばならず表示にラグが発生します。

平山:また、同じページ内で操作によって表示が変わっていくような動的なページを作るのも苦手です。なので、webアプリケーションではページのフル読み込みは初回だけ・それ以降は更新が必要な部分だけページをプログラムで差し替えていく"SPA"という手法でUIを構築するのが主流になっています。

ソガ:そうなんですね!プロダクト開発の世界では当たり前の技術なのか…
平山:そうです。曽我さんがよく利用しているnoteやSTUDIOも当然SPAですし、この2社が採用しているNuxt(Vue.js)というフレームワークを弊社のooowlも採用しています。
ソガ: SPAについて調べてみたら、Meta社が公開している"React"というライブラリが有名みたいですね…。Vue.jsを採用しているのに何か理由があるのでしょうか?
平山:ここは採用面を考慮しています。Vue.jsは書き味がベーシックなhtml, cssに近いんです。新潟で経験豊富なフロントエンドエンジニアを採用するのは正直なかなか難しいので、サイト制作からwebエンジニアにキャリアチェンジしてみようという方も取りつきやすいかな?と思いVue.jsを採用しています。
プログラム開発の新スタンダード!言語は"TypeScript"を活用
ソガ:技術面の話、聞いているうちにだんだん興味が湧いてきました笑
初心者質問なのですが、ooowlってどんなプログラミング言語で開発されているんでしょうか?なんとなく勘で…JavaScriptでしょうか?
平山:あ、ほぼ正解です。正確に言うとJavaScriptを拡張した”TypeScript”という言語で開発しています。
ソガ:そうなんですね!TypeScriptは、エンジニアさん的には「常識」な言語なのでしょうか?
平山:はい、プログラミング言語としてはだいぶ市民権を得ています。
ソガ:ちなみに、ユニークワンでは「フロントエンドエンジニア」「バックエンドエンジニア」を両方募集していますが、使っている言語はどちらもTypeScriptなのでしょうか?
平山:はい、どちらもTypeScriptで統一しています。少人数の開発チームで一人のエンジニアがフロントエンドとバックエンド両方を担当する際、別の言語を使っていると二つの言語を習熟するのに時間がかかったり、フロントエンドとバックエンドを行ったり来たりする際に頭の切り替えにコストがかかるのでTypeScriptに統一しました。TypeScriptは生産性の面で非常に優秀で、言語の持つ表現力や周辺ツールのアシストが充実しているんです。エディタの指示に従ってコードを書いていけば事前にバグやエラーを防げることも多いんです。

開発・改善を迅速に!CI/CDの考え方
ソガ:そういえばooowlって、改善が反映されるのがすごく速いですよね!修正してほしい箇所を伝えたら数時間で完了していたり笑

平山:そうですね。ooowlというか、ユニークワンのプロダクト開発全般で素早く継続的に改善を行える体制を重視しています。プロダクト開発界隈の言葉で言うと「CI/CD」っていう考え方ですね。
ソガ:CI/CD…?(また聞きなれない言葉だ)
平山:"CI”は「継続的インテグレーション」、"CD"は「継続的デリバリー」の略です。アプリケーションは一度リリースしたら終わりではなく「継続して開発&リリースをおこなってユーザーに価値を届けていこう」みたいな考え方ですね。
平山:たとえばooowlではプログラムを変更したら、裏側で全ての機能が意図通りに動作しているか数百のチェック項目を自動で検証しています。検証がOKだったら自動的にリリース、NGだったら問題のあった内容をslackに通知といった、迅速に安全に新しい機能をユーザーに提供できる仕組みを取り入れてます。
根底にある考えは"Worse Is Better"。高機能よりも「シンプルさ」が大切
ソガ:一回作って終わりではなく、継続的に改善していくという考えが基本なんですね。なんとなく聞いたことのある「アジャイル開発」の概念と近いのでしょうか?
平山:そうです。アジャイルの概念と近いものがあります。まだチームの人数が少ないので本格的なアジャイルのプラクティスは取り入れてませんが、人数が少ないからこそ単純さを第一にする「Worse Is Better」のポリシーを持って技術剪定や開発フロー作りに取り組んでいます。
"worse is better"として知られる考え方では、ソフトウェアを作る際には(おそらく他の分野でも同様に)最小限のものをまず作り、そして必要に応じて育てるほうがよいとされる。
平山:ooowlで取り入れている技術は、決して全てが最先端の技術ではないんです。一見すると機能不足なんじゃないかというツールを使っていたりもしますが、ユニークワンのバリューにもある「少ないリソースで成果をあげる」を実現するために"あえて”単純なものを採用する場合もあります。考える選択肢を減らすことで迷いやミスを減らすことにこだわっています。
ソガ:なるほど!平山さんとはいつも隣の席でお仕事しているのですが、こんなにモダンな環境で開発をされてるとは…想像以上でした!
平山:僕は以前、東京のベンチャーで働いていたのですが、その時と全く遜色ないモダンな開発環境が揃っています。
▼ユニークワンでは仕事環境にもこだわっています!
平山:ユニークワンでは煩雑な承認プロセスもなく、現状を改善していくことを積極的に肯定する文化があります。これまでの慣習に囚われず新しいことをを積極的に試すことができるので、新潟にいながらエンジニアとしてスキルアップできるはずです。今は僕が一人で技術的な面を対応していますが、このタイミングで入社いただける方は会社創設以来2人目のエンジニアとして、仕組みづくり・事業拡大に携わることができます。正直、すごく丁度よいタイミングだなと思いますね。
・ ・ ・
まとめ:首都圏に引けを取らない「モダンな開発環境」スキルアップできます!
平山さん、ご協力いただきありがとうございました!
広報担当として、プログラミングの知識はゼロながらもユニークワンの開発環境について理解できました!
▼改めてooowlはこちらです!
ユニークワンでは、事業拡大の肝となる「自社プロダクト事業」にて中心人物として活躍いただけるエンジニアを募集中です!第二新卒も歓迎中です!
少しでも興味がある方は、ぜひエンジニア向けの採用ピッチ資料↓をご覧ください!
(2022年11月現在エンジニアの募集は終了おります。)
【平山さんのインタビューはこちら!】
ユニークワンでは一緒に働く仲間を随時募集中です。
興味がある方はぜひ求人をご覧ください。
>> 採用情報はこちら