【職人のテツガク⑩】目指すのは「エンジニアが楽しく遊びに来られるカフェテリア」。Webマーケター手元再現ツールの開発現場
「『職人』と呼ばれるWebマーケターが、経験や直感で行っているような精度の高い調査・分析が誰にでもできるツールをつくれば、多くのWeb担当者が『人間だからこそできる仕事』にもっと集中できるはずだ」。そんな発想から形になったのが、Faber CompanyのWebマーケティングツール「MIERUCA(ミエルカ)」です。国内最大級のSaaSレビューサイトITreview Grid Awardにおいて9期連続最高賞の評価を受けている「ミエルカ」シリーズ。その開発を手掛けるエンジニアたちに話を聞くと、多様なメンバーで議論を重ね、お客様も巻き込みながら機能を磨き上げていく開発現場の様子が見えてきました。
左:金子冴(かねこ さい)
開発チーム ソフトウェアエンジニア
北海道旭川市出身。豊橋技術科学大学を卒業後、新卒でSIerに入社し、大型宅配システムの開発、運用保守を経験。2018年6月にFaber Companyへ入社。Mierucaを中心とする複数プロダクトの企画や開発に携わりつつ、持ち前のコミュニケーションスキルを発揮し、他部署との連携促進や採用活動など幅広く担当。趣味はカラオケとお散歩。猫が好き。
右:青柳悠太(あおやぎ ゆうた)
開発チーム ソフトウェアエンジニア
福島県出身。情報技術を専門的に学ぶため、東京工業大学工学部に進学。2014年2月Faber Companyでインターンを始め、大学院に進学後、2016年10月に新卒として入社。趣味は衒学とオーバーエンジニアリング。オフの日でもプライベートの開発を行う。
要件定義は「ビジネスサイドの期待を言葉にしてもらう」お手伝い
ーーFaber Companyでは16期も多彩なリリースがありましたね。これらをどんな流れで開発しているのでしょうか?
16期(2020年10月〜2021年9月)にローンチした新機能・サービスの一部(社内報より)
金子:現在、機能のアップグレードに取り組んでいる、ミエルカ「クエリタイプ分析機能」を例に挙げてご紹介します。
まず、どのような発端でこの機能が生み出されたのかを説明しますね。ミエルカは「職人の手元を再現する」というコンセプトで機能を作っています。定期的に実施しているエンジニアと職人との話し合いの中で「もし、我々(職人)が日常的に実施している『クエリタイプの分類』を技術で再現できたら、幅広いお客様の困りごとを解決できるのではないか?」と気付きを得ました。そこで、2019年にWebマーケターの中でも高度な技能を持つ白砂さん(白砂ゆき子=写真右)たち「職人」と力を合わせ、このプロジェクトが立ち上がったんです。
2019年の開発時。「職人」に様々な質問を投げてどうシステム上で実現するか構想を練る金子(左)
金子:「職人」たちは普段、Googleの検索結果画面に含まれる記事を一つ一つ確認したあと、Q&Aサイトなども行き来しながら「自分が新しくこのキーワードでコンテンツを制作するなら、誰に何を伝えればより多くの人に見てもらえるか?」を見極めていることが話し合いの中でわかりまして。具体的には、コンテンツをいくつかの種類(ECサイト、比較記事、等)に分類していたので、「この分析・分類を技術で代替できないか?」というミッションを掲げ、職人とエンジニアが入念な検討を重ね、手法を考案していきました。
参考:クエリ判定がなぜ重要か、Web担当者Forum ミーティング 2019 春の講演で白砂が講演。
ーーアップグレードでは、まず何から手を付けたのですか?
金子:僕は全体の指揮を執るディレクターとして参加し、入社3年目の赤堀くんをサポートしながら進めていきました。まず赤堀くんが、お客様と接する機会が多い営業、CS、サポートチームの方に「クエリタイプを分析するメリットは何か、普段どうやって分析しているのか」を改めてヒアリングしました。そして、皆さんから伺った「ぼんやりしている期待」を言語化することで「どのような機能が理想なのか」を明確にしていく作業から、僕もサポートして進めましたね。要件が言語化できたあとは、機能開発者とエンジニアチーム数名で、具体的な機能イメージを揉むフェーズ。機能のイメージを話し合い、技術的な解決策の検討、さらに「現状のシステムにどう組み込んでいくか」を議論しました。
(左上から時計回りに)東京本社エンジニアチームの金子、赤堀貴一、青柳、Nguyen Ngoc Hoang
この機能で実現したいことは技術的に可能なのか、言語化された期待の中で必須となる要求はどれなのか、お客様にどのような価値を感じてほしいか、そのためにはどのような結果が望ましいのか…。これらを何度も繰り返し問いつつ、ものづくりの方向性を決めていきました。「ユーザの目線や期待を忘れない」こと、「言葉に現れていない『問題の核』を掴む」ことは常に意識していましたね。
ーーどんな手法でクエリを分類していったのですか?
金子:現在使用している手法は企業秘密ですが、検討時には機械学習の活用やルールベースの分類など、より良い解決策がないかを入念に議論しました。例えば、「この言葉があれば、この意図だよね」という「手がかり語」に注目するのも一つではないかと。
※概念実証。新しいアイディアの実証を目的とした、試作開発前の検証を指す。
金子冴
ーー青柳さんはどの部分を担当したのですか?
青柳:私はこの機能を動かすインフラ開発、リリースと一部のテスト、アップグレードに際してのアドバイスなどを担当しています。それ以外に、分類のアウトプットを「職人」が判断するお手本により近づけるために実施した、データ追加の作業は特に記憶に残っています。これが実はめちゃめちゃ力技で(笑)。最初にもらったデータが一部壊れていたこともあって、言葉と意味の紐付けを一つ一つ確認しながらプログラムに変換する作業が思っていたほど単純ではなく、苦労した部分の一つでした。
「手がかり語」を探すため、初期は一つ一つハイライトをつけていった(図は当時の作業を再現したもの)
ーーそれは大変そう…(泣)!苦労の末に、どんな機能に仕上がったのでしょう?
金子:特定のクエリを入力した際、検索結果に出てくるコンテンツが4種類のタイプ(〜とは、HOW TO、比較検討、取引)のうち、どの傾向が強いのかを可視化する機能としてリリースしました。
検索結果として表示されるコンテンツは、概ね4種類に分類できる
Web初心者でも「職人」と同レベルの分析が可能に
ーーWeb担当者はどんな時にこれを使うのですか?
金子:コンテンツの企画、「どういう種類の記事を書くのか」を判断する際に有用です。社内の職人は「自分が感覚で行ってきた分類が、短時間で自動でできるようになった」と絶賛してくれました。
たとえば「コート」をこの機能で分析すると、検索1〜10位まで、95%が大手のECサイトだと判定されます。つまりほとんど「商品を買う人(取引)」が調べているクエリです。自分がWeb担当者だとすると、ここに「コートとは?」という解説記事を書いても、検索10位以内にランクインする余地はないと、判断できるんです。
一方、クエリに1単語足して「コート 2020年」だと「今年のトレンドは?」といったコンテンツが勝負する余地が生まれるんです。今から新規コンテンツを企画して勝負をかけられるかどうか、分かれるのが面白いですよね。
「クエリタイプ分析機能」で「冬物 コート」を分析した図。検索結果上位は、ほぼ通販サイトが占めている
青栁:ほかにも「スマートスピーカー」というクエリで調べると、検索2位は「商品を買う人(取引)」向けのECサイトですが、それ以外10位までのコンテンツの60%が「買おうと思って比較検討している人」におすすめや機能比較をしている内容でした。
加えて「どうやって使うの?(How to)」に答えた内容は10%、「スマートスピーカーとは?(どんなものか)」という解説も10%だとわかります。これらのパターンを知って参考にすることで、ユーザーに読んでもらいやすい構成を練ることができるのです。
「スマートスピーカー」というクエリは、「買う商品を比較検討したい」ニーズが60%であることが分かる
――このヒントは記事を作るときの羅針盤になりそうですね。
金子:はい。実際にリリース後、ありがたいことに、多くの方にご利用いただいてます。
青柳:今の機能でも記事の企画にはなかなか参考になるヒントを集められますが、さらに役立つ情報を提供すべく、職人とエンジニアの会議「藤の会」でアップグレードの案を話し合っています。「職人」の白砂さんから「クエリタイプを分類するだけではなく、タイトルとディスクリプションによく含まれている頻出単語に色をつけてわかりやすくしてあげたらどうかな?」という発案があり、後輩エンジニア・赤堀くんが開発。それを私がサポートしています。
金子:自由記述だとどう書いていいか迷う人も、キーワードを与えられたほうが書きやすいですよね。
ーーますます記事の作成が簡単になりそうですね!ところでその、「藤の会」って…?
青柳:エンジニアと職人で定期的に行う開発ミーティングです。メンバーの白砂・赤堀・青柳の名前にある色の白・赤・青を混ぜると、藤の花の色になりますよね。だから「藤の会」。職人との直接の対話を通して、エンジニアが「自分が何を作るべきなのか、なぜそれが便利なのか」がイメージできるのです。
使える技術の取捨選択を助ける「テックリード」
ーーなるほど、職人とエンジニアで定期的に話し合って進めていると。事前の取材だと、青柳さんは技術サポートの役目が多いように見えます。
青柳:たしかに多いですね。複数の要素が絡み合っているような状況が典型的ですが、そのまま進むと後で困ったことになる落とし穴に気づいたときは私から声をかけることもあります。そうこうしていると、一般的な意味とは少し違いますが「テックリード」と呼ばれるようになりました。
金子:青栁さんに相談すると、ただ答えを教えるのではなく、選択肢をそれぞれの良し悪しと一緒に提示し、さらに将来的にこういうリスクがありそうだという視点も含めて教えてくれるんですよ。「今後の展開次第で応用が効くように汎用性を持たせておきたいが、今の構成はこれでいいですかね」みたいな感じで相談すると、想像もつかなかったデメリットがあった、みたいなケースもあって。いつもお世話になってます。
青柳悠太
互いを尊重しつつベストな妥協点を見出すチームワーク
ーーますます簡単に、誰にでもやさしい機能になるんですね。青柳さんにとって、やりがいを感じるのはどんな時ですか?
青柳:うーん…いつだろう。
金子:僕が見る限り、青柳さんが楽しそう語ることって「答えが明白ではないこと」じゃないかと。1つの機能を達成するのに複数の手段がある中、今どれ選ぶべきか、ベストな技術を見出す過程での議論はいつも楽しそうイキイキしていますよね。
青柳:たしかに。目的までのルートを比較するのを手伝っているときは楽しいかも。「工夫の余地のない一本道」ではつまらないと感じるので、ちょうどその真逆にあたりますね。また、私は他のエンジニアに「ここはこうしたほうがいいよ」と勧める時、私の好き嫌いが多分に入った時は「私の独断と偏見で言うと」と明示するようにしています。変なバイアスで学んでほしくはないから。
金子:青柳さんの場合はたとえ持論が採用されなくても、「諦める」じゃないからいいんですよね。自分のこだわりがあるんだと主張しつつ、僕たち後輩が「今回はすみません、それではなくこっちを採用します」って言うと、「あっそう、じゃあ俺は知らない」と投げ出すのではなくて、「そういう選択はあるよね、でも将来的にはこういうリスクがあるかも知れないから気をつけたほうがいいよ、大丈夫?」と、対立意見でもちゃんとメリット・デメリットを見極めてくれて、優しさでサポートしてくれる。こっちも覚悟を持って選べます。
青柳:私を含め、当社はこだわりが強い人が多いですから、他者のこだわりも尊重してちゃんと妥協点が見いだせないと仕事になりませんので。
ーー金子さんがやりがいを感じる瞬間は?
金子:最近わかったことなんですが、僕のモチベは「相手に尊敬されること」「すごい!と言ってもらえること」なんじゃないかなと(笑)。「これできる?」と頼まれていた機能を完成させて、依頼者に見せた瞬間に「これ、すごいね!」と言ってもらえた瞬間が、一番やりがいを感じます。
ーー非エンジニアには、新機能ってまるでランプから出てきた魔神が魔法で作ってくれた!みたいな感覚ですから、「すごい!」って言う気持ち、わかります(笑)。
金子:そう言ってもらえるのがうれしくて、できた機能を「ここが難しかったんですけど、こうやって解決したんですよ!」とか「ここは依頼されてませんでしたが、僕は便利だと思うので使ってみてください!」みたいに、これでもかってくらい説明するんです(笑)。
ーーリーダーとして活動することも多いそうですが、その立場からのやりがいを感じることもありますか?
金子:皆をマネジメントする、リードする立場としてやりがいを感じるのは、一緒に仕事をしたエンジニアがそのタスクを通じて成長したことがわかったときです。
前よりこちらの話を理解しながら聞いてくれるようになった、スケジュール報告をしてくれるようになった、ドキュメントを書くのが上手になった、的確なコメントを入れて自分なりに工夫しているのがわかる、といったような、小さくても大切な一歩を踏み込んだ様子が見られると「一緒に仕事してよかったな」と感じます。
「本質は何か」を常に問い合える仲間たちとの協働
ーー開発チームにはベトナム人エンジニアも多いですよね。
金子:現在、日本にある本社には、日本人が4人とベトナム人が6人。ベトナム支社には約15人のエンジニアがいます。
ーーコミュニケーションは英語?
青柳:はい。なんなら日本人のほうが少数派のチームなので。ツールとしての英語にはみんな慣れたかな。
ーー英語を駆使する上で気をつけていることはありますか?
青柳:私自身はWebの自動翻訳を安易に使わないように心がけています。「書いた英文を英日の自動翻訳にかけて、意図に近い日本語に戻るならある程度の水準の英語が書けていたと分かる」というのはよく知られたテクニックですが、機密事項を含む内容には使えないと考えているからです。自動翻訳を使う前に機密事項をマスクするというひと工夫を加えて使っています。
ーーベトナム人リーダー陣はどんな人たちですか?
金子:ベトナム支社長・Chau(チャオ)さんは高いマネジメント能力と熱量を持ってメンバーを引っ張っていく人です。本社のリーダー・Hoang(ホアン)さんは「これ作って」とお願いすると、「それってどうなの?」と本質を問いかけ、ビジネス側が次に判断できるような材料を返してくれるような、いい意味での反論をくれるので助かっています。
青柳:自分のタスクに何か懸念があったら意見を出してくれる人は、言われた通りに依頼をこなすだけの人とは一段違いますね。
東京本社のベトナム人エンジニアのリーダー・Hoang(右)は、よく議論する仲間
ーー結局、エンジニアのお仕事でも大切なのはコミュニケーション力なんですね。
金子:そう、人柄とコミュニケーションも大事。他の職種でも変わらないです。
青柳:エンジニアは、人だけでなくたまたまコンピュータともコミュニケーションが取れるという職種なだけです。”Structure and Interpretation of Computer Programs"(邦題『計算機プログラムの構造と解釈』)というコンピュータサイエンスの教科書に、「プログラムは人間が読むものとして書かれるべきである。たまたま、それが計算機で実行できるにすぎない。」という有名な一節がありまして、それのもじりなんですけど。
特に重要な「自分の意見を持つ」大切さ
ーーどんなエンジニアに入ってきてもらいたいですか?
金子:一言でいうと「自分の意見を持って提言できる人」ですかね。
青柳:それに加えて「自分の意見の根拠を説明できる人」でもあってほしいですね。うちの会社は、大企業でよくある、仕様がかっちり決まっていて、そこから逸脱せず、順を追って開発する「ウォーターフォール型」とは違います。雑でもいいから一旦プロトタイプを作って、社内や一部のお得意様に使っていただき、フィードバックを得て改良していく「スパイラル型」の開発をしています。問題設定から手法まで手探りだらけのフィールドで開発することが大半なので、ウォーターフォール開発を仮にやりたくても、そもそも固定できる要件・仕様を策定するのが現実的じゃないんですよね。お客様や利用者の声を聞きつつ、常に自分の意見を発信することがお互いの論を比べることになり、ツールを磨く土台になるんです。
ですから私が採用面談でポートフォリオを見せてもらう時、「どんな効果を狙ってこの技術を使いましたか」「採用しなかった他の技術はどんなものがありましたか」など、背景を聞くのはその「根拠」の確認のためです。「Googleで調べたらこれが見つかったので使いました」だと、その人を正しく評価することは難しいかなと。
金子:僕が初回面談する時は「次の面談で青柳って人が出てくるけど、怖い人じゃないから安心してね。難しいことを聞かれて答えられないことがあっても、それは悪いことではなくて。技術分野はとても広く、その中であなたの強みがどこにあるのかを見極めるために質問しているので、わからなかったら素直にわからないと言っていいんですよ」とあらかじめお伝えしてます(笑)。
青柳:予告してくれてるのね(笑)。新しい技術、新しい製品が出てくる中で、世間一般の期待値はそれと連動して上がっていくので、ずっと同じようなものを作っていると相対的にどんどん魅力が下がっていってしまいます。アップデートしたり磨いたりを一緒にできるチームでいたいですね。
ーー後輩の金子さんはその点ができていた?
青柳:はい。彼のインターン時代も知っていますが、この短期間でよく伸びたよねと、成長具合に驚いています。技術が一番伸びましたが、もとから強みであるヒューマンスキルを発揮して、マネージャーやディレクターとして、この規模の会社としては期待以上に活躍してくれています。
金子:おー…珍しく素直に褒めてもらえた...!ここ、太字で載せて下さいね(笑)。
「もう一度ここで働きたい」。インターン時代の楽しさから正社員に
ーーお2人ともインターンから正社員になったんですよね?
金子:はい。もうインターンも含めると3年半も働いてるんですよね。
Faber Companyと関係があった研究室の助教授の方の紹介で、大学4年生の1月から2月末まで大学のカリキュラムとしてインターンをしました。インターンでは自然言語処理を活用したWebコンテンツ改善に取り組んだんですが、その時に会社の雰囲気がいいな~と感じたのを覚えています。
新卒ではSIerに入って受託案件の大型宅配システムの開発と保守運用に携わったんです。重苦しい静寂に包まれたオフィスで4GBのパソコンを使って固まりまくるExcelを使ったり、COBOLで書かれた10年もののシステムを夜勤で保守管理したり...。その中で、ふとした瞬間に「高専から大学まで情報系を勉強したのに、全然知識を活かせてないな。親孝行できてるのかな」とか「ここで3年続けたとして、技術者として成長できるのかな」と不安になった時に、Faber Companyを思い出したんですよね。
転職を考えた時にインターンで上長だった取締役の副島に連絡をしたら、急な連絡にもかかわらず「おいでよ」と誘われ、その翌日にはもう、「金子君の席、できたよ」と連絡をくれて。「早!!」と驚きつつ、「心機一転、より高いレベルの技術者を目指して頑張ろう!」と思えました。
ーーどうしてまた働きたいと思ったんですか?
金子:2ヵ月間インターンの時、副島さん(取締役の副島啓一)がすごく構ってくれて、仕事が楽しかったんです。副島さんは、何かうまくいかない時も「これダメじゃん、どうにかしてよ」ではなく、「これはまだイマイチだけど、こういうのは試した?」と前に進む発言しかしないんです。
また、発想の転換点をくれるんですよ。インターンでは「サイトの記事のどこに画像を差し込むと読みやすくなるか」を自動で推測するプログラムを開発するという課題に取り組んでいたんですが、パソコンの画面で記事を眺めながら「どこに差し込むのがいいかなぁ」と悩んでると横から「それ、紙でやったほうがいいよ。印刷してみたら?」って声を掛けてくれたんです。あの頃の僕は「非効率なんじゃ?」と思ったんですが、とりあえず試してみると、一人で悩んでいた状況がグッと前に進むことがあったんですね。うまくいく勘所と言いますか、困っているときのアドバイスが適切で、これは今でも見習いたいなと思っています。
そういう経験もあって、優しい人が多いなぁという印象を持っていました。でも、優しいだけではなくて、社員の一人ひとりが何かしらで突出したスキルだったり、いい意味でのクセを持っているんですね。他社に入ってたら、きっと煙たがられるだろうなぁって人もいて(笑)。でもうちは、その尖ったスキルを活かしつつも、いい感じに1つのものをつくれる会社だなぁと。明るいし、いいプレッシャーや刺激を受けつつも、居心地がいい。
青柳:挑戦が前向きに受け止められるという風土は一貫してますよね。
ーー青柳さんはいつインターンしていたのですか?
青柳:学部3年生のころから働いてます。15年4月に大学院に入るまでは、週1、夕方に来る少なめな頻度で、それでも顔を出し続けてました。出社しにくくて「任されたプロトタイプを2時間だけちょっといじってみる」といったリモート・短時間の開発をしていた時期もあります。16年の夏、大学院飽きて休学した時に、副島さんに「仕事下さい」と言ったら、そのまま「おいでよ」と。
インターン時代、ゼロからミエルカのβ版を開発する時に携わっていたのですが、私がいなかった時期に商品化されていて、「こんなに早くローンチしたんだ…!」とびっくりしました。
ーーインターンから入るの、おすすめですか?
金子:そうですね。当社では、正社員、業務委託、週4社員、インターン等、契約形態にとらわれずに開発に携われるのがいいところかなと。インターンでもある程度裁量をもって仕事ができるので、実際に入社した時と同じような感覚で取り組めるかなと思っています。
目指すは「エンジニアが楽しく遊びに来られるカフェテリア」
ーー金子さんの、当社でやりたいことは何ですか?
金子:僕としては、当社を「学生も社会人も、エンジニアが楽しく遊びに来られるカフェのような場所」にしたいんですよね。ここに来れば同じ夢やモチベーションを持った誰かがいつもいて、各々が楽しいことをしていたらなぜかお金が稼げるような、エンジニアにとって住心地がいい場所を作りたいです。エンジニアが楽しみながら活躍したことで生まれた利益を、会社は設備や報酬に還元して、そうするとさらにたくさんのエンジニアが集まって...。そういう「楽しい」を起点に、事業を巻き込んだ好循環が生まれるような環境を作れたらいいなぁと思っています。たまに遊びに行くと新商品や新機能の開発で盛り上がれるような場にしたいんです。
ーー青柳さんが当社でやりたいことは?
青柳:フリーハンドで私が面白いと思える何かを作りたいと、3期前から目標に入れています。その何かはまだ形になっていないけれど、なにより「私が自分で作ってまで使いたい何か便利なもの」であって、うまくいけば、私以外の人たちにとっても役に立つはずです。抽象的すぎる話になってしまってすみませんが。
それから、先ほどお話ししたように他のエンジニアたちには相談・回答・指摘といった言葉の形で手助けしていることが多いですが、私の作るものによって「こういう技術でこういう便利なものを作れるんだよ」という「論よりコード」を見せていきたいですね。
新しい挑戦は常に歓迎されるのがうちの会社の良さ。構想を練って提案していきたいです。