Faber Company 開発ブログ

ファベルカンパニーと読みます。

ある新卒エンジニアの一年間(前編)

はじめまして。Faber Company 開発運用チームでエンジニアをしている菅原です。

2023年4月に入社し、無事に一年目を乗り越えたところで、入社から一年間を前後編で振り返ってみたいと思います。

Faber Company について

株式会社Faber Company(ファベルカンパニー)は、「辺境の知からマーケティング・ゼロを実現する」を使命として、企業のマーケティング生産性の向上を目指しています。

蓄積したマーケティングの知見を現場につなげるため、さまざまなサービスを展開しています。この記事では、コンテンツSEOを通して、企業メディアの成長を支援するオンラインツール「ミエルカSEO」を取り上げます。

ミエルカSEOの開発は、日本の Faber Company とベトナムにある子会社 Faber Vietnam Co. Ltd とで行われています。Faber Company で働くエンジニアは、ベトナムのメンバーと直接英語でやりとりしながらプロダクトの開発・運用を行っています。


内定~インターンシップ

Faber Company からは 2021年2月末ごろに、2023年4月入社で内定をいただきました。入社までの間、2022年6月頃からインターンシップとして勤務をはじめました。

ミエルカSEO 管理画面の改善

インターンシップ開始後、一番最初の仕事になったのがミエルカSEOの社内向け管理画面の改善です。この管理画面は社内のカスタマーサポートチーム(以下、CSサポート)が使うもので、アカウント発行や契約更新などの機能があります。

アカウント一覧画面の高速化

ミエルカSEOには、他サービス由来のものも含めて、累計数万オーダーのアカウントが登録されています。 開発当初、アカウント件数がここまで増えることは想定していなかったようで、アカウント一覧の表示に15分以上(!)の時間がかかっていました。

調査してみたところ、データベースから全件分の情報をダウンロードしたあと、フロントエンドで検索をかける仕組みになっており、データ転送と巨大な JSON のパースに大抵の時間を使っていることがわかりました。

アカウント情報を返却するエンドポイントにページング機能を導入し、表示するのに必要な情報だけを転送するようにすることで、読み込み時間を2~3秒に短縮し、大幅な高速化に成功しました。

業務を担当するCSサポートのメンバーからは、「体感で40倍以上くらい早くなった気がします!」とフィードバックをいただきました。

Slack メッセージのスクリーンショット

契約更新作業の簡略化

ミエルカSEOの契約は基本的に1年更新です。契約更新のタイミングでCSサポートチームが手動で管理画面を操作し、アカウント情報を更新することになっていました。 ところがこの情報更新画面では、契約期間が1ヶ月単位でしか移動できず、そのうえキーボードからの入力もできなかったため、1年の更新のために12回ボタンを押す必要がありました。

この問題を解消するため、jQuery プラグインで実現されていた契約期間の入力を Web 標準の input[type="date"] に置き換え、さらに半年・1年後の日付を自動計算するボタンを追加しました。

コード品質指標の計測

管理画面の改善を行っていく中で、コードのリファクタリングが十分に行われておらず、負債の蓄積によって変更速度が落ちてしまっていることに気がつきました。

社内でコードの品質を追跡する仕組みがなく、開発チームのエンジニアも現在地を把握できなくなっているのが大きな原因となっており、リファクタリングの必要性を経営陣に説明できない状況でした。

そこで、まずは開発チームが自発的に課題に対処できるようにするため、指標の計測を始めました。

初めに CSpell を使ってコード中のスペルミスを探したところ、4万件以上がひっかかり、それからコードの修正と辞書の整備を全員で少しずつ続けています。 現在は9000件を切るところまで改善しています。


入社

2023年4月に正社員として入社した後は、引き続き社内画面の改善を行う傍ら、CSサポートからの不具合報告に対応する業務に入りました。 おもにサポート依頼の翻訳と初期調査を行って、スムーズにベトナムメンバーに引き継げるようにしていました。詳しくは後編でとりあげます。

入社後も画面の高速化や、セキュリティ関係のアップデートなど、メイン機能以外で塩漬けにされてきた技術課題の解消に取り組んでいました。

「××を作りました!」という目立つリリースを打てるわけではありませんが、10年弱にわたって蓄積されてきた課題をソースコードを紐解きながら解消していくのは、なかなか楽しい仕事です。

そしてスクラム

2023年6月頃、メインの機能開発を行っているスクラムチームに合流し、7月からスクラムマスターになりました。

別の会社ですでにスクラム開発を経験しており、スクラムフレームワーク自体にはなじみがありましたが、ベトナムのメンバーと一緒にスクラムで開発していくのには独特の難しさがあります(今も毎日のように悩みながら進んでいます)。

この話題だけでひと記事書けるくらいのボリュームがあるので、また別の機会に公開したいと思います。

ベトナム出張

初年度は9月と12月、2度のベトナム出張がありました。一度目は Faber Vietnam の社員旅行に、二度目は実際の開発業務に参加しました。

スクラムの状況を直接見たり、動かなくなったCIをその場で協力して直したり、日本からでは見えていなかった開発現場の状況が見られたのは大きな収穫になりました。

社員旅行では海水浴もできました🙂


ふりかえって

学生の頃の個人開発では、運用視点を培うことはなかなかできません。

現場からあがってくるリアルな要望に応えていくかたわら、ソースコードの品質を見ていくことで、長期間にわたってプロダクトを運用していくと何が起こるのかを俯瞰できる経験になりました。

後編では、こうして見つかってきた課題にどうやって取り組んでいくか、重ねてきた試行錯誤をお伝えできればと思います。

Faber Company は一緒に働く仲間を募集しています

株式会社Faber Company にご興味のある方は、採用サイトをご覧ください!

www.fabercompany.co.jp