LCL Engineers' Blog

バス比較なび・格安移動・バスとりっぷを運営する LCLの開発者ブログ

フロントエンドチームの2021年振り返り

この記事はLCL Advent Calendar 2021 - 9日目です。

qiita.com

フロントエンドエンジニアの亀田です。

アドベントカレンダーなのにここ数日ブログ更新がなかったのは予定通りで、決して自分が止めていたわけではありません。

今年も気がつけば12月なので、毎年恒例のフロントエンドチームとしての振り返りをしようと思います。

フロントエンドチームの現状

現状、フロントエンドチームのメンバーは3人で、2020年初めからメンバーに変更はなく、気が付けば現状のメンバーで1年半ほどの日々が経ちました。

今では良い意味で変に気を遣うことなく、割とカジュアルに相談できる関係性かなと思います。

今ではと書きましたが、思い返すと意外と最初からそんな関係性だった気もします。

メンバーがお互いの考え方や意見を尊重できていると思うので、誰から見ても悪くない雰囲気のチームなんじゃないかなと思ってます。

2021年の振り返り

それでは本題、2021年のフロントエンドチームの振り返りをしていきます。

代表的なトピックに限定していくつかまとめてみます。

格安移動 - 海外航空券比較サービスのリリース

今年7月に、既存サービスの格安移動から派生する形で、海外航空券比較サービスをリリースしました。

air.idou.me

開発に関してでいうと、事前の要件整理から技術選定等、2020年の10月頃から徐々に始めたので、約10ヶ月に長期に渡る、間違いなく2021年で最大のプロジェクトでした。

フロントエンドチームにとっても、今のチーム体制になってからも最も大きなプロジェクトで、自分はメイン担当としてプロジェクトに関わりましたが、開発の準備・計画から始まり、多くの課題や苦労がありました。

なにはともあれ無事リリースできたことが何より良かったですし、過ぎてみれば、大きな経験になったと感じています。

技術的にも今後を見据えてNext.jsを採用する等、チームにとっても新たな挑戦をしました。Next.jsに関しては次項で記載するのでここでは割愛します。

海外航空券のサービス自体は、まだリリースして日が浅いことや、社会情勢的にも海外旅行者も少ないので、利用ユーザーとしてはまだまだ少なく、これからに期待のサービスになります。

今後、安心して海外を行き来できるようになったときに、少しでも利用ユーザーにとって有益なサービスになるように、今しかできないこと、やるべきことが山積みなので、サービスをより良いものに成長させていけるようにしていければと思ってます。

Next.jsの採用

上述の通り、海外航空券のサービスではNext.jsを採用しました。LCLでのサービスで本格的に採用したのは今回が初めてでした。

今や、Next.jsは特にフロントエンド界隈では知らない人がいないくらいの人気のフレームワークかと思います。

実際に使ってみても、開発体験がとても良く、従来の他のフレームワークに比べても、ストレスが少なく開発することができました。

一方で、Next.jsを初めて使うこともあり、フレームワーク独自の仕様を理解し、実際に使いこなすのに苦労したポイントも多かったです。

例えば、Next.jsで代表的な機能の一つである、SSR / SSGをページによってフレキシブルに実装できる、getStaticProps / getServerSideProps は、とても強力で比較的簡単に実装できる仕様にはなっているものの、サービスの仕様等、諸々を考慮して使おうとしたときに、かなり設計に苦労した印象がありました。

他にも色々ありますが、記事の本筋からそれるので多くは書きませんが、Next.jsに限らず、新たな技術を採用するときは、未知との遭遇があり、想像以上に大変であることを実感しましたが、同時に良い経験にもなりました。

今回のNext.jsの採用は、今後他サービスに展開していくための、将来を見据えてある種、実験的な意味合いも込めた技術選定だったので、結果的には狙い通り多くの知見がたまりました。今では他サービスへの展開もイメージできるようになったので、開発観点で見ても、大きな成果があったと感じています。

サービス別のチーム体制

一般的な形ではあると思いますが、LCLでは、ディレクター、デザイナー、エンジニア等、職種別に部署が分かれています。

サービスには当然、様々な職種のメンバーも関わることになりますが、これまでサービス単位での明確なチーム分けがありませんでした。

また、これまでは比較的ディレクターが中心に考えた企画・改善案ありきで、エンジニアが実装する流れになっていました。自社サービスの開発をしている企業では、今どきだと少し珍しい(?)のかもしれません。

今後、職種問わず、よりサービスにコミットできるように、今年の後半から、各サービス単位で職種をミックスしたチーム体制を整えることになりました。

まだ始めたばかりの体制で、チーム作り含めてこれから色々課題等も出てくると思いますが、各サービスのメンバーが協力して、サービスをより良いものに成長させられる体制が整ったように感じます。

自分自身は格安移動の担当ですが、エンジニアからの要望や意見を、ディレクター・デザイナーに共有したり、逆に他職種のメンバーの意見を聞く機会が増えました。

個人的には、何より特定のサービスにコミットできるようになったことが、モチベーション的にも良い効果があるように感じます。

2022年に向けて

フロントエンドチームとしても、各メンバーがサービスにコミットすることも重要ですが、これまで以上に連携を強固にして、チームとしてレベルアップしていく必要があると感じています。

あえてひとつだけ挙げるとしたら、LCLでのメインサービスであるバス比較なびは、歴史も長く、大きな技術負債を抱えています。技術開発部としてもフロントエンドチームとしても、長年の課題としてバス比較なびのリファクタリングをする必要性を強く感じています。

とても難しく大きな課題ですが、来年はこの長年の課題の突破口を開けるようにチーム全体で取り組んでいければと思います。

会社全体としても、ユーザーにより良いサービスを提供していくために、様々なプランニングがあります。

スピード感を持ってサービスを改善していくために、フロントエンドチームでも新しい仲間を募集しています。

もし興味がある方は、まずはカジュアルに会話する機会を設けられますので、ぜひぜひ気軽な気持ちでご連絡ください。

www.lclco.com

それでは、だいぶ早いですが良いお年を。来年もがんばります。