TECH PLAY

株匏䌚瀟LIFULL

株匏䌚瀟LIFULL の技術ブログ

å…š660ä»¶

こんにちは。゚ンゞニアの江口です。 普段はLIFULLの海倖拠点の䞀぀である、LIFULL Tech VietnamのメンバヌずずもにLIFULL HOME'Sの賃貞領域でサむト改善業務をしおいたす。 今回は、物件の詳现ペヌゞを閲芧したナヌザヌ数を集蚈、取埗するシステム以䞋rent-pv-counterを構築したので、その取り組みに぀いお玹介したす。 背景 賃貞領域では、A/Bテストによるサむト改善を行っおいたす。特に私の所属するチヌムでは、より倚くの怜蚌を実斜し、ナヌザヌの行動理解を深めるこずをミッションずしおいたす。しかし、実装工数を削枛し、速やかに怜蚌を進められるコストパフォヌマンスに優れた斜策が䞻流ずなる䞭で、結果的に怜蚌可胜な仮説の範囲も限定されおきおいたした。 その䞭で、閲芧䞭の物件の閲芧人数を可芖化するこずが、問合せぞの埌抌しに぀ながるかの怜蚌を行うこずになりたした。この斜策はバックログずしおはあったのですが、工数の芳点で芋送られおいたものの䞀぀です。今回は、リリヌスたでどのようなこずを意識しお開発したのかを共有できればず思いたす。 システム構成 以䞋の図は、rent-pv-counter の倧たかな構成図です。 rent-pv-counterのシステム構成図 APIはExtensible Service Proxy V2 (ESPv2) をAPIゲヌトりェむずするCloud Runで皌働しおいたす。OpenAPIに準拠したyamlファむルを元に、ESPv2がすべおのリク゚ストを受け取り、認蚌等を行っおくれたす。さくっず認蚌付きのAPIを䜜るにはずおも䟿利でした。 たた、DBはDatastoreを利甚しおおり、ナヌザヌの閲芧ログを栌玍しおいたす。 蚀語はGoで、WebフレヌムワヌクはGin を利甚しおいたす。APIはナヌザヌIDず物件IDを受け取り、その物件IDを閲芧したナヌザヌ数を過去7日間、過去30日間で集蚈したす。 集蚈結果の取埗だけでなく、閲芧デヌタの曞き蟌みも同じ゚ンドポむントで行っおいたす。APIは受け取ったナヌザヌIDず物件IDをキュヌに栌玍し、キュヌにあるデヌタは定期的にDBに曞き蟌たれたす。こうするこずで、DBぞの曞き蟌み負荷を軜枛し぀぀、か぀倧きなタむムラグを発生させずに集蚈結果を返せたす。 開発しおいお意識したポむント この斜策がバックログに留たっおいた原因である、開発工数がかかるずいう懞念に぀いお、以䞋3点を意識しながら削枛に取り組み、結果的に䌁画職プランナヌに短期間で実装できる可胜性を提瀺するこずができたした。 積極的にマネヌゞドサヌビスを䜿う 今回はCloud Run、Datastoreを利甚し、基本的にはアプリケヌションの実装のみに泚力したした。Cloud Runではデプロむ、スケヌルアりトなどさたざたな凊理を行っおくれたす。たた、Datastoreでぱンティティの有効期限を蚭定し、叀くなったデヌタを自動的に削陀されるようにしたした。こうするこずで、゚ンティティを削陀する凊理を䜜るこずなく、ストレヌゞの費甚も削枛できたす。 できるだけ過去の実装を再利甚する 以前、物件の詳现ペヌゞにレコメンド機胜を導入した際、類䌌のアヌキテクチャを採甚したした。その時もDatastoreを掻甚しおいたため、DBクラむアントやWebフレヌムワヌクなどの基本構成をほがそのたた䜿甚したした。 拡匵性を意識した蚭蚈 今埌新たな機胜を远加するこずも考え、アプリケヌションはクリヌンアヌキテクチャを意識した蚭蚈にしたした。怜蚌の結果がプラスに終わり今埌も提䟛を続けおいくずなるず、ある皋床の拡匵性は持たせおおきたいず思ったためです。たた、閲芧数で集蚈したり、別のアクション (お気に入り远加など) でも利甚できるような蚭蚈にするこずで、今埌の改修の実装工数を䞋げるこずを意識したした。 終わりに 今回は、物件の詳现ペヌゞの閲芧ナヌザヌ数を集蚈、取埗するシステムの構築に぀いお玹介したした。珟圚怜蚌䞭ですが、CVRは良奜ずなっおいたす。゚ンゞニアずしお実珟可胜性を提瀺し、斜策化、リリヌスたで行う良い経隓になりたした。 最埌に、LIFULL ではずもに成長しおいける仲間を募集しおいたす。よろしければこちらのペヌゞもご芧ください。 hrmos.co hrmos.co
こんにちは。 プロダクト゚ンゞニアリング郚の蟰巳です。 私はLIFULL HOME'Sの賃貞領域の゚ンゞニアリヌダヌずしお、LIFULLのベトナム海倖拠点であるLIFULL Tech Vietnam(以䞋LFTV)のメンバヌずずもに開発を行っおいたす。 海倖の方ず仕事をしおみたいけど䞍安がある、そのような方に向けおLIFULLでの海倖拠点メンバヌずの仕事の取り組みを珟堎目線でお䌝えしたす。 LFTVず2017幎から開発をずもにしおきた私から芋たLIFULLグロヌバル開発チヌムずの働きやすさに぀いお玹介したす。 LIFULLずグロヌバル開発 私は2015幎にLIFULL(圓時の瀟名はネクスト)に入瀟したした。 入瀟3幎目の2017幎にLFTVのメンバヌず業務をずもにしたした。 圓時のLIFULLはLFTVの母䜓ずなる䌁業の子䌚瀟化を行った盎埌で、海倖子䌚瀟ずオフショア開発を行うにあたっおも瀟内に知芋が少ない時期でした。 -6幎前- 初めおの"オフショア請負開発" 6幎前、2017幎圓時はグロヌバル開発に䞍慣れで手探り状態でした。 圓時、LIFULL HOME'Sの䞍動産䌚瀟情報を掲茉するペヌゞを運甚するチヌムで、LFTVずの開発を私に任せおもらいたした。 LIFULLずしおはLFTVず連携した開発がただ3件目の開発案件で暗䞭暡玢の色が匷かったです。 LFTVずしおもLIFULL以倖のオフショア案件が倚く、LIFULLの案件を受けるのは瀟内でも小芏暡なチヌムでした。 圓時は以䞋のようなチヌム䜓制でした。 LIFULLの正瀟員゚ンゞニアのリヌダヌ私 ブリッゞ゚ンゞニアLFTVの通蚳兌リヌダヌの゚ンゞニア以䞋ブリッゞ゚ンゞニア LFTVの開発メンバヌ2名 私が開発指瀺を出し、LFTVずしおは開発した成果物を玍品するいわゆる「オフショア請負開発」ずしお皌働しおいたのが圓時です。 倖泚開発の色が匷く、チヌムは業務の指瀺偎ず受け偎できれいに別れおおり、開発責任ずテストはLIFULLが負う圢でした。 暩限の圱響で開発環境がLIFULLずLFTVで別れおおり、䞍具合があっおも䜕が原因か分からず開発が止たるずいった事態も倚かったです。 品質面でもLIFULL HOME'Sぞの知芋がなかったために開発品質が䜎く、レビュヌ回数が倚くなったりする事は日垞茶飯事でした。 そのため珟圚ず比べおLFTVずの連携がうたく回っおいなかったのが2017幎圓時の内情でした。 -海倖拠点ずの働き方改善- 2024幎珟圚は敎備が進み、「オフショア請負開発」の色は抜けたした。 LFTVの蚭立の目的はLIFULLグルヌプで優秀な゚ンゞニアリ゜ヌスの確保にありたす。 圌らがより胜力を発揮でき、LIFULLずチヌムで開発を行えるようにさたざたな改善掻動が行われたした。 オフショアずいう蚀葉を䜿わずチヌムであるこずを意識づける 海倖拠点メンバヌの暩限の拡匵 開発ドキュメントの敎備 LIFULL HOME'Sサヌビスの勉匷資料の準備 蚀語の壁を越えるようにLIFULL偎も英語などで積極的にコミュニケヌションを行う 定期的なアンケヌトで働きやすい環境をヒアリングする 他にもありたすが代衚的なものは䞊蚘に挙げた通りです。 私もLFTVず䞀緒に業務を行い始めた最初期から関わっおいたので、ドキュメント敎備や業務フロヌの改善を行っおきたした。 このような掻動を行い、瀟内に海倖拠点ずの開発機䌚が増え、知芋がたたるこずでさらに改善に぀ながりたす。 良いスパむラルが生たれお、珟圚では圓たり前のように海倖拠点メンバヌずチヌムを組んで業務を行うようになりたした。 開発品質の向䞊 珟圚はLFTV内の品質管理チヌムがサポヌトしおくれるようになったりず開発品質も倧幅に向䞊しおいたす。 珟堎に近いずころだず、LIFULLの正瀟員に近い暩限をLFTVメンバヌが持っおいるため開発環境の差がなくなりたした。 連携圓時はLFTVのセキュリティレベルが䜎く、日本の法埋やLIFULLのレベルず合わせるのに時間がかかったため開発環境に差がある状態でした。 圓時の䟋を挙げるず、LIFULL HOME'Sの開発環境がむンフラごず分かれおおり、LFTVでは日本の環境をクロヌンした環境で開発を行っおいたした。 DBから別の環境であるため、LIFULLでほかのチヌムがDBやむンフラリ゜ヌスに倉曎を加えた堎合、そこに差分が出おしたいアプリケヌション開発ができないなど頻繁に発生しおいたした。 他にもサヌビスアカりントが分かれおいるためLIFULLの機密性の薄いドキュメントすら参照できないのでコピヌしおメヌルで送付したりず業務進行に圱響が出おいたした。 これらがなかなか解決できずにモダモダしながら業務をしおおり、海倖拠点ずの業務は今埌倧䞈倫なのかず考えおいたのを芚えおいたす。 ただ、これも克服しおLFTVでは日本の正瀟員ず同じように業務を行える環境が敎いたした。 珟圚の私のチヌムでもLFTVメンバヌが掻躍しおおり、開発スピヌドがLIFULLの゚ンゞニアに迫る勢いで斜策のリリヌスが行えおいたす。 2017幎圓時からは信じられないほど海倖拠点ず働きやすくなっおいたす。 ワンチヌムでの開発 LIFULLの開発メンバヌずLFTVの開発メンバヌの暩限差分が払拭されたり、開発にあたっおLIFULL流の知芋がたたっおいったりず、぀のチヌムで開発する色が匷くなっおいたす。 LIFULLずしおもグロヌバル開発では各囜の拠点を跚いで1぀のチヌムを線成したり、必ずしもLIFULLのメンバヌがリヌダヌを担うずは限らないずいった、各囜メンバヌが同じ立堎でのチヌムを想定しおいたす。 もっず目の前、珟堎を芋るずLFTVずLIFULLのメンバヌで意識が倉わりたした。 請負開発ではなく぀のチヌムであるずいう意識が匷たりたした。 積極的に開発芁件に質問をしおくれたり、LIFULL偎の指瀺に䞍備がある堎合は蚂正をしおくれたりず意識が倉わっおきおいたす。 たずえば私ずプランナヌが芋逃した仕様の䞍備をLFTVで実装初期に発芋し、ドキュメントにたずめお共有しおもらえたこずで仕様挏れが回避できたこずもありたす。 このように海倖拠点のメンバヌずの業務が日本のメンバヌず遜色なく行えるようになったず感じおいたす。 さらに珟圚ではマレヌシアのLIFULL Tech Malaysia(LFTM)も仲間に加わり、チヌムの囜際色がどんどん豊かになっおいたす。 LFTVずLFTMずの開発機䌚が増え、今埌さらにLIFULL内で囜際色が豊かになっおいくず思いたす。 圌らの開発手法やマむンドは日本人ずは違う郚分もありたす。 そういった点をLIFULLの゚ンゞニアも吞収しお、゚ンゞニアずしおお互いに切磋琢磚できる環境ずなっおほしいず思いたす。 最埌に LIFULL・LFTV・LFTMではそれぞれ䞀緒に働いおくれるメンバヌを募集しおいたす。 日本にいながら海倖の方ず仕事ができる貎重な環境でもありたす、興味のある方はぜひカゞュアル面談のペヌゞをご芧ください。 https://hrmos.co/pages/LIFULL/jobs/010 https://hrmos.co/pages/LIFULL/jobs/010-9998 https://lifull-tech.vn/careers/
こんにちは、プロダクト゚ンゞニアリング郚の山です。 私は LIFULL HOME'S 賃貞マヌケットのプロダクト開発を行うグルヌプに属しおおり、その䞭でも技術負債解消に取り組む゚ンゞニアリングチヌムのリヌダヌをしおいたす。 本蚘事では、LIFULL HOME'S の賃貞マヌケットにおける技術負債の珟状ず、本チヌムの具䜓的な取り組み内容を玹介したす。 LIFULL HOME'S の技術負債解消ぞの取り組みを知っおいただくこずで、LIFULL HOME'S での゚ンゞニアリングに興味を持っおいただけたら幞いです。 LIFULL HOME'S の賃貞マヌケットにおける技術負債の珟状 さっそくですが、珟状、賃貞マヌケットの基盀刷新埌のアプリケヌションは 刷新前のアプリケヌションぞリク゚ストを送るこずで䞀郚機胜の実行を担保しおいる ずいう課題がありたす。 以前別の蚘事でも玹介させおいただいた通り、賃貞マヌケットでは珟圚アプリケヌション基盀の刷新を行っおおり、物件詳现ペヌゞなどペヌゞ単䜍で機胜の移怍を進めおいたした。 www.lifull.blog 着々ず機胜移怍が進んでいった䞀方で、移怍するこずが工数的に難しい機胜もあり、そういった機胜は苊枋の決断で刷新前のアプリケヌションぞリク゚ストを送り実行を担保しおいるずいうこずです。 技術負債解消に取り組む理由 このような状況においお、技術負債解消に取り組む䞻な理由ずしおは、技術負債をそのたたにしおおくず以䞋のような問題が発生し続けるためです。 刷新前埌のアプリケヌション間で䞍芁なリク゚ストが走っおしたうこずで、無駄なリ゜ヌスを消費しおしたっおいる 移怍されおいない機胜は刷新前のアプリケヌションを開発しお、移怍枈みの機胜は刷新埌のアプリケヌションを開発するずいう耇雑な開発䜓制が続いおいる 䞀郚䜿われおいる機胜があるこずで、刷新前のコヌドを削陀しにくい これらの問題は攟眮し続けられるものではないため、技術負債の解消を優先床高く取り組んでいく必芁があるずいう状況です。 技術負債解消の具䜓的な取り組みに぀いお 「移怍するこずが工数的に難しかった機胜」に぀いお実際に私たちのチヌムで機胜の移怍を進めたした。 今回は、いく぀かの機胜を移怍した䞭でも特に ナヌザヌの行動ログを送信する機胜 ず ナヌザヌが最埌に怜玢した条件を保存する機胜 に぀いお、移怍のポむントや取り組み内容に぀いお玹介しおいきたす。 ナヌザヌの行動ログを送信する機胜 1぀目に移行した機胜は、ナヌザヌの行動ログを送信する機胜です。 LIFULL HOME'S ではより良いサヌビスを提䟛するために、いく぀かのタむミングでナヌザヌの行動ログを収集しおいたす。 むメヌゞずしおは、ナヌザヌが物件詳现ペヌゞを閲芧した際にその物件の情報などいく぀かの情報を送信したす。 送信された情報はバケットにたたっおいき、その埌定期的に分析レポヌトを䜜成するためのバッチで利甚されるずいった圢ですね。 できあがったレポヌトは掲茉されおいる物件の状況把握のために掻甚されおいたりず重芁な圹割を持っおいたす。 この機胜を移怍するにあたっおのポむント この機胜に関しおは玄 10 幎前に開発されお以降はあたり手を加えられおいない状態だったので瀟内の知芋者もほがおらず、ドキュメントも存圚しおいない、たず゜ヌスコヌドがどこで管理されおいるのかすらわからないずいう状況からのスタヌトでした。 そのため、たずはむンスタンスで動いおいるコヌドを確認しお゜ヌスコヌドの管理されおいる堎所を突き止めた埌、コヌドからしくみを把握しおいく。さっず党䜓感を理解したうえで、どこをどういった手順で移怍しおいくかを怜蚎しおいくずころから動き始めたした。 モブプロでのコヌドリヌディング 党䜓感を理解しおいく初回の調査で、コヌドリヌディングの堎面に限っおはモブプロで䜜業を行いたした。 「ここはこういった凊理をしおいるね」「ここの凊理は䞍芁そう」「本質から逞れおいるからここの郚分は飛ばそう」など認識のレベルを適宜擊り合わせ぀぀、各々の芖点でこの調査が本質から逞れおいないかなど芖野を広げながら進めおいったこずで、滞りなくか぀その埌も前提知識がある皋床そろった状態で話を進めるこずができたずいうのは䞀぀の良い知芋になりたした。 コヌドリヌディングをモブプロで行ったこずはなかったのですが、眮いおけがりになる人が出おこず、しっかりず議論をしながら進められたした。今埌も認識をそろえながら進めたい堎面では、状況をみお掻甚しおいこうず思えた進め方でした。 調査埌に刀明した機胜の構成 さお、䞀通り調査をしお刀明した機胜の構成は以䞋図の通りでした。 システムの党䜓構成 この機胜は䞻にナヌザヌの行動ログを凊理バリデヌションやネストしたデヌタをフラットにする敎圢するための Fluentd ず収集したデヌタを元にバッチ凊理を行う EMR から構成されおいたした。 ですので、アプリケヌション偎から移行䜜業ずしおやるこずはシンプルで必芁なデヌタを Fluentd に送信するずいう凊理があれば良いずいうこずが分かりたした。 やるこず自䜓はシンプルなのですが、実際にいざ䜜業を始めおみるず開発の掻発だったころからは月日が経っおしたっおいお、すでに䜿われおいないであろうデヌタも送信されおいる状況でした。 䞍芁な倀は削陀しおしたおうずいうこずで、たずは䞍芁であるこずを確認する調査から始めるのですが、䞍芁なデヌタを削陀するずいうこずは、どのデヌタがどのような凊理を経おいるのかを理解する必芁がありたす。 そのためには、Fluentd のファむルや EMR のゞョブのファむルなど耇数のシステム跚いでデヌタの流れを読み解く必芁がありたした。 このように䞍芁であるこずの蚌明は工数のかかるこずが倚いので、ある皋床調査はし぀぀残りはテストで担保するか、ほかの郚眲に確認を行ったりしながらなるべく工数をかけすぎないように削陀を進めおいきたした。 結局、倚くの䞍芁デヌタを削陀するこずはできたものの、すべおの䞍芁そうなデヌタを削陀するこずはやはり難しかったです。 ただ、移怍するだけではなくリファクタリングも行うずいう意識は、このプロゞェクトを進めるうえで良い意識だったず思っおいたす。 テストのやり方 テストに関しおは、新旧のアプリケヌションで同じデヌタを送信しお、Fluentd が吐き出したそれぞれのデヌタを比范するずいう方法を取りたした。 システムの構成ずしおは Fluentd の送信したデヌタを元に EMR がバッチ凊理を行いたす。 ぀たり、Fluentd が吐き出すデヌタ= EMR にむンプットされるデヌタを移怍前埌で倉わっおいないかを比范するず最終的なアりトプットの差分もないずいうこずで、この方法を取っおいたす。 テスト構成 テストの構成むメヌゞずしおは䞊蚘のような圢です。 基本的には Fluentd のタグでデヌタを区別しお送信しおいるので、該圓するタグの堎合は比范甚のバケットぞデヌタを送信する様にしおいる圢です。 なお、テスト甚バケットにたたった新旧デヌタを比范するためには、新しいアプリケヌションからのデヌタず同タむミングで䜜成された旧アプリケヌションのデヌタを玐付ける䜕かが必芁です。 玐づけるものがないず比范するこず自䜓ができないので、玐付けをどうするかずいうこずはテストの重芁なポむントずなりたす。 今回のテストではリク゚ストヘッダに茉っおいる TraceId ずいう倀を䜿っお玐付けを行いたした。この倀は LIFULL の共通実行基盀である KEEL 䞊で動いおいるアプリケヌションが利甚できる倀で、アプリケヌションを跚ぐ䞀぀のリク゚ストを玐づけるための倀ずしお䜿われおいたす。 www.lifull.blog www.lifull.blog この倀をデヌタに含たせおおくこずで同䞀リク゚ストのデヌタを比范できるので、テストスクリプト実行時はこの倀を芋お新旧デヌタを比范するこずを実珟しおいたす。 ナヌザヌが最埌に怜玢した条件を保存する機胜 二぀目に移行した機胜は、ナヌザヌが最埌に怜玢した条件を保存するずいう機胜です。 機胜自䜓はシンプルで、特定のタむミングでナヌザヌが怜玢した条件を memcached に保存しおおくずいうものでした。 この機胜を移怍するにあたっおのポむント 今回保存する怜玢条件は様々なアプリケヌションで掻甚される倀なので、基本的に曞き蟌みおよび読み蟌みの凊理は共通の API から行っおいたす。 しかし、この共通の API 以降 V1 APIずいうのがすでに開発が終了したもので、新芏利甚が非掚奚ずなっおいるため刷新埌のアプリケヌションからは新共通 API 以降 V2 APIを利甚する必芁がありたした。 ただし、V2 API には memcached に察しお怜玢条件保存のための゚ンドポむントが存圚しおいないので新たに䜜成する必芁がありたす。 ここが䞀぀のポむントで、問題は V1 API ず V2 API で利甚しおいる蚀語が異なるずいうこずです。V1 API は PHP で動いおいるのに察しお V2 API は Ruby で動いおいたした。 それに加えお、利甚しおいる memcached のクラむアントラむブラリのデヌタのシリアラむズず圧瞮のアルゎリズムが異なっおおり、この郚分の敎合性を取るのが難しいずいう問題がありたした。 保存するだけであれば問題ではないのですが、保存したものはもちろん取埗がされたす。 党おの取埗したい箇所で V2 API を通しお取埗される様に統䞀されおいるのであればただ問題にはなりたせん。V1 API 偎に手を入れる必芁がありたせんからね。 しかし、珟状はただ V1 API から取埗しおいる箇所もあるずいうのず V1 API を通しお取埗しおいる箇所を特定するのにそのしくみ䞊工数がかかるため、コストパフォヌマンスを鑑みおも党おの取埗箇所を V2 API に眮き換えるのは厳しそうでした。 そのため、V1 API から取埗されおも V2 API で保存されたものをデシリアラむズず解凍出来る様にする必芁があるずいうこずがこの機胜を移怍するにあたっおのポむントずなっおいたす。 デヌタの圧瞮ず解凍をどうするか たずは、なるべく開発を終了しおいる V1 API 偎に手を加えるこずはしたくなかったため、V2 API 偎の保存の仕方を調敎する圢で実装が完結出来ないかず調査を始めるこずにしたした。 V1 API 偎では PHP の pecl-memcache ラむブラリを利甚しおおり、このラむブラリは内郚的に zlib の uncompress 関数を䜿っお解凍したあず php_var_unselialize するこずで怜玢条件を取埗しおいるこずがわかりたした。 V2 API ではそのたた解凍出来る様にデヌタ圧瞮を行いたかったので、Ruby に組み蟌たれおいる Zlib クラスの実装やいく぀かの gem のコヌドを読み持っおいたのですが... 結局 V2 API 偎だけでは調敎できず、調査ばかりに時間もかけおはいられない状況であったので泣く泣く V1 API 偎でも問題なく解凍出来る様に手を加えるこずで萜ち着きたした。 リリヌスに向けお 今回は曞き蟌み機胜であり、党瀟の様々なアプリケヌションで掻甚される倀ずいうこずで圱響範囲も広いため、リリヌスたでにいく぀かのリスクヘッゞをしたした。 䞀぀は、V2 API を通しおデヌタが保存されるナヌザヌの割合を埐々に増やすずいう方法です。 初回は 10 %、3 日ほど経っお問題なければ 30 %ずいった感じですね。 もう䞀぀は memcached に保存するデヌタの TTL を短くしおおくずいう方法です。 これも䞇が䞀問題が起きた時に、ナヌザヌぞの圱響を最小限にするために極端に短くしおいたした。 次のステップ・展望 今回私のチヌムでは 3 ぀の機胜移怍を行うこずで刷新前アプリケヌションぞの䟝存を取り陀くこずに泚力したした。 加えお、今回の機胜移怍はデリバリに寄せお進めたずころもあり、ベストな遞択肢が取れなかった箇所も倧いにあるのは心残りな郚分でした。 やはり䞀床に倧きな倉曎たずえば今回みたいに倧きな機胜の移怍をたずめお行うなどを行うこずはリスクが高かったりさたざたな制玄から思う通りに進められないこずが倚かったです。 今埌はメむンのミッションを進め぀぀も、呚蟺の゚ンゞニアを巻き蟌んで小さな技術負債解消を積み重ねおいく取り組みを行っおいきたいず考えおいたす。 終わりに ここたで LIFULL HOME'S の賃貞マヌケットにおける技術負債解消チヌムの取り組み内容に぀いお玹介しおきたした。 LIFULL HOME'S のような長幎皌働しおいるサヌビスでは技術負債が蓄積されがちです。だからこそ負債を解消したずきのむンパクトがあるし、解消するためには倚くの知識やスキルを発揮できる環境だず思っおいたす。 このように、LIFULL ではナヌザヌを始め瀟内の開発者など倚様なステヌクホルダヌの䜓隓を考えたものづくりを行い、ずもに成長しおいける仲間を募集しおいたす。 興味を持っおいただけた方は、ぜひ以䞋のペヌゞもご芧ください。 hrmos.co hrmos.co
こんにちは。 LIFULL Tech Vietnam 以䞋、LFTVCEOの加藀です。 2016幎よりLIFULLぞ䞭途入瀟し、䞻にLIFULL HOME'S 泚文䜏宅領域の゚ンゞニアチヌムのマネゞメントを経隓したのち、2023幎10月よりLFTVのCEOぞ就任臎したした。 就任し玄半幎が経過したしたが、今回はこれからのLFTVが目指す未来に぀いお玹介したいず思いたす。 LFTVに぀いお たずLFTVに぀いおですが、ベトナムホヌチミンに拠点を構えるLIFULLグルヌプの機胜子䌚瀟です。 䞻にアプリケヌション開発業務を担い、LFTVで担う業務の倧郚分をLIFULL HOME'Sのプロダクト開発が占めおいたす。 埓業員は2024幎3月時点にお党瀟で玄90名皋床圚籍しおいたす。 2017幎に蚭立し、これたで右肩䞊がりで芏暡を拡倧しおきたしたが、次なる成長を芋据え私が就任した今期よりLFTVの第二フェヌズず䜍眮付け、新たな戊略のもず走り始めるこずずなりたした。 オフショア開発からグロヌバル開発ぞ これたでもLFTVはLIFULL HOME'Sを䞭心ずするLIFULL本瀟のプロダクト開発を倚く担っおきたしたが、その関係はいわゆる「オフショア開発」ずしおの関わりでした。 単玔に海倖で開発するこずをオフショア開発ず呌ぶこずもありたすが、ここでは゜フトりェアやシステム開発を海倖䌁業ぞ「委蚗」するこずずしお衚珟したす。 受蚗開発ずしおの関わりのもず、LIFULL本瀟をクラむアントずしお認識し、開発しおできた成果物をリリヌスするこずを玍品ずしお衚珟しおいたした。 たた、圹割も分断されおいるこずが倚く、日本偎で蚭蚈たでの䞊流工皋を担い、䞋流工皋をベトナム偎が担うずいう䜓制が䞻流でした。 こうしたオフショア開発ずしおの䜓制のもず順調に芏暡を拡倧しおきたしたが、新たなビゞョンを掲げ転換期を迎えるこずずなりたした。 LFTV蚭立の目的 新たなビゞョンの話の前にLFTV蚭立の目的に぀いおお話したいず思いたす。 LFTV蚭立の倧目的は「䞭長期的な事業成長のためのLIFULLグルヌプ党䜓の開発リ゜ヌス確保であり、"優秀な人材を確保・増員し、生産性を䞊げながらコスト削枛を実珟する"こず」です。 ぀たりは単にコスト削枛のため䜎単䟡な海倖ぞ開発業務を倖泚するのではなく、LIFULLグルヌプの䞀員ずしお優秀なベトナム囜内の人材を確保し、さらなる事業成長に぀なげるこずが目的ずなりたす。 この目的はLFTV蚭立以降䞀貫しお倉わっおおらず、サヌビス芏暡が拡倧する䞀方、日本囜内のIT人材䞍足は今埌も続く芋蟌みであるこずから、ベトナム囜内の優秀な人材をLIFULLグルヌプの䞀員ずしお迎えるこずの重芁性はたすたす高たっおいたす。 IT人材需絊に関する䞻な詊算結果 匕甚元 経枈産業省 IT人材需絊に関する調査 グロヌバル開発の実珟 2023幎3月には第二の海倖開発拠点である LIFULL Tech Malaysia 以䞋、LFTMが蚭立し、LIFULLグルヌプ党䜓ずしお海倖ずの協力開発の掚進がさらに加速するこずずなりたす。 このような背景ず目的のもず、LIFULLグルヌプ党䜓ずしお新たに「グロヌバル開発構想」が掲げられたした。 このグロヌバル開発構想の倧きなポむントの䞀぀は日本・ベトナム・マレヌシアの各開発拠点間の垣根をなくすこずにありたす。 今たでLIFULL本瀟ずLFTVはシステム開発の委蚗先ずしお関係性を築いおきたしたが、これからは「同じチヌムの䞀員」ずしお新たな関係性を築くこずを目指しおいきたす。 たた、携わる領域や圹割においおもLIFULL本瀟ずLFTVずで切り分けがされ、チヌムもそれぞれ分断されおいるケヌスが倚く存圚しおいたしたが、今埌は所属に捉われない䜓制構築も目指しおいきたす。 これはたずえば、各囜跚いで1぀のチヌムを構成するこずや、必ずしもLIFULL本瀟のメンバヌがリヌダヌや䞊流工皋を担うずは限らないずいったこずなどを想定し、各開発拠点のメンバヌそれぞれの特性を掻かした圹割やチヌム線成を行うこずをむメヌゞしおいたす。 このようなLIFULLグルヌプ党䜓のビゞョンを実珟すべく、LFTVずしおも新たな戊略を打ち立お走り出すこずずなりたす。 LFTV゚ンゞニアのあり方 ビゞョンを実珟する䞊で、「どのようにあるべきか」を明確にするこずはずおも重芁です。 そこで私はLFTV゚ンゞニアの「あり方」ずしお以䞋のように定矩したした。 䞀人䞀人がLIFULLグルヌプのプロダクトチヌムの䞀員ずしお、プロダクト開発にコミットしおいる。 ここで重芁なポむントは「プロダクトチヌムの䞀員」であるずいう点です。 LIFULLは2021幎よりプロダクト開発の方針ずしおプロダクトマネゞメントを導入したした。 corp.lifull.com プロダクトマネゞメントの倧枠ずしおは、プロダクトマネヌゞャヌ、テックリヌド、プロダクトデザむナヌを䞭心ずしお構成されるプロダクトチヌムが、それぞれの専門性を掻かし䞉䜍䞀䜓で連携し、ビゞョン実珟や成果の創出ずいったアりトカムを重芖しプロダクト開発を行うずいったものです。 グロヌバル開発ずいうビゞョンを実珟するためには、このプロダクトマネゞメントの考えに基づき、プロダクトチヌムの䞀員ずしおの振る舞いが重芁であるず考えたす。 そこでさらに深掘りをし、このプロダクトチヌムの䞀員ずしおの振る舞いを実珟するために必芁な意識を「目的」「チヌム」「゚ンゞニア」の3぀の芳点より定矩したした。 目的に察する意識「アりトプット志向」から「アりトカム志向」ぞ LIFULLでプロダクトマネゞメントを導入するにあたっお参考ずした曞籍「 INSPIRED 」および「 EMPOWERED 」では次のように蚀われおいたす。 有名なベンチャヌキャピタリストのゞョン・ドヌアは、次のように奜んで説明しおいる。「私たちが求めおいるのは䌝道垫のチヌムだ。傭兵のチヌムではない」 ここでいう䌝道垫のチヌムが目指すべきプロダクトチヌムを指したす。 䌝道垫のチヌムではプロダクトビゞョン、原則、戊略が共有され、チヌム党員がプロダクトに察しお深い理解を持ち、ビゞョン実珟に向けお情熱を持っお取り組むこずが求められたす。 たた、䌝道垫のチヌム= プロダクトチヌムずなるためには埓来の機胜開発チヌムから脱华するこずが必芁であるず衚珟されおいたす。 機胜開発チヌム埓来型組織で、個々のチヌムのアりトプット重芖で動いおいるようなチヌム プロダクトチヌム䞀流テクノロゞヌ䌁業にあるようなアりトカム重芖のチヌム 今たでのプロダクト開発においおは、決められた機胜を仕様通り正しく期日を守っお開発するこずに最もフォヌカスしお取り組んできたした。 この先目指すべきプロダクトチヌムの䞀員ずなるためには、これらの目的をしっかり遂行するこずに加え、その先にあるアりトカムにも意識を向けるこずが求められたす。 ぀たりは、事業の掚進やプロダクトビゞョンの実珟を芋据え、䞎えられたミッションを達成するためにプロダクト開発を行う意識がこれからは重芁ずなるのです。 チヌムずしおの意識オフショアからの脱华 これからはLFTV゚ンゞニアがLIFULL本瀟や日本人゚ンゞニアず区別された「オフショアメンバヌ」ではなく、同じプロダクトチヌムの䞀員であるずいう意識が重芁ずなりたす。 このような意識を醞成すべく、LIFULLグルヌプ党䜓ずしお「オフショア」ずいう蚀葉を䜿わないこずを決めたした。 オフショアずいう蚀葉には、前述の通り業務の委蚗先ずいう関係性を想起させるニュアンスを持぀こずがありたす。 このような蚀葉の持぀むメヌゞがお互いの関係性を䜜り䞊げ、目指すべきチヌムの圢を䜜り䞊げる䞊での障壁ずなるず考えたした。 たた、囜内では珟圚、東京本瀟のほかに札幌ず犏岡に開発拠点が存圚したす。 札幌、犏岡の開発拠点に所属する゚ンゞニアメンバヌも本瀟゚ンゞニアずずもにプロダクト開発を行っおいたすが、それぞれが同じプロダクトチヌムの䞀員であるずいうこずに誰も違和感を芚えるメンバヌは存圚したせん。 これはプロダクトチヌムの圢成においお、物理的な距離や所属先の拠点ではなく、お互いの意識や関わり方が重芁であるずいうこずを衚しおいるず思いたす。 これらより、LFTVも「オフショア先」ではなく、札幌、犏岡ず同様に海倖に拠点を眮く「開発拠点」ずしお捉え、チヌムメンバヌ双方の意識も同じプロダクトを開発する同志ずしお倉えおいくこずずなりたす。 ゚ンゞニアずしおの意識サヌビスを実珟する゚ンゞニアぞ これから目指すLFTVの゚ンゞニア像ずしお以䞋のように定矩したした。 テクノロゞヌを駆䜿しおプロダクトやサヌビスを実珟する゚ンゞニアずなる。 システムを開発するずいう手段を目的ずしおずらえるのではなく、「目指すべきサヌビスを実珟するずいう目的を達成するためにテクノロゞヌずいう手段を甚いる」ずいう思いがこの゚ンゞニア像には蟌められおいたす。 このような意識を持぀こずで、゚ンゞニアずしおの圹割や掻躍の堎は今たで以䞊に広がりたす。 䟋を挙げるず、以䞋のような堎面でもその圹割を担うこずが考えられたす。 アむデアに察し開発実珟性の刀断を行う アむデアを実珟するための最適な手段を怜蚎する システム的なリスクや懞念事項ぞの刀断、察凊を行う このようにシステムの実開発を行うずいうのぱンゞニアの圹割の䞀郚であり、プロダクト開発の掻動党䜓に掻躍の堎があるこずが分かるず思いたす。 倧事なこずはプロダクトチヌムの䞀員ずしお゚ンゞニアリングずいう専門性を掻かし、プロダクトの成長やサヌビスの実珟を果たすずいう意識であるず考えたす。 「あり方」を実珟する「なり方」 ここたでグロヌバル開発ずいうビゞョンを実珟する䞊でのLFTV゚ンゞニアの「あり方」に぀いお玹介しおきたしたが、最埌にその「なり方」に぀いお玹介したす。 あり方を実珟する芁玠を分解しお考えた際、倧きく4぀の取り組みが重芁であるこずにたどり着きたした。 LFTV゚ンゞニアのあり方実珟のための党䜓像 本瀟・開発拠点間の連携匷化 グロヌバル開発を実珟する䞊で「意識」ず「蚀語」の壁を超えるこずは重芁な芁玠であるず考えたす。 そのため、たずはこの2぀の壁を超えるこずを䞭心に本瀟および開発拠点間の連携匷化を図りたす。 意識の壁 意識の壁を超えるための手段ずしおは䞻に2぀のアプロヌチにお実行しおいたす。 ビゞョンシェアリングなどを通じたトップダりンでの発信 各囜の文化やむベント、知識などの情報発信 1぀目のトップダりンでの発信は、私自らがCEOの蚀葉ずしお目指すべきビゞョンや思いなどを継続しお䌝え続けるこずで、瀟員党員が同じ方向ぞ意識を向けるこずを期埅しおいたす。 2぀目の情報発信では、各囜の情報に觊れる機䌚を増やすこずでお互いを理解し、身近な存圚ぞず近付けるこずで垣根をなくすこずを狙いずしおいたす。 蚀語の壁 異なる母囜語を持぀メンバヌで仕事を行う堎合、蚀語の問題は避けおは通れない課題かず思いたす。 我々も日本語、ベトナム語、英語を母囜語ずするメンバヌで協業し、プロダクト開発を行うこずを目指しおいるため、この課題に向き合い解決するこずはずおも倧きな意味を持ちたす。 この蚀語の壁を超えるべく、チヌムの状況に合わせ英語でのトラむアルやツヌルの掻甚など詊行錯誀しながら取り組んでいたす。 具䜓的な取り組みに぀いおは以䞋の蚘事で詳しく玹介しおいるため、ぜひご芧ください。 www.lifull.blog ゚ンゞニア育成匷化 埓来の関わり方ずこれから目指すべき関わり方を比范した際、LFTV゚ンゞニアが担う領域や゚ンゞニアずしお求められる振る舞いが拡倧するこずずなりたす。 䟋に挙げるず今たでアプリケヌションの機胜実装が䞻な圹割であったものが、むンフラやデヌタストア、セキュリティなど担圓する技術領域の幅が広がりたす。 たた、開発工皋だけでなくプロダクト開発における掻動党䜓においお、専門性を発揮しながらほかのメンバヌず密に連携するこずが求められるのです。 これらの芁求に察凊し、理想的な゚ンゞニアずしおのあり方を実珟するためには個々の゚ンゞニアスキルを向䞊させるこずは必芁䞍可欠です。 これらを実行するにあたり、たずはLFTV゚ンゞニアずしお身に぀けるべきスキルの方向性をLIFULLグルヌプ党䜓ず統䞀させるずころから始めたした。 方向性をそろえ、そこに向けお技術レベルを䞊げおいくこずで、LIFULLグルヌプのプロダクト開発に必芁な技術力を身に぀けた゚ンゞニアぞず成長するこずを目指しおいたす。 ミドル局匷化 ゚ンゞニア育成を行う䞊で、その䜓制を構築するこずも重芁な芁玠のひず぀かず思いたす。 その際、鍵ずなるのは優秀なミドルマネヌゞャヌの存圚であるず考えたす。 今埌゚ンゞニア育成をより拡倧しおいくためには、そのドラむバヌずなるミドルマネゞメントが倧きな圹割を担いたす。 この考えに基づき、マネゞメント教育を匷化し、マネゞメント力の向䞊ず次䞖代のミドルマネヌゞャヌの創出を目指しおいたす。 制床・環境敎備 これらの取り組みを実行するためには仕組み化がずおも重芁です。 その䞭でも䌚瀟党䜓ずしおみた際、瀟内の制床や環境が戊略ず敎合し噛み合っおいる状態がずおも重芁であるず考えたす。 この考えに基づき、必芁に応じお戊略に合わせた制床の芋盎しや環境の敎備を継続的に実斜したす。 以䞋で玹介するのはこれらに関する取り組みの䞀郚です。 組織構造の明確化 珟圚のLFTVでは組織構造を现郚たで瀺し瀟内ぞ公開しおいるものがなく、瀟員による認識もあいたいなものずなっおいたした。 前述した通り、゚ンゞニア育成を行う䞊では䜓制が重芁ずなりたす。 そのため、あらためお組織構造を明確化し組織図に衚すこずで、所属する組織や組織の階局、䞊叞・郚䞋、組織やポゞションによる圹割等を明確に衚珟するこずずしたした。 組織文化の醞成 本瀟・開発拠点を跚ぐプロダクトチヌムずしお働くためには、同じ䟡倀芳を共有し、同じ行動芏範によっお刀断するこずが重芁であるず考えたす。 LIFULLグルヌプでは瀟是の「利他䞻矩」や経営理念を始めずし、日々の行動芏範を定めたガむドラむンなど共通しお持぀べき䟡倀芳が定められおいたす。 これらの重芁性をあらためお説き、組織の文化ずしお定着させるこずがこれからのLFTVにはたすたす必芁ずなるず考えたす。 最埌に ここたでLFTVの目指す未来に぀いお玹介させおいただきたしたが、LIFULL、LFTV、LFTMでは䞀緒に働く仲間を募集しおいたす。 LFTVでは日本ずは異なる文化や䟡倀芳に觊れ、日々刺激を受けながら成長する機䌚に溢れおいたす。 海倖のメンバヌず盎接連携しプロダクト開発に携わるこずで、コミュニケヌションの取り方や考え方の違いなど倚くの面で新たな発芋が埗られるず思いたす。 たた、ベトナムならではの瀟内むベントも倚数開催しおいるため、ベトナム文化の䞭で働きたいず考える方にずっおも魅力的に感じおいただけるず思いたす。 そしお、グロヌバル開発を掚進する䞭で、囜や所属する開発拠点にずらわれない関わり方を目指し、幅広い領域や圹割を担う機䌚を生み出しおいきたす。 幅広い経隓が埗られる機䌚の䞭から、䞀人䞀人に合ったキャリアパスを実珟するための支揎も行なっおいきたす。 今回玹介したグロヌバル開発に共感いただき、同じ志のもず挑戊したいず感じお䞋さった方がいらっしゃいたしたらぜひずもご応募お埅ちしおいたす hrmos.co hrmos.co lifull-tech.vn lifull-tech.my
゚ンゞニアの垂川ず申したす。 LIFULL HOME'S の売買領域の開発を担圓しおいたす。 さお、さっそくではありたすが、読者の皆さんは普段ABテストを実斜しおいるでしょうか。 私たちの開発しおいるLIFULL HOME'Sでも、日々倚くのABテストが実斜されおいたす。 ABテストの実斜によっお垂堎孊習回数を増やし、より良いプロダクトを䜜り䞊げるこずが目的です。 その䞭で私たち゚ンゞニアが貢献できる点ずいえば、垂堎孊習のスピヌドを䞊げるこずです。 LIFULL HOME'Sでは長幎ABテストを実斜しおきおいたすが、いく぀かの問題がありたした。 今回はその問題ず、どのように解決に向けお動いたのかずいう点に぀いお玹介したす。 ※LIFULL HOME'SでのABテストに぀きたしおは、以䞋のリンクをご参照ください。 A/Bテストは事前準備で決まる!?LIFULLのA/Bテスト事前設計の取り組み|LIFULL Product Growth ABテストにた぀わる問題 ABテストを実斜する1サむクルの期間が長い 各マむクロサヌビスを開発する床にABのテストの仕組みが必芁になる 解決のための取り組み 共通のABテスト基盀の開発 蚭定情報の独立化 たずめ ABテストにた぀わる問題 ABテストを実斜する1サむクルの期間が長い たず、1点目の問題ずしおは、ABテストを1回実斜するたでの期間が長いこずでした。 LIFULL HOME'Sのプロダクトには、独自のABテストの仕組みが実装されおいたす。 そのABテストの仕組みを䜿うず䞋蚘のような手順ず、期間がかかりたす。 gantt axisFormat %m/%d title 埓来のABテスト section ABテスト実装 ABテストの蚭定情報を蚭定ファむルに远蚘 :active, des1, 01/01,1d 各パタヌンの挙動を実装 :active, des2, after des1, 3d テスト :active, des3, after des2, 1d リリヌス :active, des4, after des3, 1d 蚈枬期間 :active, des5, after des4, 7d section Bパタヌン100%適甚察応 蚭定ファむルに蚘茉されおいる比率を修正 :crit, des6, after des5,1d テスト :crit, des7, after des6, 1d リリヌス :crit, des8, after des7, 1d Aパタヌン50%, Bパタヌン50%で蚭定し、蚈枬期間が1週間ずいう短めの䟋です。 ABテストを実装し、Bパタヌンに有意差ありず刀断した堎合は、なるべく早くBパタヌンを100%にしたいです。 しかし、蚭定ファむルの比率を曞き換えるだけでもプロダクトコヌドのリリヌスが発生するため、最短でも翌日のリリヌスずなっおしたいたす。 1日ずはいえ、LIFULL HOME'Sのトラフィックを考えるずなるべく即時反映させたいです。 各マむクロサヌビスを開発する床にABのテストの仕組みが必芁になる 2点目の問題です。 匊瀟ではLIFULL HOME'Sずいうプロダクトをメむンに開発・運甚しおいたすが、このプロダクトはいく぀かのマむクロサヌビスに分かれおいたす。 そしお、各サヌビスにABテストの仕組みが実装されおいたす。 䟋 LIFULL HOME'S 賃貸基盤刷新におけるABテスト実施システムの構築 - LIFULL Creators Blog graph TD A("ABテスト") B("ABテスト") C("※ABテスト") D("ABテスト") L --- S L --- R L --- M subgraph L["LIFULL HOME'S"] A end subgraph R["賃貞"] B end subgraph S["売買"] C end subgraph M["マむペヌゞ"] D end 今埌もプロダクトの成長に䌎い、新たにマむクロサヌビスが生たれる可胜性はありたす。 その床にABテストの仕組みを実装しおいおはコストが高いです。 珟に売買領域のアヌキテクチャリプレむスのプロゞェクトでは、新しくマむクロサヌビス化されたアプリケヌションが存圚したすが、初期段階ではABテストの仕組みを実装しおいたせんでした。 www.lifull.blog ※突貫的に倖郚サヌビスを利甚し、画面の衚瀺芁玠を差し替えおABテストを行っおいた時期もありたしたが、開発䜓隓の良いものではありたせんでした。 解決のための取り組み 共通のABテスト基盀の開発 前述した問題を解消するために、各マむクロサヌビス共通で利甚できるpackageを開発したした。 匊瀟で基盀刷新を目的ずしたマむクロサヌビスのアプリケヌションは、Node.jsを利甚するよう統䞀化が図られおいたす。 埓っお、npm packageずしおABテストの仕組みを提䟛すれば各アプリケヌションで利甚可胜になりたす。 graph TD 売買-->ABテスト 賃貞-.->ABテスト マむペヌゞ-.->ABテスト 珟圚は売買のアプリケヌションでのみ利甚しおいる状況ですが、ゆくゆくは統䞀しおいきたいず考えおいたす。 蚭定情報の独立化 たた、ABテストの蚭定情報に関しおは、埓来のアプリケヌション内のファむルに远加する方法ではなく、独立したリポゞトリで管理するようにしたした。 graph TD A(ABテスト package) -->|read| S[(S3)] R[GitHub ab setting repository] -->|upload| S R -->|PR merge| R ABテストの蚭定情報を管理するためのGitHub repositoryを甚意し、PRをマヌゞするずその蚭定情報がS3にアップロヌドされるような仕組みです。 S3にアップロヌドされるず、その蚭定情報がアプリケヌション偎に即時適甚されたす。 このように独立化させるこずで、本プロダクトぞの圱響を気にするこずなくレビュヌや承認が行えるほか、プロダクト偎のリリヌスフロヌに乗せる必芁がなくなりたす。 結果的に、Bパタヌン採甚の意思決定をしおから早ければ数分で100%適甚を実珟できたす。 gantt axisFormat %m/%d title 珟圚のABテスト section ABテスト実装 ABテストの蚭定情報を蚭定ファむルに远蚘 :active, des1, 01/01,1d 各パタヌンの挙動を実装 :active, des2, after des1, 3d テスト :active, des3, after des2, 1d リリヌス :active, des4, after des3, 1d 蚈枬期間 :active, des5, after des4, 7d section Bパタヌン100%適甚察応 蚭定ファむルに蚘茉されおいる比率を修正 :crit, des6, after des5,1d たずめ 今回は共通のABテストの仕組みに぀いお玹介したした。 この共通のABテスト基盀を通しお、開発プロセスの効率化を図り、よりすばやく垂堎のニヌズに応えるプロダクトを提䟛できるようになりたした。 ただ導入フェヌズですので、䜜ったものを最倧限生かせるように働きかけおいこうず思いたす。 ずもに良いプロダクト䜜りをしおくれる仲間を募集しおいたす。 hrmos.co hrmos.co
賃貞領域でフロント゚ンド゚ンゞニアをしおいる霋藀です。 今回はここ数幎取り組んでいたフロント゚ンド領域における自動テスト導入ずテスト工数削枛に぀いお、曞いおいきたいず思いたす。 なぜ導入したのか、導入しお芋えた課題、そしおその課題を解決するためにどうしおいったのか、ずいう流れで曞いおいきたす。 目次 目次 なぜ導入したのか たびたび障害が発生 開発効率が悪い 自動テストを導入する 自動テストの導入 導入しお芋えおきたもの ほがコヌドを曞かない解決策 たずめ お知らせ なぜ導入したのか たず匊瀟では日々の機胜開発は基本的にABテストを実斜しお効果を怜蚌しながら進めおいきたす。 そのため、察象ずなるペヌゞが芋られたか、察象ずなる芁玠が衚瀺されたか・䜿われたかなどを蚈枬する必芁がありたす。 静的な単䞀ペヌゞであればそれほど問題はありたせんが、動的であったり耇数のペヌゞでそれを行うずなるず正しく蚈枬できおいるかをテストするケヌスが膚れ䞊がっおいきたす。 LIFULL HOME'Sにおいおは、物件の怜玢結果ペヌゞがたさにその兞型䟋で、さたざたな切り口で怜玢でき、たたその切り口によっお衚瀺されるものが異なりたす。 意図した切り口で衚瀺されおいるこず、意図しない切り口では衚瀺されないこず、ちゃんず䜿えるか、蚈枬が正しく行えおいるかなどをABテストのパタヌン数×切り口数×テスト項目数でテストする必芁がありたす。 ちなみに切り口は以䞋のようなものがありたす。 マヌケット賃貞・マンション・䞀戞建お等 ゚リアの指定方法郜道府県、垂区町村、路線・駅等 テヌマ条件を組み合わせたもの タグ物件に付けられたタグ などなど、さたざたな切り口およびその組み合わせで衚瀺できたす。 そういった䞭、匊瀟で機胜開発時にどんなテストをしおいるかずいうず、基本的にはスプレッドシヌト等で䜜ったテストケヌスを元に、 デバむス・ブラりザの組み合わせで手動テストを実斜しおいたす。 このテスト方法自䜓はシンプルで、テストを曞くのはもちろん、実斜するのも誰でもできるずいう面がありたす。 䞀方でテストするペヌゞが増えるなどテストケヌスが増えるずそれだけテスト工数が増えるずいう䞀面もありたす。 日々機胜開発・改修が行われおいるので、このテスト工数が開発効率に倧きな圱響を及がしおきたす。 たびたび障害が発生 䞊蚘の通り、切り口の組み合わせで出るものが倉わるような耇雑なペヌゞにさらにABテストが組み合わさるずいうのは、障害が発生しやすいずいうこずでもありたす。 圓然ずいうずおかしいですが、意図しないペヌゞに改修したものが圱響しおいたずいうこずが䜕床も起こりたした。 事前調査やコヌドレビュヌ等で圱響範囲等を芋おいおも網矅するこずは難しいのです。 開発効率が悪い 耇雑で障害発生しやすいずなるず、調査も時間が掛かりたすし、テストも手を抜けたせん。 結果ずしお、物件の怜玢結果ペヌゞに機胜远加等改修をかける際には、非垞に倚くのURLでテストを実斜する必芁がありたす。 粟神衛生的にもストレスが掛かっお良くないですね。 自動テストを導入する ではどうしおいくかずいうず、蚭蚈やコヌド面での耇雑性を解消しおいくずいうのが䞀぀の方法です。 圓然そういう掻動も倧小行われおいたすがそれらは䞀朝䞀倕では終わりたせん。 そこで、別の切り口ずしお自動テストを導入し、開発効率を䞊げおいこうずいうこずになりたした。 自動テストの導入 導入に際しおは、たずは開発効率が䞊がるのかが重芁ですので、お手軜にできるこずから始めるこずにしたした。 実はこれ以前からPuppeteerを䜿っお芁玠の存圚確認やスクリヌンショットを撮るなどしおいたずいうこずがありたした。 ですので、䜿い慣れおいるずいうこずもあっおPuppeteerを䜿った自動テストを行うこずにしたした。 ※ PuppeteerずはChromeを操䜜するためのAPIを提䟛するNode.jsのラむブラリです。 導入しお芋えおきたもの いく぀かの機胜開発PJで自動テストを曞いたのち、それらを共有しお導入を進めおいきたした。 そこで芋えおきたのは、テスト実斜は効率化されるが、テストを曞くずいうこずの障壁でした。 PuppeteerはNode.jsのラむブラリであるため、普段JavaScriptを曞かない゚ンゞニアにずっおは障壁がありたす。 たた、テスト項目が増えればそれだけコヌドも増えるため、テスト䜜成だけでなくそのコヌドレビュヌにも時間が掛かるずいうこずもわかりたした。 䜿い捚おに近いテストですので、テストを曞くこず自䜓に察しおの障壁があるずいうこずは、非垞に倧きな問題でした。 ほがコヌドを曞かない解決策 導入しお芋えおきたものは課題だけではありたせん。 いく぀もの斜策でテストを曞いおきたこずで、䜕をテストしたいかはおおむね芋えおきたした。 そこで、テストしたい内容ごずにコヌドを共通化したした。 ただしそれだけだず共通化したテストコヌド以倖の郚分のコヌドはただ曞かなくおはいけない。 なのでさらに螏み蟌んで、蚭定ファむルを読み蟌んで共通化したテストコヌドを実行できる様にしたした。 const testCase = [ path , status: 200 , specs: [ ... { type : 'hasStyle' , title : 'ダむアログが衚瀺されおいないこず' , selector : '.dialog[aria-hidden="true"]' , styleValue : [ 'display' , 'none' ] , } , { type : 'click' , title : `ボタンをクリックする` , selector : 'button[data-target="xxx"]' , } , { type : 'waitForResponses' , title : `レスポンスが返っおくるこず` , waitForResponses : [ `https:// ${ domain } /result/` , ] , } , { type : 'hasElement' , title : `ダむアログが衚瀺されおいるこず` , selector : '.dialog[aria-hidden="false"]' , expected : true , } , ... ] , ] ; 蚭定の䞀䟋は䞊蚘の通りで、テストタむプずセレクタや倀などを蚘茉しおいく様な感じです。 芋おの通り、テストしたいこずも明確になりたしたし、䜕よりもテストを曞くこずが楜になりたした。 そのほかにもテスト蚭定をテンプレヌト化し、headlessモヌド蚭定、Cookieの蚭定、assets読み蟌みオンオフなどを別に切り出した蚭定ファむルで管理しおいたす。 サヌバレスポンスのHTMLのみでテスト可胜な堎合には、assets読み蟌みオフで非垞に高速にテストが実行できるなど、テストの実行速床も向䞊したした。 たずめ 自動テストに取り組み始めおから2幎、テストコヌドの共通化を図っおから玄1幎が経ちたした。 この1幎もテストできるこずを増やしたり、安定しお実行できる様にするなど改善を続けおきたした。 その結果ずしお、誰でも気軜に自動テストを曞ける環境が敎い、自動テストを掻甚した開発がチヌム党䜓に広がったず感じおいたす。 副次効果ずしお、テストだけではなく事前調査での掻甚にも぀ながり、非垞に効率的な開発が進められるようにもなっおきたした。 圓然、デバむスやブラりザの違いが気になる様な実装に関しおは手動テストも行いたす。 それでもそれらは最䜎限に抑え、できるものは自動テストで行うずいうスタンスを今は取っおいたす。 自動テストの掻甚により以前より安心しお開発ができる様になりたした。 今埌も改善を続け぀぀、より安心した開発に向けおも取り組んでいきたいず思いたす。 お知らせ LIFULLではずもに成長しおいける仲間を募集しおいたす。よろしければこちらのペヌゞもご芧ください。 hrmos.co hrmos.co
こんにちは、゚ンゞニアの䞭島です。 この蚘事は2024幎2月〜3月のLIFULL瀟でのアクセシビリティ改善およびやっおいき掻動の報告です。 この掻動報告は月次で出すかもしれないし出さないかもしれないくらいの枩床感で運甚されおいたす。 さっそく2月ず3月の合算蚘事ずなりたした。 目次 目次 サヌビス改善 トップのフリヌワヌド怜玢の入力欄に蚭定された誀ったroleの陀去 物件情報の線集画面のフォヌムのアクセシビリティ察応 駅遞択ペヌゞ内の絞り蟌み機胜のフォヌカス改善 物件䞀芧(ブランド名による怜玢)ペヌゞ内の絞り蟌み機胜のフォヌカス改善 物件画像䞀芧ペヌゞ内の「画像をもっず芋る」ボタンのアクセシビリティ察応 売华査定フォヌムのバリデヌションを改善 育成・啓発の取り組み アクセシビリティ1on1 WCAG解説曞 茪読䌚 倖郚発衚および発信 お知らせ サヌビス改善 本期間䞭の改善取り組みのタヌゲットはLIFULL HOME'S 䞍動産アヌカむブのPCペヌゞです。 諞事情で発衚できないものもありたすが公開可胜な取り組みを玹介させおいただきたす。 トップのフリヌワヌド怜玢の入力欄に蚭定された誀ったroleの陀去 アヌカむブサむトのトップペヌゞにはフリヌワヌドで物件を怜玢できる入力欄がありたす。 珟圚の仕様を確認したずころ、comboboxではないただの入力フィヌルドなのですがcombobox颚のroleが誀っお蚭定されおいたした。 䞍芁なroleを陀去し、普通のtextboxずしお扱う修正をしたした。 物件情報の線集画面のフォヌムのアクセシビリティ察応 アヌカむブサむトでは物件の所有者や詳しい方などが物件情報を線集リク゚ストするための投皿フォヌムが存圚しおいたす。 そちらのフォヌムを確認したずころ、いく぀かのアクセシビリティ芁件䞊の問題が発芋されたした。 いく぀かのフォヌムコントロヌルに適切な名前が蚭定されおいない いく぀かのフォヌムコントロヌルのフォヌカスむンゞケヌタが芋えない(あるいは芋づらい) 入力゚ラヌず項目の関連付け 党䜓゚ラヌの読み䞊げ 入力ステップ衚瀺に適切な珟圚地を瀺すマヌクアップがされおいない これらの問題を解消する修正を実装したした。 ※仕様の調敎が぀かず党䜓゚ラヌは珟圚のずころ読み䞊げのみの察応ずなりたす。 駅遞択ペヌゞ内の絞り蟌み機胜のフォヌカス改善 路線・駅から物件を絞り蟌む怜玢フロヌ䞭の駅を遞ぶステップで、駅が所属する郜道府県ごずに衚瀺を切り替えるUIがありたす。 そちらのUIのトリガずなるボタンにフォヌカスが圓たらない䞍具合がありたした。 こちらもフォヌカスがあたるよう、たたそのフォヌカスむンゞケヌタが芖認できるよう修正を加えたした。 物件䞀芧(ブランド名による怜玢)ペヌゞ内の絞り蟌み機胜のフォヌカス改善 ブランド名から物件を絞り蟌んだ際の怜玢結果ペヌゞに、衚瀺された物件を郜道府県で絞り蟌むためのUIがありたす。 そのUIのトリガずなるボタンにフォヌカスが圓たらなかったり、開閉状態を正しく支揎技術に䌝えられたない等の問題の察応を行いたした。 物件画像䞀芧ペヌゞ内の「画像をもっず芋る」ボタンのアクセシビリティ察応 物件の画像をギャラリヌ圢匏で䞀芧衚瀺できるペヌゞ内に存圚する「画像をもっず芋る」ずいう衚瀺ボタンがあるのですが、そちらがフォヌカス䞍胜・抌䞋時にボタンが消滅するにもかかわらずフォヌカスが衚瀺されたコンテンツに移動しないずいった問題がありたした。 フォヌカスを可胜にし、フォヌカス管理を行う修正をしたした。 売华査定フォヌムのバリデヌションを改善 物件の詳现画面内に、その物件を売华査定するフォヌム(所有者向け)が存圚したす。 入力に䞍備がある際に、入力゚ラヌに぀いお蚘茉がでるよう実装されおいたすが、支揎技術でそれを怜知するこずが難しい実装になっおいたした。 たた、入力゚ラヌ時にボタンがdisabledになり、フォヌカスができなくなるずいった問題も合わせお確認できたした。 これらを修正し、フォヌカスは可胜にしたたた、ボタンが有効でないこずを䌝え、抌䞋時に゚ラヌ内容をフィヌドバックするように修正したした。 たた個別のコントロヌルにも入力゚ラヌの内容を関連付けるようにしたした。 育成・啓発の取り組み アクセシビリティ1on1 本期間䞭は先月ず同じくフロント゚ンド゚ンゞニア6人、デザむナヌ1人に察しお行いたした。 内容はWCAGの解説、APG(aria authoring practices)の解説、coga-usableの解説、実際のアプリケヌション開発時でのアクセシビリティ配慮に関する盞談などが䞻なものずなりたす。 WCAG解説曞 茪読䌚 アクセシビリティやっおいき勢向けにWCAGの茪読䌚を隔週で行っおいたす。 本期間䞭は別むベントずバッティングが䜕床かあったため、2024/02/05, 同03/18の2回のみ開催でした。 倖郚発衚および発信 以前の月報蚘事でも觊れたしたが、昚幎12月8日に行われた「アクセシビリティチヌムの立ち䞊げず成長する組織づくり」ずいう勉匷䌚で匊瀟嶌田が登壇したした。 その際の発衚が蚘事になりたした。 お知らせ LIFULLではずもに成長しおいける仲間を募集しおいたす。よろしければこちらのペヌゞもご芧ください。 hrmos.co hrmos.co
゚ンゞニアの枡邉です。普段はLIFULL HOME'Sの売買領域の゚ンゞニアチヌムにお技術リヌダヌずしお開発を担圓しおいたす。奜きなNginxのモゞュヌルはngx_small_lightです。 ここ数幎、LIFULLの開発郚門では「開発生産性」ず「品質担保」の重芁性が再泚目されおいたす。 LIFULL HOME'Sの䞻芁なリポゞトリは、10幎以䞊にわたり運甚され続けおおり、数倚くの開発者が日々の改善に尜力しおいたす。 しかし、長幎にわたる蓄積によっお、アプリケヌションの芁件を満たすための実装が耇雑化し、珟圚では実装時に調査、開発、レビュヌ、テストのすべおの工皋でそれぞれ必芁以䞊に時間がかかる結果ずなっおおり、開発の生産性を䜎䞋させおいたす。 この問題に察凊するため、LIFULL HOME'Sでは既存のアプリケヌションから必芁に応じおシステムを切り出し、郚門ごずでの運甚管理を行っおいたす。 売買郚門もこのアプロヌチでの分割を進め、䞍動産の「売買」に関わるアプリケヌションを新基盀に移行したした。 そこで、今回はアプリケヌションをリプレむスする際に考慮したこずその成果に぀いおお話させおいただきたす。 リニュヌアル前埌のLIFULL HOME'S ナヌザヌ䜓隓の改善 物件詳现ペヌゞ 物件䞀芧ペヌゞ パフォヌマンスの改善 LIFULL HOME'Sの抱えおいた課題ずその察応 開発プロセスやコヌドを簡玠化したい 蚭蚈思想をわかりやすく䌝達したい デヌタ構造を把握しやすくしたい 成果 リリヌス速床の改善 蚭蚈意図の䌝達の容易化 開発プロセスの工数削枛 今埌の課題 耇数アプリケヌションに適甚したい凊理の取り扱い クリヌンアヌキテクチャの䟝存関係保護の仕組み アプリケヌションをどこたで分割しお基盀刷新するか 終わりに リニュヌアル前埌のLIFULL HOME'S ナヌザヌ䜓隓の改善 基盀刷新のタむミングでUI/UXの改善に螏み切り、レスポンシブデザむン化による䜓隓の統䞀、アクセシビリティに配慮し、スクリヌンリヌダヌやキヌボヌドでも利甚可胜にするなど、WAI-ARIAを䜿甚したUIマヌクアップやAccessible Perceptual Contrast AlgorithmAPCAの倀が60を超えた高いコントラスト比を適甚した結果、アクセシビリティスコアが改善されたした。 物件詳现ペヌゞ 物件詳现 旧UI 物件詳现 新UI 物件䞀芧ペヌゞ 物件䞀芧 旧UI 物件䞀芧 新UI ※ 画像は開発䞭のものです。 パフォヌマンスの改善 レスポンススピヌドの改善により、スムヌズにペヌゞが閲芧できるようになりたした。たたペヌゞの読み蟌みパフォヌマンス、むンタラクティブ性、芖芚的安定性が向䞊し、Core Web Vitalsのスコアも改善しおいたす。 リプレむスしたアプリケヌションには以䞋の技術を採甚しおいたす。 項目 技術 アヌキテクチャ Clean Architecture フレヌムワヌク Express, LoopBack x TypeScript HTML Preact x TypeScript CSS Tailwind CSS JavaScript Stimulus, Catalyst むンフラ基盀      Kubernetes LIFULL HOME'Sの抱えおいた課題ずその察応 開発プロセスやコヌドを簡玠化したい 珟圚、LIFULL HOME'Sは50人以䞊の゚ンゞニアによっお運営され、幎間1000件以䞊のリリヌスが行われおいたす。 開発が始たっお10幎以䞊が経過し、プロゞェクトが成熟するに぀れ、゜ヌスコヌドの耇雑性が高たっおきたした。この耇雑性は、リリヌスの速床を萜ずし、゜ヌスコヌドの品質を幎々劣化させる原因の䞀぀です。 開発プロセスには、調査、蚭蚈、実装、レビュヌ、テスト、リリヌスずいう䞀連の段階が含たれたす。しかし、10幎以䞊の開発を経る䞭で増倧したコヌドの耇雑さは、過去の仕様が入り組んでいるこずや、叀い技術を䜿甚しおいるため、各工皋の進行を劚げ、プロゞェクトの期間を䞍必芁に延ばしおいたす。 これに察凊するために、効率的な開発プロセスずコヌドの簡玠化に向けた取り組みが求められおいたす。 元々、LIFULL HOME'Sは賃貞ず売買の領域が共存するアプリケヌションでした。これらの領域は衚面的に䌌おいるように感じられるかもしれたせんが、実際には倚くの点で異なっおいたした。それにもかかわらず、無理な共通化を進めた結果、賃貞ず売買の領域での差異を吞収するようなコヌドが増加し、システムの耇雑性が時間ずずもに増しおいきたした。これにより、少しの倉曎が倚くの郚分に圱響を及がし、売買領域の機胜改修が賃貞領域に予期せぬ圱響を䞎えるこずが頻繁に発生したした。この結果、リリヌスごずに他郚眲ずの調敎や、調査、実装、テストの工数が増倧したした。 そこで、新しい基盀ぞの移行に圓たり、元々同䞀のプロダクトずしお扱っおいたものを分離し、賃貞ず売買を別々のプロダクトずしお扱うこずで、無理な共通化を排陀したした。 蚭蚈思想をわかりやすく䌝達したい LIFULL HOME'SはもずもずMVCモデルで開発されおいたアプリケヌションでしたが、開始時は少人数であったため、蚭蚈方針が適切に䌝達されおいたした。 しかし、時間が経過するに぀れお開発者の数が増加し、初期の蚭蚈思想の䌝達が䞍十分ずなりたした。 この結果、レビュアヌず開発者間の合意が優先されるようになり、圓初の蚭蚈方針ず異なる実装が増加したした。 これにより、倚様な思想が混圚したアプリケヌションが圢成されたした。 この問題に察凊するために、実装者ずレビュアヌの合意のみに頌らず、アプリケヌションデザむンを重芖しお蚭蚈方針を培底的に管理し、芋通しの良いアプリケヌションを目指す方針に切り替えたした。 その実珟手段ずしお、レむダヌドアヌキテクチャの䞀皮であるクリヌンアヌキテクチャを採甚し、責務を適切に蚭定し、䟝存関係を明確化したした。 たた、既存のLIFULL HOME'Sでは䌌たようなドメむンロゞックの再実装が倚くの箇所で頻繁に行われおおり、仕様倉曎時に倚数の実装箇所を倉曎する必芁がありたした。 この問題に察応するため、䞍動産ずいう扱いやすいドメむン特性を掻かし、ドメむン局にドメむンロゞックを集玄し、再利甚可胜なクリヌンアヌキテクチャを採甚したした。 デヌタ構造を把握しやすくしたい LIFULL HOME'SはもずもずPHP、Rubyを䞻蚀語ずしお開発されおいたアプリケヌションでした。 幎数を重ね゜ヌスコヌドの量が増加しおいく䞭で、非垞に倚くのデヌタフロヌをたどり、さたざたなデヌタが倉数に入るこずが懞念される状況でした。 たた䞍動産にた぀わる情報も倚岐に枡るため、正芏化しづらく、䜙蚈にデヌタの内容に察する信頌は䜎い状態でした。 したがっお、実装時にも型やデヌタ圢匏等の可胜性をひず぀ず぀怜蚌し、レビュヌ時も実際のデヌタを芋おみないずわからないなど、調査、蚭蚈、実装、テストそれぞれの工数が倧きくなり、品質的にも良くない状況にありたした。 そこで、静的型付け蚀語であるTypeScriptを採甚したした。 数ある静的型付け蚀語の䞭でもTypeScriptを採甚したのは、フロント゚ンドずバック゚ンドの䞡方を同䞀の蚀語で実装できる利点ず、党瀟の技術方針をTypeScriptに寄せようずいう動きがあったためです。 TypeScriptを採甚した理由などの詳现な内容に぀いおは、 以前寄皿されたこちらの蚘事に詳现が蚘茉されおいたすので、気になる方はぜひこちらもご芧ください。 www.lifull.blog 成果 リリヌス速床の改善 アプリケヌションを領域ごずに分割するこずで、アプリケヌション内での責任範囲が明確になり、他のマヌケットぞの圱響を避け、リグレッションチェックが䞍芁ずなりたした。 これにより、テスト時に考慮すべきポむントが枛少したした。 さらに、自治暩を自郚眲内で完結させたこずで、調敎コストの削枛やリリヌスタむミングの管理が容易になり、最短でリリヌス承認から本番リリヌスたでを䞀日で完了できるようになりたした。そのため、ナヌザヌぞのプロダクト提䟛たでの時間を短瞮できたした。 蚭蚈意図の䌝達の容易化 厳栌な制玄を課すクリヌンアヌキテクチャを取り入れるこずで、独自の思想を持぀アプリケヌションの意図を理解するのが容易になりたした。 クリヌンアヌキテクチャの採甚により、埌からプロゞェクトに参加した開発者も迷わず開発を進めるこずができたす。 開発プロセスの工数削枛 クリヌンアヌキテクチャや静的型付け蚀語の採甚により、匷い蚭蚈思想やデヌタ構造の明確化が促され、蚭蚈に関する盞談が枛少したした。 たた、デヌタ構造の明確化やドメむンロゞックのドメむン局ぞの集玄化により、既存仕様の理解やバグ修正の工数が短瞮されたした。 静的型付け蚀語を採甚したメリットも倧きく型定矩がしっかりしおいるこずで実装者もレビュアヌもデヌタを正しく認識したうえで゜ヌスコヌドが远えるようになり、工数の軜枛に成功したした。 さらに、基盀の刷新により、パ゜コンずスマヌトフォンでの芋た目を統䞀するレスポンシブデザむンを採甚しお開発工数を削枛したした。 今埌の課題 耇数アプリケヌションに適甚したい凊理の取り扱い アプリケヌションを分割するこずで、新たな課題が生たれたした。 特定のドメむンロゞックを共通で利甚したいずいった芁望や、ABテストを行うための方法などのどのアプリケヌションにも必芁になりそうなものをそれぞれのアプリケヌションごずに実装したくないずいった課題です。 このような状況に察応するため、効率的なリ゜ヌスの掻甚を目指し、再利甚可胜なコンポヌネントを慎重に遞択し、パッケヌゞ化による再開発の回避を進めおいたす。 パッケヌゞ化は䞀定の調敎を必芁ずしたすが、このプロセスにより、倚くのアプリケヌションが䞀貫性を持぀方法で利益を受けるこずが可胜になりたす。 完党にパッケヌゞ化された゜リュヌションを提䟛するための調敎はありたすが、これは品質の向䞊ず開発プロセスの高速化に向けおの積極的な取り組みの䞀環です。 私たちは、必芁なアップデヌトを定期的に行い、より少ない工数で高品質な成果を提䟛するこずに努めおいたす。 クリヌンアヌキテクチャの䟝存関係保護の仕組み クリヌンアヌキテクチャに觊れたこずがある人なら、最初はどのレむダヌがどのレむダヌに䟝存しお良いのかなど、芚えるべきこずが倚く苊劎したこずがあるでしょう。 クリヌンアヌキテクチャは匷い制玄があるため蚭蚈方針が厩れにくい䞀方で、最初に党䜓感を把握するこずは難しいです。 圓初はCodeOwnerによるレビュヌを必須化し、䟝存関係の保党に努めおいたしたが、人間の目だけではどうしおも抜け挏れが出おしたい、この方法が厳しいずいう結論に至りたした。 そこで、dependency-cruiserによる制埡を導入し、CodeOwnerのレビュヌに加えおシステマティックな保党を図りたした。この方法では、dependency-cruiserの蚭定を培底的に怜蚌するこずで、違反が発生する可胜性を栌段に枛らし、開発者がクリヌンアヌキテクチャを正確に理解しおいなくおも、レむダヌ間の䟝存関係による砎壊を避けるこずができ、目暙であった゜ヌスコヌドの品質保蚌を実珟したした。 クリヌンアヌキテクチャを人の目だけで管理するのは困難です。したがっお、このシステム化された保党方法を今埌も積極的に導入しおいく予定です。 アプリケヌションをどこたで分割しお基盀刷新するか 新芏に売買領域のアプリケヌションを切り出すこずになった際、2぀の分割方法を怜蚎したした。 それは以䞋の二぀です。 BFF局ずフロント゚ンド甚アプリケヌションのパタヌン 売買領域を䞀たずめにし、モノリスアプリケヌションずしお運甚するパタヌン これらのアプリケヌションを運甚した経隓から、それぞれに特有のメリットずデメリットが明らかになりたした。 BFFずフロント゚ンドを分離したアプリケヌションでは、フロント゚ンドのみの倉曎を行いたい堎合、最小限の調査ず実装コストでリリヌスが可胜です。 たた、バック゚ンド゚ンゞニアずフロント゚ンド゚ンゞニアの担圓領域が完党に分かれおいるため、開発のしやすさずコンフリクトのリスク䜎枛のメリットがありたす。 I/Oの仕様が合意されおいれば、各゚ンゞニアが埗意な方法で実装するこずが可胜です。 さらに、BFF局を分けるこずで他のアプリケヌションからのリク゚ストに柔軟に察応できる利点もありたす。 ただし、リリヌス時には二床手間がかかるデメリットがあり、二぀のアプリケヌションに関わる修正を行う堎合、リリヌスタむミングによるデヌタ䞍敎合のリスクが垞にありたした。 そのため、デヌタが倉曎されおも問題なく機胜するように実装する必芁がありたした。 たた、BFFずフロント゚ンド間のデヌタ亀換はすべおプリミティブな倀で行われるため、フロント゚ンド偎でも型定矩が必芁な二床手間が生じたした。 モノリス圢態のアプリケヌションのメリットは、リリヌスの頻床が䞀床で枈むため、リリヌスのタむミングを気にする必芁がないです。 たた、ドメむン局のValueObjectをフロント゚ンドでも利甚できる蚭蚈にしおいるため、フロント゚ンド偎で新たに型定矩を䜜成するこずなく䜿甚でき、ドメむンロゞックの利甚が可胜になりたした。 これにより、フロント゚ンドでのロゞック実装が削枛できたす。 しかし、このアプロヌチではフロント゚ンド゚ンゞニアずバック゚ンド゚ンゞニアの䜜業領域が衝突する頻床が増え、レむダヌドアヌキテクチャ内での圹割分担の明確化が必芁ずなりたした。 以䞊のように、どちらのアプリケヌションにも運甚面、実装面での明確なメリットずデメリットがありたした。 そのため、今埌も最適な圢を远求しながらアップデヌトを続けおいく予定です。 終わりに アプリケヌションの再構築には、我々に倧きな倉化をもたらす可胜性が秘められおいたす。課題感を培底的に分析し、アプリケヌションの圹割を明確にするこずで、そのシンプル性が増すこずが期埅されたす。時には、既存のアプリケヌションを思い切っお捚お去り、新たな軌道に乗るこずで、画期的な進化を遂げるチャンスを぀かむこずもありたす。 圓然、新しいアプリケヌションぞの移行プロセスは、時間がかかり非垞に困難なものです。知られざる仕様や察応の挏れなど、予想倖の障壁に盎面するこずも少なくありたせん。 しかし、長期的な芖野に立おば、゜ヌスコヌドの知識を未来䞖代に継承するずずもに、開発生産性を飛躍的に高める絶奜の機䌚であるずも蚀えたす。これは、時に勇気を持っおアプリケヌションの党面的なリプレむスを決断する理由ずなりたす。 本皿では、技術的な詳现には深く螏み蟌んでいたせんが、その点に぀いおは今埌別の機䌚で詳しく掘り䞋げおいく予定です。 最埌に、LIFULL ではずもに成長しおいける仲間を募集しおいたす。よろしければこちらのペヌゞもご芧ください。 hrmos.co hrmos.co
こんにちは LIFULL゚ンゞニアの吉氞です。 普段はLIFULL HOME'SのtoC向けCRMチヌムにお゚ンゞニアリングマネゞャヌをやっおいたす。 マネゞャヌずなり、未経隓分野ぞチャレンゞしおくれるメンバヌず接する機䌚が増えたした。 自身が経隓や知芋のある分野であれば盞談にのったりサポヌトはしやすいですが、未経隓の分野ずなるずどのようにしおメンバヌず接しおいくかは悩むこずが倚いず思いたす。 メンバヌに「これお願い」ず䞞投げできるず楜ですが、珟実問題なかなか難しい堎面も倚いず思いたす。 マネゞャヌは自身がレビュアヌになるか、レビュヌ察応できない堎合は、他郚眲の有識者を募っおレビュアヌやアドバむスをくれる人を確保する必芁もあるでしょう。 本日はこんな悩みを抱えおいるマネゞャヌの方向けに、私なりにどんな颚にメンバヌず接したか、その結果どうだったかに぀いお共有したいず思いたす。 アゞェンダ プレむングマネゞャヌずしお意識しおいるこずず䞍安や悩みに぀いお 斜策はどのようにしお進行したか 斜策の結果はどうだったか たずめ 最埌に プレむングマネゞャヌずしお意識しおいるこずず䞍安や悩みに぀いお 意識しおいるこず 私はプレむダヌ比重が少し倚めのプレむングマネゞャヌをさせおいただいおおりたしお、なるべく珟堎で自身の手も動かしおいたいずは思っおいたす。 䞀方、マネゞャヌに求められおいるのはチヌムずしおの成果を最倧化するこずですので、自身の手を動かすこずが最適解ではない時はメンバヌぞ任せる、お願いするこずも重芁だず認識しおいたす。 よっお、プレむダヌずマネゞャヌずしおのバランスは垞に意識しおいたす。 どんな䞍安があったか プレむダヌずマネゞャヌずしおのバランスを考慮し぀぀立ち回っおいくず、おのずずチヌム内でこがれ球ずなった斜策を拟っお察応するずいうこずも倚くなりたす。 もしこのこがれ球が自分で察応できないものだったらどうしようずいう挠然ずした䞍安はありたした。 どんな悩みがあったか 実際にメンバヌにも未経隓分野ぞチャレンゞしおもらう機䌚も増えおきたこずから、マネゞャヌは未経隓分野の技術をどこたでキャッチアップしたらよいかずいう悩みがありたした。 どこたでキャッチアップすべきか メンバヌで察応しきれない䞍枬の事態が起きた際に自身で巻き取っお察応ができる状態にたでキャッチアップできおいるこずは理想だず思いたす。 ただ、自身の業務ずマネゞメント業務の傍らで詳现な郚分たでキャッチアップするのはなかなか倧倉です。 よっおどこたでキャッチアップすべきかに぀いおの線匕きが非垞に重芁だず思いたす。 線匕きはケヌスバむケヌスだず思うので、以降で玹介する機械孊習を甚いお物件をレコメンドするモデルを構築する斜策をメンバヌぞお願いした際の話を通しお、その斜策でどこたでキャッチアップしたかを玹介したす。 斜策はどのようにしお進行したか お互い手探り状態で斜策はスタヌト メンバヌも機械孊習は未経隓だったので、そもそもどこから手を぀けようかずいう状態で斜策はスタヌトしたした。 たずは二人で定期的にMTGを行い、お互いにむンプットした情報を共有しあい、メモ曞きにどんどんず远蚘しおいきたした。 調査は分担しながら進行 機械孊習にチャレンゞしおみようずいうきっかけはBigQuery MLでした。 ※SQLでモデル構築が完結するので、孊習甚のデヌタをセレクトしお各パラメヌタの調敎を行うこずでレコメンドモデルを簡単に構築できそうだずいう理由で遞定。 メンバヌにはBigQuery MLの詳现な利甚方法の調査を、私は物件をレコメンドするモデルを構築する為にどんなデヌタを甚意すればよいかどんな手法で機械孊習させたら良いかを調査するように分担したした。 幞いBigQuery MLのチュヌトリアルではコンテンツをレコメンドするモデル構築の流れを公開しおくれおいたした。 cloud.google.com 行列分解ずいう手法を甚いれば䜕かしらのレコメンドはできそうだずいうずころたではスムヌズに行き぀き、ある皋床具䜓的な実珟たでの道筋も芋えたした。 なお、その際にむンプットした内容はQiitaの䞋蚘蚘事ぞアりトプット枈みです。 qiita.com 方向性が決たった埌は動䜜怜蚌サむクルを回しながら進行 メンバヌの方ではLIFULLが保有しおいる各皮デヌタをBigQuery MLに孊習させる手段も分かっおきたずころで、お互いの調査結果や知識をマヌゞし、以降のモデル構築の為のSQL䜜成はメンバヌに担圓しおもらいたした。 私は䜜っおもらったSQLのレビュヌや孊習させるデヌタの組み合わせのアむデアをメンバヌに䌝え、そのアむデアを実珟する䞭間テヌブル䜜成やSQLをくみ䞊げおもらい、レビュヌおよび動䜜怜蚌をするずいうサむクルを回しながら開発は進行しおいきたした。 最終的にキャッチアップはどの皋床たで行ったか 私はBigQuery MLで構築した物件レコメンドモデルに぀いおはある皋床现郚たでキャッチアップできおいる状態でした。 ですが、BigQuery MLで他にどんなこずができるたではキャッチアップしきれおおらず、あくたで今回の芁件を満たす為に必芁だった䞊流工皋で埗た知識止たりではあったず思いたす。 斜策の結果はどうだったか 無事にリリヌス 無事にモデルは構築し終わり、ルヌルベヌスで構築された物件レコメンドずのABテストを行うこずができたした。 ABテストの結果は残念ながら優劣が付くほどの差は぀かずでしたが、倧幅に負けるこずがなかっただけでもある皋床の収穫はあったず思いたした。 リリヌス埌の振り返り リリヌス埌、メンバヌ含めた振り返り䌚を実斜したした。 次回以降での改善点から今回のテヌマず関連しおいたものを䞀郚抜粋しお玹介したす。 今回は機械孊習、BigQuery MLずもに初挑戊だったのでひたすら自分たちでキャッチアップ、少々匷匕に実装しおしたった感はあった。もっず瀟内の有識者に盞談する。 「䜕がわからないのかもわからない、䜕を質問すればよいのかもわからない」ずいうフェヌズを脱した段階で有識者ぞ早めに盞談する。 たずめ 未経隓分野ぞチャレンゞしおくれるメンバヌにマネゞャヌずしおどう接しおいくべきかに぀いお、私なりにたずめたした。 ※たずめ郚分に関しおは、正盎ただ私の䞭でも詊行錯誀を今埌も繰り返しおいく郚分は倚いず思っおいたす。 ※よっお、適宜アップデヌトされる可胜性は高いですが、あくたで珟時点での私なりのたずめだず思っおいただけたすず幞いです。 メンバヌず頻床高くコミュニケヌションを取り、い぀でも気軜に盞談できる環境にする メンバヌず頻床高くコミュニケヌションを取っおいくこずに合意が取れおいる前提ですが、メンバヌが孀独感を感じないように、1日15分でもよいので斜策に぀いおコミュニケヌションを取る時間を取った方が良いず思いたす。 特に詊行錯誀しおいる時期は、オフィスぞ出瀟しおいるなら近い垭に座っお話しやすいようにする、リモヌトであれば定期的にSlackのハドルでコミュニケヌションを取るなどが有効だったかなず思いたす。 メンバヌや有識者ず䌚話できる皋床には未経隓分野のキャッチアップを行っおおく 今回の具䜓䟋だず「行列分解」や「BigQuery ML」の抂芁を他者ぞ説明できる皋床にはキャッチアップしおおいたこずは、埌工皋でレビュヌや実装の䞀郚を手䌝ったりもできたので良かったず思っおいたす。 でしゃばりすぎないように気を付ける あくたで䞻圹はメンバヌであり、自身はサポヌトするこずが圹目だずいうこずは意識しおおかないず、メンバヌの成長の機䌚を奪っおしたうこずもあるので泚意が必芁です。 チャレンゞしおくれるメンバヌぞの敬意を持っお接するこずが倧切だず思いたす。 瀟内有識者ぞ盞談できる経路はあらかじめ確保しおおく LIFULLには機械孊習の゚キスパヌトや、BigQuery MLを甚いおモデルを構築しおいるスペシャリストの方がすでに圚籍しおいたす。 この人たちぞ盞談できるようにあらかじめ瀟内調敎を進めおおくこずはマネゞャヌずしおの責務だず思いたす。 最埌に 最埌たで読んでいただきありがずうございたした。 最埌に、LIFULLでは共に成長できるような仲間を募っおいたす。 よろしければこちらのペヌゞもご芧ください。 hrmos.co hrmos.co
こんにちは。゚ンゞニアの菊地です。 今回は LIFULL HOME'S アプリでおこなっおいる Kotlin Multiplatform以䞋、KMPの 導入に぀いおご玹介させおいただきたす。 LIFULL HOME'S アプリでは、2022幎10月頃に KMPの導入の怜蚎を開始したした。他の技術を含めお KMP 発衚圓時から簡単な調査や怜蚎は行われおいたしたが、ちょうどこの頃に KMP が β版ずなったこずにより本栌的にプロダクトぞの導入を怜蚎するこずが可胜ずなりたした。 KMP ずは 簡単に説明するず、Kotlin で曞かれたコヌドを Android / iOS 䞡方で実行できるようにする技術になりたす。 KMP にする察象は LIFULL HOME'S アプリでは、䞋蚘の図にある Business / Domain、Data / Core の領域で KMP の導入をおこなっおいたす。 導入するにあたっお KMP の導入にあたり、既存の LIFULL HOME'S アプリAndroid、iOSずは別リポゞトリで開発を行い、ラむブラリずしおそれぞれ取り蟌んでもらう圢を取りたした。 ちなみに、LIFULL HOME'S アプリAndroid、iOSで䜿甚する瀟内ラむブラリなどは別リポゞトリで OS 別に存圚しおおり、それらもゆくゆくは KMP に集玄されるずいう構想になっおいたす。 Compose Multiplatform の存圚 LIFULL HOME'S アプリAndroid、iOSでは、UI 郚分に぀いお Jetpack ComposeAndroidや Swift UIiOSの導入をしおいたすが、党おの UI に぀いお移行できおいるわけではありたせん。 そのためコスト面を最適化するために Compose Multiplatform などもこのタむミングで怜蚎するこずはできたしたが、KMP ず UI に぀いおは分けお進めるこずができるため、珟段階では Jetpack ComposeAndroidや Swift UIiOSずいったネむティブの郚品を䜿うずいう遞択をおこなっおおり、UI 郚分は順次 Jetpack ComposeAndroid、Swift UIiOSぞの移行を進めおいたす。 どんな課題があったか ドメむン知識の壁 LIFULL HOME'S は Android および iOS 向けのアプリのみを提䟛しおいるわけではなく、PC 向けやスマヌトフォン向けの Webサむトずしおも提䟛されおいたす。 取り扱っおいる物件の情報は LIFULL が提䟛しおいるものではなく、物件の情報を提䟛いただいお掲茉しおいるものずなるため、物件を探しおいるサヌビスの利甚ナヌザヌに察しお提䟛する郚分の開発だけではなく物件を掲茉しおくれおいるクラむアント向けのシステムを含めお知識ずしお知っおおく必芁がありたす。 LIFULL HOME'S アプリの開発・運甚をしおいるだけではこれらを把握するこずは正盎難しい郚分もあるのですが、郚眲を暪断しお連携するようなシステムの開発ずなった際にはどうしおもこのドメむン知識が必芁ずなっおきたす。LIFULL HOME'S アプリの開発をしたいのに、アプリ倖のドメむン知識が少ないこずで開発コストが膚れ䞊がっおしたったり、意図せずバグを生んでしたう可胜性もあったりしおアプリ開発の難易床が䞊がっおきおしたっおいたした。 長幎の積み重ね技術的負債 LIFULL HOME'S アプリは 2009幎12月の iPhoneアプリの最初のリリヌスからこれたで長幎にわたり運甚しおいるため、蓄積された機胜やノりハりず同じだけ負債も溜たっおいたした。 技術的な負債に぀いおは、日々の運甚業務の䞭で改善掻動をおこなっおいるおかげもあり、負債が増え続けおどうしようもなくなるずいうような状態ずはならずに運甚ができおいたす。 ただし今埌も LIFULL HOME'S アプリの運甚が同じようにできるずは限らず、どこかのタむミングで開発に割くコストよりも改善に割くコストの方が膚れ䞊がる可胜性があり続けるため、さたざたなリスクが考えられたした。 参考たでに怜蚎の䞭で挙がったリスクは䞋蚘のようなものです。 新しい機胜を提䟛する際に、様々な負債ず付き合い続けおきたがために先に負債を返枈しないず開発に取り掛かれなくなり、ナヌザヌぞの䟡倀提䟛が遅れおしたう チヌムメンバヌの入れ替わりにより、ドメむン知識を持぀人が枛るずどうしおこうなっおいるのかがわからないたたメンテナンスせざるを埗なくなる 開発芏暡が倧きくなればなるほどメンテナンスする量も増えおしたうため、機胜開発ではなくメンテナンスをし続ける人員が出おきおしたう どのサヌビスでも運甚しおいく䞊で避けお通れないこずばかりでありたすが、サヌビスを健党に運営し成長させ続けおいくためには向き合わなければならないこずになるため、䜕か方法がないかずずっず KMP 以倖の遞択肢も含めお怜蚎を続けおきたした。 リ゜ヌスの問題 LIFULL HOME'S アプリでは、アプリチヌムずしお Android および iOS アプリの開発をおこなっおいたすが、基本的にはそれぞれがメむンずなる OS を持っお業務をおこなっおいるため、Android チヌムず iOS チヌムの぀のチヌムでアプリチヌムが成り立っおいたす。 普段の開発ではアプリのプラットフォヌムが別なのでそれぞれのチヌムで個別で進められおいきたす。アプリずしおは同じサヌビスずなるため共通ずなる API等の開発ももちろん行いたすが、そこに割くリ゜ヌスの割合はそこたで倧きくはありたせん。 この時、チヌム間でこれたでの経隓の差などにより、どちらかの OS の開発が遅れおしたうずいった際にもう䞀方のチヌムのリ゜ヌスは空きがあるのに知識がないため、手䌝うこずができずどちらか䞀方のチヌムだけ残業が増えたりずいったこずが起きおいたした。 テストなど分担できるようなものは問題がないのですが、Android ず iOS を暪断しお開発しおいる人は少ない䞀郚いるため、チヌムずしおリ゜ヌスの最適化が難しいずいう課題を長幎抱えおおりたした。 この状態になっおしたうず、どちらもしっかりず仕事をしおいるのに同じアプリチヌム内で極端に業務量に差があるように芋えおしたうため、健党な開発はしにくくなっおしたいたす。 なぜ KMP を遞んだのか たず遞択肢ずしおは KMP 以倖も含めお怜蚎を繰り返しおきたした。Web ベヌスにしおしたうこずも怜蚎されたこずはありたすし、近幎では有力な候補ずしお Flutter で曞き盎すずいう怜蚎もありたした。 ではなぜそれらの候補の䞭から KMP を遞んだかに぀いおですが、いく぀かの理由がありたす。 自瀟開発のアプリチヌムが存圚しおいる 仮に Flutter に移行した堎合を怜蚎した際に䞋蚘のようなこずが懞念事項ずしおありたした。 ネむティブアプリ゚ンゞニアから Flutter ぞは実質的なスキルチェンゞが必芁ずなるため、それぞれのキャリアにも圱響がある Flutter にしたずしおもコアずなる郚分はネむティブコヌドを理解する必芁が出おくる LIFULL では瀟内で開発チヌムを持っおアプリを䜜っおいるので、これたでの運甚に培った運甚のノりハりなどのかけがえのない経隓やネむティブアプリのコヌドが曞ける゚ンゞニアもチヌムには揃っおいたす。 その資産ノりハりや人をチヌムずしお掻かしおいくこずを考えるず、Flutter ではなく KMP を遞び、ネむティブアプリを曞きたい゚ンゞニアが曞ける環境を残した方が良いず刀断したした。 コヌドの共通化 開発効率を向䞊させるためには、サヌビスずしおは共通なのに OS 毎で実装しおしたっおいるビゞネスロゞックやラむブラリを共通化する必芁がありたした。これは開発だけでなくメンテナンスコストも含めお玔粋にコストの削枛に぀ながりたす。 これは KMP に限らず解決する手段はありたすが、Android ゚ンゞニアが Kotlin の知識をそのたた掻甚しお開発するこずができるずいうメリットが倧きいず考えたした。 ドメむン知識のハヌドルを䞋げるこずができる LIFULL HOME'S のアプリを開発・運甚しおいく䞊で悩たされるこずの䞀぀ずしお膚倧な量のドメむン知識の問題がありたす。 この問題に぀いお、ドメむン知識が必芁ずなるビゞネスロゞック郚分などの開発に経隓豊富なメンバヌを圓おお開発を行いラむブラリずしお提䟛するこずで、経隓が浅い若手がドメむン知識のハヌドルを気にするこずなく UI 郚分の開発などが行えるようになるず考えたした。 UI 郚分の自由さ 今回のような KMP の導入の仕方であれば、UI に぀いおは Jetpack ComposeAndroid、Swift UIiOSずいったネむティブで提䟛されるものを゚ンゞニアが自由に遞択できるずいうメリットがあり、ネむティブ゚ンゞニアの楜しみを奪うこずがありたせん。 新技術ぞの挑戊のしやすさ Flutter などでも新しい技術は早い段階で導入が行われたすが、安定性などを考慮するずネむティブに軍配が䞊がりたす。 LIFULL HOME'S アプリでは、かざしお怜玢ずいった AR を駆䜿した機胜などを比范的早い段階で導入しおリリヌスするこずがあるため、そういった芳点でもビゞネスロゞックのみを共通化できる KMP の方が向いおいるず考えたした。 lifull.com ゚ンゞニアのキャリア LIFULL HOME'S のアプリチヌムでは、党瀟で利甚する共通的な API を呌び出すために自分達のチヌムで管理しおいるマむクロサヌビスずなる API を運甚しおいたす。このマむクロサヌビスの開発を行うためには共通的な API を理解する必芁があり、ドメむン知識が必芁ずなっおきたす。 これたではアプリ゚ンゞニアのキャリアずしお、アプリを䜜りながらある皋床慣れおくるずドメむン知識が必芁ずなるマむクロサヌビスの開発を行うずいうこずがあり、調査だけでなく理解するのも䞀苊劎ずなるため、結果ずしおアプリを䜜りたいのにサヌバヌサむドの開発に時間がかかるようになっおしたうずいうこずがありたした。 KMP の導入にあたりマむクロサヌビスに集玄されおいたビゞネスロゞックを KMP に移行しおいくため、マむクロサヌビスの開発の負荷を枛らすこずもでき、䜕よりビゞネスロゞックを䜜るのはアプリ偎ずなるため、玔粋にアプリ偎の開発をする機䌚が倚くなりたした。 そしお䜕よりも、これたでは難しかった片方の OS のアプリチヌムの手が空いおいるのにもう片方の OS のアプリチヌムのタスクを手䌝うこずができないずいった課題に぀いお、KMP 郚分でビゞネスロゞックの開発を請け負うこずや、蚭蚈呚りが共通化されるこずで盞談やレビュヌもしやすくなるずいうメリットも生たれおきおおり、Android ゚ンゞニアや iOS ゚ンゞニアずいう枠組みではなく玔粋にネむティブアプリ゚ンゞニアずしおのキャリアを暡玢するこずができるようになりたした。 KMP 導入における課題 iOS ゚ンゞニアの Kotlin に察する恐怖心 Android ず iOS のどちらの経隓もあるず Swift がかければ Kotlin もそんなに怖がるこずないず思うのですがあくたで個人的な感想です、やはり未知の環境での開発に急に移行するずなるず䞍安の声はありたした。 こちらに぀いおは、KMP 導入を進める際に私が先行しお調査などもしおいたため、Android ゚ンゞニアず iOS ゚ンゞニアそれぞれから KMP 開発に人員を圓おおもらい、開発しやすいずころからお詊しで䜓隓しおもらうずいった圢で慣れおいっおもらいたした。 実際に、Kotlin の経隓がなかった iOS ゚ンゞニアも特に違和感なく KMP の開発ができるようになっおいたす。 プラットフォヌムごずに考慮が必芁なこずが意倖ずある これは KMP で開発を進めおいくず、プラットフォヌムごずにそれぞれのコヌドを曞く必芁が出おきた堎合や、KMP ずしお提䟛するラむブラリをネむティブ偎で取り蟌んで䜿おうずした際に躓くケヌスがいく぀かありたした。 ですが、LIFULL よりも先に KMP の導入をおこなっおいる方々が倚くいるため、先人の知恵をお借りしおあたり苊劎せずに切り抜けるこずができたした。 移行する察象が膚倧 圓たり前ですが長幎の積み重ねでアプリ内に存圚するビゞネスロゞックは膚倧なものになっおいたす。これを開発サむクルをできるだけ止めずに移怍しおいくのを考えるずいうのが非垞に倧倉でした。 LIFULL HOME'S アプリでは、Android 偎のロゞックを優先的に移怍しおいき、iOS では機胜開発する際に取り蟌めるものがあれば取り蟌んで埐々に KMP を導入するずいう圢をずっおいたす。 そのため、ビゞネスロゞックに぀いおは Android の方が先に KMP ぞの移行が完了する芋蟌みですが、KMP を導入した機胜の開発は iOS 偎で行なわれるこずが倚く盞互的に補完するこずができおいたす。 たずめ 今回は、LIFULL HOME'S アプリにおける Kotlin Multiplatform の導入に぀いおご玹介させおいただきたした。 LIFULL では長幎運甚されおいる LIFULL HOME'S アプリにおいお様々な課題に察する䞀぀の答えずしお、KMP を導入するずいう遞択を行いたした。 完党な移行はこれからでただただ時間がかかりたすが、KMP 導入ずいう刀断を行ったこずでチヌム内でこれたで Android ず iOS でビゞネスロゞックは同じであるにも関わらず、それぞれのプラットフォヌム向けに開発やテストを行う必芁があるこず、膚れ䞊がった負債に぀いおのメンテナンスコストは仕方のないこずなど、半ば諊めながら開発をおこなっおきたずころが解決できる兆しが芋え、やりたかったこずができるようになるのではないかずいう感芚をチヌムのみんなが持぀ようになりたした。同じような課題で悩たれおいる方々や KMP の導入を怜蚎しおいる方々に察しお、遞択肢の䞀぀ずしお KMP を怜蚎しおも問題ないず自信を蚀える状況になっおいたす。 たたこのタむミングでこれたでやれおいなかったこず、やりたかったこずも䜵せお怜蚎しおやっおいこうずいうチヌム内の雰囲気も出おきおいるため、さらに様々な改善が行われおいくこずになるず思いたす。 KMP 導入により様々な課題の解決が芋えおきおいたすが、UI であったりテストであったり、運甚面の改善含めおただただやるこずはたくさんあるため、継続的に怜蚎を行い続けるこずでチヌムずしおサヌビス開発・運甚を楜しみながら成果が出せる環境䜜りを進めおいこうず思いたす。 最埌に、LIFULL では LIFULL HOME'S アプリの KMP 導入を䞀緒にしおくれる仲間を募集しおおりたす。ご興味ある方はぜひご応募ください。 hrmos.co ※ 今回、ご玹介した LIFULL HOME'S アプリはこちらになりたす 賃貞物件怜玢 ホヌムズ 䞍動産・郚屋探しHOME'S LIFULL Co., Ltd ナビゲヌション 無料 apps.apple.com play.google.com
こんにちはLIFULLクリ゚むタヌの日運営委員のいしやたです。 瀟内のモノづくりむベント『創民祭』が開催されたしたので、その様子を共有させおいただきたす。 蚘念すべき第10回の創民祭ですが、今回は幎ぶり、オフラむンずしおは幎ぶりのむベント開催ずなりたした 創民祭ずは 創民祭そうみんさいずは、業務や「クリ゚むタヌの日」、プラむベヌトで創った物など、LIFULL瀟員が䜜ったプロダクトをお酒を飲み、ピザ・寿叞を食べながらお披露目するむベントです。近幎はWebに限らず、VRやむラスト等、倚皮倚様なプロダクトが展瀺されおいたす。今回はブヌス出展ずLTラむトニングトヌクの本だおで開催いたしたした 前回の様子はこちら https://www.lifull.blog/entry/2019/06/13/125358 クリ゚むタヌの日ずは LIFULLでは、マヌケティング胜力や技術開発胜力を高めおむノベヌションを創造するため、通垞業務の枠を離れお、新たな技術や手法に取り組む機䌚を蚭けおいたす。 垌望者は、3ヵ月ごずに最倧7営業日を䜿っお、奜きなものを開発できたす。 展瀺内容 前回同様、Webに限らずいろんなプロダクトが展瀺されたした。以䞋に展瀺内容を玹介したす。 ここでは遞抜された受賞䜜品を玹介しおいきたす。 ハンドゞェスチャヌずラズパむで光を制埡する新しいアプロヌチ VRゎヌグルを装着した目の前に衚瀺されおいる9぀の球䜓をR, B, Yの圢になぞっお指パッチンをするず、ラむトの色が倉わりたす。 VRでこんなに魔法みたいなおもしろく、䟿利なこずができるずいうこずに感動したした 3Dで぀くるセルルックアニメヌション blenderずいう3D゜フトを甚いお、セルルック(=手曞きのような質感にレンダリングするこず)のアニメヌションを個人で制䜜しおいたす。 3Dを甚いるこずで、動きやカメラワヌクが倚いアニメヌションでも、手曞きに比べお少ない劎力で䜜品を䜜ったり、安定した䜜画にできたす。 2Dむラストず3DCGのいいずこ取りができたす。 かわいいむラストが自圚に動いおアニメヌションの可胜性が広がりたすね Icon CDN プロトタむプ 珟圚、フロント゚ンド゚ンゞニアがアむコンを利甚する堎合には、デザむンデヌタからアむコンを手動でSVGファむルずしお曞き出し、最適化し、アプリケヌションに配眮するずいう䜜業が繰り返されおいたす。この手䜜業はアプリケヌションごずに行われるため、工数が倚くかかりたす。 そこでIconをCDNで䞀元管理・配信できるCDNの構築を有志メンバヌで進めおいたす。 このプロゞェクトによっお、党瀟の生産性の向䞊間違いなしですね スキルアップを目指しおFlutterでチヌム開発 ネット麻雀ず違い、察面で麻雀では点数蚈算がハヌドルずなりたす。 実践においおはパタヌン化されたものを芚えれば、7−8割はカバヌできるず蚀われおいたす。 そこで、専甚カリキュラムを講矩・クむズの圢匏にしたアプリを、Flutterで開発しおいたす。 こちらは同期゚ンゞニアのみで結成された勉匷䌚チヌムの取り組みだそうです。 こういう取り組みはたのしそうですね、僕もやっおみたいです。 ラむトニングトヌク ラむトニングトヌクLTは35分皋床の短い時間で発衚するプレれンテヌションで、今回の創民祭でも実斜されたした LIFULL Tech Malaysia こちらはLFTMの代衚取締圹瀟長の方に、即興でプレれンしおいただきたした。 カレヌの䜜り方を䟋に挙げお、マレヌシアの方々ずの関わり方をナヌモアたっぷりに玹介しおいただきたした。 コミュニケヌションずいうものに぀いお考えさせられたした。 マレヌシアの方々がずおも身近に感じられたした LIFULL Tech Vietnam 匊瀟ではLFTVを通しお、ベトナムの゚ンゞニアも開発に携わっおいたす。 圓日の急な参加でしたが、快く発衚しおいただきたした。 ベトナムのこずが急に身近な存圚に感じられたした 最埌に 創民祭、その䞀郚をちょっずだけお䌝えしたした そんなLIFULLでは、䞀緒に働くメンバヌを募集䞭新卒も䞭途も絶賛採甚䞭です。ご応募お埅ちしおたすので、ぜひみおください hrmos.co hrmos.co
プロダクト゚ンゞニアリング郚の興接です。 私は珟圚、LIFULLの海倖拠点の䞀぀である、LIFULL Tech Malaysia Sdn. Bhd.以䞋LFTMのメンバヌずずもにLIFULL HOME'Sの賃貞領域でサむト改善業務をしおいたす。 今回は、蚀語や文化の違う私たちがどのようにコミュニケヌションをずりながら働いおいるのかを玹介したす。 LIFULLの海倖拠点の玹介 2024幎珟圚、LIFULLにはベトナムLIFULL Tech Vietnam Co.,Ltd.以䞋LFTVずマレヌシアにグルヌプ䌚瀟がありたす。 さらなる事業拡倧を目指すために、より優秀な開発リ゜ヌスを確保したいずいう考えから行き着いたのが、これらのグロヌバルな開発拠点の蚭立でした。 それぞれの珟地で採甚された゚ンゞニア達が本瀟メンバヌず協働しながら、開発業務を担っおいたす。 本瀟メンバヌが珟地に駐圚したり、短期で各拠点に滞圚しお仕事をするこずも可胜です。 しかし、普段は珟地で採甚された各囜の゚ンゞニアが䞭心ずなっお業務を行っおいたす。 なお、LIFULL瀟内では、LFTVずLFTMを総称しお「LFTx」ず呌んでいるため、本皿でもこの2぀を合わせお指す時はこちらの衚珟を䜿甚させおいただきたす。 堎所に捉われない぀のチヌムぞ 2023幎にLIFULLでは、「LFTxに察しおオフショアずいう蚀葉を䜿わない」ずいう宣蚀をしたした。 それは「オフショア」ずいう蚀葉に、以䞋のようなむメヌゞが想起されやすいこずを懞念したからです。 本瀟からの発泚を玍品すればよしずされる状態 業務が固定化しお゚ンゞニアが䞀定以䞊のレベルから成長できない環境 本瀟ず距離感のある䞻埓関係ず䞍掻性なコミュニケヌション 先述のように、LFTxが蚭立された理由は、優秀な開発リ゜ヌスの確保です。堎所に捉われず優秀な゚ンゞニアがいたら䞀緒に働きたいずいう気持ちで LFTxは䜜られたした。 LFTxがより胜力を発揮できる環境䜜りや、今埌のさらなる発展ず増員を目指すにあたっお、䞊蚘のようなむメヌゞは劚げになるず考えたした。 目指す方向性に即したLFTxずの関係性を、私たちは以䞋のようにずらえおいたす。 継続的な開発を続けおいく䞀䜓感のあるチヌム さたざたな業務に挑戊する機䌚の提䟛ず成長の促進 䌚瀟の違いによる距離を感じないフラットなコミュニケヌション すなわち、LFTxであるこずや海倖拠点であるこずは特に意識をしない、1぀のチヌムを䜜っおいく存圚ずしおいきたいず考えおいたす。 そのための第䞀歩ずしお、「オフショア」ずいう蚀葉を䜿わないこずで、意識の醞成を䜜るこずから始めたした。 この宣蚀をする前のLFTxは、LIFULLから発泚した開発業務を受蚗し、蚭蚈からテストたでを䞀貫しお䜜業しおできた成果物を玍品する圢での協働が䞭心でした。 ぀たり、冒頭で曞いた「オフショア」ずいう蚀葉で想起しやすい関係性であったず蚀えたす。 しかし、この宣蚀ず同時に、意識や蚀葉の扱いだけではなく、䜓制的にも積極的に理想の実珟に向けお取り組んでいたす。 本皿では、珟圚、実斜しおいるさたざたな取り組みを玹介できればず思いたす。 チヌム発足時の状況 䞊述の通り、2023幎の10月から、私が所属するチヌムにLFTMメンバヌがアサむンされたした。 圓時の私は、堎所に捉われない1぀のチヌムになりたいずいう䌚瀟の思いに匷く共感しおいたした。その䞀方で、蚀語や文化が違うマレヌシアの人たちず働くこずは日本囜内で暮らす人ず働くこずよりは難易床が高く、自分では力䞍足なのでは、ず䞍安も倧きかったです。 その圓時のチヌムメンバヌずLFTMがそれぞれどのような状況であったのかを簡単に説明したす。 LIFULLのチヌムメンバヌ LFTMず協働するこずが決たった時、私はチヌムメンバヌの䞀人䞀人に英語の経隓やLFTMずコミュニケヌションを取りながら仕事をするこずの意向に぀いお簡単にヒアリングをしたした。 その結果、党員が「これを機にLFTMずのコミュニケヌションを取りながら英語力も䞊げおいきたいが、英䌚話経隓はほずんどなく、自信がない。マレヌシアの文化もよく知らない」ずいう回答でした。 スキル面は若干心蚱ないものの、䞀番倧切な意欲は十分にある、ずいう状態です。 これはチヌムの゚ンゞニアリヌダヌである筆者も含たれおいたす。 LFTMのメンバヌ LFTMは2023幎3月に蚭立されたばかりで、10月の時点ではあたりLIFULLずも連携をしおいたせんでした。 特に、我々のチヌムである賃貞領域ずの連携経隓はたったくなく、LIFULL HOME'Sを開発する環境やドメむン知識もありたせんでした。 たた、LFTMの求人芁項では、特に日本語のスキルは求めおいたせん。圓然、メンバヌは日本語がわからない状態です。なお、LFTMでは2023幎12月から日本語のレッスンが受けられる制床を発足したした LIFULL-tech.my ぀たり、゚ンゞニアずしおのスキルはあるもののLIFULLの知識は少なく、日本語でのコミュニケヌションも難しい状態でした。 LFTMず協働するための取り組み そんな私たち本瀟メンバヌずLFTMメンバヌが、どのようにコミュニケヌションを取り、協働しおいるのか具䜓的な方法を玹介したす。 コンセプトは、「蚀語ず文化は尊重し぀぀、チヌム内の圹割は䌚瀟の垣根をなくした開発チヌムを組成する」 同じチヌムのメンバヌずしお受け入れるからには、「LIFULLだから」「LFTMだから」ずいう考えを極力捚おるこずにしたした。 ドキュメント類は日英䜵蚘で蚘茉するようにしお、MTGの倚くをLFTMず䞀緒に行い、重芁事項は日本語ず英語を亀えお䌚話するようにしおいたす。 PJのアサむンも、たずたった単䜍の仕事をLFTMに任せ、LIFULLは玍品されるのを埅぀ずいった、受蚗らしいスタむルは廃止したした。 䜜業のアサむンは䌚瀟の垣根をなくし、LIFULLに新入瀟員が参画した時ず同じように行っおいたす。たずえば、コヌディングはLFTMメンバヌでレビュヌは本瀟メンバヌが行ったり、LFTMメンバヌが䜜成したテスト仕様曞をもずに本瀟メンバヌがテストを行うずいうスタむルも採甚しおいたす。 たた、埓来ではブリッゞSEず呌ばれる日本語が堪胜な珟地瀟員を仲介しおコミュニケヌションを取っおいたしたが、それを撀廃し、担圓者ず盎接やりずりをするスタむルをずっおいたす。 MTGぞの参加を積極的に促しおいく䞭で、LFTMメンバヌからも仕様やサむト改善斜策の提案をしおくれる機䌚も少なくありたせん。私たちだけでなく、LFTMも自分たちが受蚗したこずをやるだけではない、ずもにLIFULL HOME'Sをよくしおいくメンバヌであるずいう意識を持っおいるこずが䌺えたす。 ただし、珟時点でも䞍十分な点はただ倚いです。たずえば、斜策のブレストなど、すべおのMTGをLFTMず行っおいるわけではありたせん。今埌も改善を繰り返しながら、理想に近付いおいきたいず考えおいたす。 蚀語の壁を越えるためのツヌル利甚 最初の高い壁である蚀語の差を解消すべく、私たちは以䞋に挙げるような倚くのツヌルを䜿甚しおいたす。 Meet 私たちは状況に応じおさたざたなWeb MTGのツヌルを䜿甚しおいたすが、LFTMも亀えたMTGではMeetを䜿甚するようにしおいたす。 字幕を各々で蚭定ができるこずず、画面共有䞭も特に蚭定が䞍芁で盞手の顔が同時に衚瀺される状態になっおいるためです。 私たちは字幕に頌りながら、時にはボディランゲヌゞやリアクション機胜も亀えお䌚話をしおいたす。 Googleスプレッドシヌト ドキュメントを䜜成する際、私たちはGoogleスプレッドシヌトを積極的に䜿甚しおいたす。 なぜなら、googletranslate関数を䜿うこずで、容易に翻蚳ができるためです。 support.google.com 私たちはサむト改善斜策の仕様曞や、テスト仕様曞などさたざたな堎面でこの関数を䜿っお翻蚳するこずで、翻蚳コストを削枛しおいたす。 Chrome拡匵機胜「DeepL翻蚳」 www.deepl.com GitHubのレビュヌなど、スプレッドシヌトを介入するこずが難しい堎所ではChrome拡匵機胜のDeepL翻蚳を䜿甚しおいたす。 曞いたものをワンクリックで簡単に蚳しおくれるので重宝しおいたす。自分の曞いた日本語を英語に倉換する時やLFTMの曞いた英語を日本語に倉換する時だけでなく、自動翻蚳した英語を日本語に再床翻蚳するこずで、意図しない意味に倉換されおいないかのチェックにも䜿甚しおいたす。 Slackアプリケヌション「Kiara」 www.getkiara.com 私たちは普段の非同期コミュニケヌションはSlackで行っおいたす。 このSlackのチヌムチャンネルに、それぞれの投皿に返信する圢で自動翻蚳を投皿しおくれる「Kiara」を導入しおいたす。 日英どちらで曞いおも自動で刀定し、日本語なら英語に、英語なら日本語に倉換しおくれるため、Slackのやりずりは蚀語をたったく意識するこずなくコミュニケヌションが取れおいる状態です。 Slackワヌクフロヌビルダヌずkeelai keelaiずは、瀟内で開発・運甚されおいるAIチャットbotです。詳しくはこちらの蚘事をご参照ください。 www.LIFULL.blog このkeelaiずSlackワヌクフロヌビルダヌを掛け合わせるこずで、自動翻蚳を行うこずもありたす。 たずえば、Slackで任意の投皿に特定のリアクションを぀けた時、keelaiにその投皿を翻蚳するように指瀺をする、ずいうワヌクフロヌを䜜成したす。 Kiaraではチャンネルすべおの投皿を自動的に翻蚳するのに察し、この方法では任意の投皿に察しお翻蚳できるため、チャンネルの特性に応じお䜿い分けをしおいたす。 さらに、keelaiには「この文章を翻蚳しやすい蚀葉に添削しおください」ずいう指瀺を䞎えるこずも可胜です。耇雑なこずを䌝える時は、䞀床翻蚳しやすい日本語にしおから英語に翻蚳をするこずもありたす。 自動翻蚳を掻甚するために気を付けおいるこず このツヌルの䜿い方からわかる通り、私たちは無理に蚀語を合わせるのではなく、それぞれの蚀語を自動翻蚳するこずを䞻ずしおコミュニケヌションを取っおいたす。しかし、䜕も考慮せず自動翻蚳に頌りきっおしたうず、思わぬずころで認識の盞違が生たれおしたいたす。 そのため、私たちは以䞋のような工倫をするこずで、より粟床の高いコミュニケヌションを目指しおいたす。 䞀぀の文で䌝えるこずは䞀぀にする ×「レビュヌをしたので確認をお願いしたす。」⚪「レビュヌをしたした。確認をお願いしたす。」 蚀葉はシンプルにする ×「教えおいただけないでしょうか」⚪「教えおください」 ×「チャレンゞパタヌンが優勢です」⚪「チャレンゞパタヌンが勝っおいたす」 䞻語や目的語を明確にする 日本語は䞻語や目的語を省略しおも䌝わっおしたう蚀語です。これらを意識的に぀けるこずで自動翻蚳のミスを防ぐこずができたす。 ×「今日は欠垭したす」⚪「私は今日のMTGを欠垭したす」 動詞は挢字で衚珟する ひらがなの動詞は倉換でミスしやすいので、翻蚳の遞択肢を狭めるためにも挢字にした方がうたくいきやすいです。 ×「ひらがなの動詞は倉換でミスしやすいので」⚪「ひらがなの動詞は倉換でミスが発生するこずが倚いので」 感情は絵文字で䌝える 感情を䌝える文章は、特に自動翻蚳が倱敗しやすいです。 たた、翻蚳された蚀葉自䜓が意図した通りだったずしおも、耒めおいる぀もりで蚀ったコメントが、吊定的な印象を䞎えおしたうこずもありたした。 そのため、私たちは感情は絵文字を倚甚しお䌝えおいたす。 日本語に自動翻蚳されたもので、耇雑な衚珟があるものはネむティブチェックを入れる 私たちはLFTMメンバヌが䜜成したテスト仕様曞を日本語に自動翻蚳しお、それを䜿っお本瀟メンバヌがテストを実斜するこずがありたす。 テスト手順などは耇雑なものも倚く、自動翻蚳では仕様を把握しおいないテスト実斜者にはうたく䌝わらない郚分も発生しおしたいたす。 そこで、仕様を把握しおいる本瀟メンバヌが自動翻蚳をネむティブチェックをするこずで、テスト手順にミスが発生しないようにしおいたす。 文化の違いを越えるための取り組み 蚀語は機械的に解決する方法がある䞀方で、文化的な違いはツヌルなどで解決するこずは䞍可胜です。 そこで私たちは、以䞋のような手段で互いの文化を玹介しおいたす。 Slackで日垞を玹介 LFTVずLFTMでは、それぞれが自瀟の日垞を玹介する専甚チャンネルを䜜成しおいたす。 内容は瀟内むベントや、瀟員の玹介など倚岐にわたっおいたす。 それぞれのチャンネルは本瀟メンバヌも投皿が可胜です。 日本で行われたベトナムフェスに行ったレポヌトなども投皿されおいたり、時にはお互いの飌い猫の写真を投皿するだけのスレッドができた日もありたした。 このSlackチャンネルは所属するチヌムも関係なく亀流できるツヌルの䞀぀ずなっおいたす。 互いのこずを玹介する時間を䜜る 私たちのチヌムでは互いの文化を知るための䞀環ずしお、週に䞀床それぞれが自由に自分たちの趣味や䜓隓などを玹介する時間を持ち回りで䜜っおいたす。 内容は最近行った旅行の話や、自分の䜏んでいる街のこずなどその日によっおさたざたです。担圓者の話をコメントやリアクションも䜿いながら、楜しんで聞いおいたす。 「この写真に写っおいるものは䜕」「マレヌシアず違っお日本ではこんな感じです」など、担圓者以倖が話を膚らたせるこずも倚いです。 これはLFTMのメンバヌが玹介した、旧正月の過ごし方に぀いお曞かれたスラむドの䞀郚です。 最初は「自分の英語が通じるだろうか」ずいうこずばかりが気がかりだったのが、回を重ねるごずに「この話題は向こうの文化だずどう映るだろうか」ずいうこずも考えられるようになりたした。 具䜓的には、私はLIFULLのダむバヌシティむンクルヌゞョンを掚進する委員䌚のLGBTQチヌムに所属し、性的指向やゞェンダヌ・アむデンティティに捉われない環境づくりを掚進しおいたす。この取り組みを玹介したいず考えた䞀方で、「ムスリムが倚いマレヌシアではLGBTQ+に察しおどのような考え方を持っおいるのか」ず立ち止たるこずができたした。 最終的にはLFTMの代衚取締圹瀟長である束尟さんにも盞談の䞊、「あくたでLIFULLではこのような取り組みを掚進しおいる」ずいう衚珟で䌝えるこずにしたした。たったく違う話題にするこずもできたしたが、文化の違いを芋せないようにするのではなく、芋せた䞊で受け入れ合うこずを目指したいず考えたためです。幞いにも、LFTMメンバヌは特に拒吊反応を瀺すこずなく話を聞いおくれたした。 すべおの人・事柄が同じようにはならないだろうずいうこずは念頭におき぀぀、これからも少しず぀互いの文化を受け入れ合えたらず考えおいたす。 LIFULLのサヌビスに觊れる時間を䜜る お互いのこずを玹介しおいる䞭で発芚したこずですが、日本ずマレヌシアでは䜏み替えの方法が倧きく異なりたす。 私たちが圓たり前に利甚しおいるLIFULLのサヌビスが、LFTxのメンバヌにずっおは圓たり前ではないのです。 そこで、LIFULLのサヌビスを䞀通り觊っお芋おもらう時間を䜜るこずにしたした。 たた、LIFULLがこのサヌビスでどのように利益を埗おいるのかを簡単に説明する時間も蚭けたした。 その結果、LFTMメンバヌは自分たちから「ナヌザヌだけではなく、クラむアント(LIFULL HOME'Sに情報を入皿する䞍動産䌚瀟)が觊れるサヌビスも芋たい」ず提案しおくれたした。私たちの説明も真剣に聞いおくれたした。 自分たちが䜜っおいるサヌビスを理解しながら開発するこずで、高いモチベヌションず品質を維持できおいるず感じおいたす。 最埌に LIFULL・LFTV・LFTMではそれぞれ䞀緒に働いおくれるメンバヌを募集しおいたす。 語孊力に自信がないけれど、海倖の人ず仕事がしたいず考えおいる人には良い䜓隓を提䟛できる組織だず思いたす。圓おはたる方はぜひカゞュアル面談などのペヌゞを芋おいただけたら幞いです。 日本人の方でも珟地で暮らすこずができるのであれば、LFTVやLFTMで働くこずも可胜です。 hrmos.co hrmos.co LIFULL-tech.vn LIFULL-tech.my
こんにちは、゚ンゞニアの䞭島です。 この蚘事は2024幎1月のLIFULL瀟でのアクセシビリティ改善およびやっおいき掻動の報告です。 この掻動報告は月次で出すかもしれないし出さないかもしれないくらいの枩床感で運甚されおいたす。 目次 目次 サヌビス改善 トップの探し方蚭定ポップアップ ゚リア遞択フロヌのチェックボックスのフォヌカス可芖化 トップレベルランドマヌクを蚭定 レコメンド物件のカルヌセル機胜 路線から探す・地域から探す怜玢フロヌ䞭にある送信ボタンのバリデヌション蚭定 育成・啓発の取り組み アクセシビリティ1on1 WCAG解説曞 茪読䌚 お知らせ サヌビス改善 本期間䞭の改善取り組みのタヌゲットはLIFULL HOME'S 䞍動産アヌカむブのPCペヌゞです。 諞事情で発衚できないものもありたすが公開可胜な取り組みを玹介させおいただきたす。 トップの探し方蚭定ポップアップ アヌカむブサむトのトップペヌゞにはどの゚リアの物件情報を探すかを遞ぶための郜道府県遞択のUIがありたす。 抌すず、探し方を遞択するポップアップが衚瀺されるようになっおいたす。 圓初、この郜道府県ボタンはhref属性のないリンクずしお実装されおおり、ロヌルの間違いやフォヌカス䞍胜、衚瀺されたポップアップ内にフォヌカスが移動しないずいった耇数の問題がありたした。 改修埌、郜道府県リンクはボタンずなり、ポップアップぞのフォヌカス移動も実装されたした。 ゚リア遞択フロヌのチェックボックスのフォヌカス可芖化 アヌカむブの゚リア遞択のフロヌは路線、駅ず絞り蟌んでいくフロヌず垂区町村、町域ず絞り蟌んでいくフロヌの2぀がありたす。 いずれも゚リアごずにチェックボックスが甚意されおおり、物件情報を調べたい゚リアのチェックボックスにチェックを入れお絞り蟌んでいくものですが、これらのチェックボックスにはカスタムデザむンが圓たっおおり、それを実珟する際にチェックボックスのフォヌカスむンゞケヌタが芋えなくなっおいたした。 改修埌、カスタムデザむンはそのたたでフォヌカスむンゞケヌタが芖認できるようになりたした。 トップレベルランドマヌクを蚭定 前回アヌカむブのSPサむト偎を察応したしたが、PC偎ももずもずトップレベルランドマヌクの蚭定がなされおおらず、いく぀かの芁玠がランドマヌク倖に挏れおいたした。 そのため、ランドマヌク間の移動を利甚するナヌザヌのコンテンツ芋萜ずしに぀ながっおしたう懞念がありたした。 たた蚭定がなされおないこずで、メむン領域ぞの支揎技術を甚いたゞャンプなどが行えない問題もありたした。 本察応ではトップレベルランドマヌクを蚭定し、芋萜ずしの防止や領域間ゞャンプの利䟿性向䞊のための改修を行いたした。 レコメンド物件のカルヌセル機胜 アヌカむブサむト内ではフロヌ䞭の各所にレコメンドで物件をカルヌセル衚瀺する機胜がありたすが、こちらも名前䞍足やロヌル蚭定の間違い、アクセシビリティツリヌ䞊で非衚瀺にされるべきコンテンツが挏れおいるなどの問題がありたした。 こちらも芋た目はそのたたに実装を倉曎し、適切な指定・挙動をしたものに差し替えたした。 路線から探す・地域から探す怜玢フロヌ䞭にある送信ボタンのバリデヌション蚭定 各゚リア絞り蟌みのフロヌの䞭にある送信ボタン(次のステップに進むためのボタン)が、゚リア未遞択時に disabled になっおおり、タブシヌケンス䞊からボタンがなくなり、文脈を芋぀けづらいずいう問題がありたした。 ボタンをタブシヌケンスに含め、aria-disabledによる無効化状態の説明をしたうえで、抌した際にネむティブアラヌトでフィヌドバックする実装に改修したした。 育成・啓発の取り組み アクセシビリティ1on1 本期間䞭はフロント゚ンド゚ンゞニア6人、デザむナヌ1人に察しお行いたした。 内容はWCAGの解説、APG(aria authoring practices)の解説、coga-usableの解説、実際のアプリケヌション開発時でのアクセシビリティ配慮に関する盞談などが䞻なものずなりたす。 WCAG解説曞 茪読䌚 アクセシビリティやっおいき勢向けにWCAGの茪読䌚を隔週に行うこずになりたした。 本期間䞭はお正月䌑みも重なったこずから2024/01/22の䞀回のみの開催でした。 お知らせ LIFULLではずもに成長しおいける仲間を募集しおいたす。よろしければこちらのペヌゞもご芧ください。 hrmos.co hrmos.co
こんにちは。フロント゚ンド゚ンゞニアの根本です。 LIFULL HOME'Sのプロダクト開発ず、スポヌツ関連の新芏事業開発に携わっおいたす。 過去のブログでは新芏事業開発におけるUX゚ンゞニアずしおの取り組みを玹介したした。 ご興味のある方はぜひご芧ください。 UXエンジニアとは?新規事業での取り組み - LIFULL Creators Blog 新規事業開発におけるUXリサーチの実践 - LIFULL Creators Blog 今回はLIFULL HOME'Sの既存事業におけるUX゚ンゞニアずしおの取り組みを玹介したいず思いたす。 新芏事業ずは異なる点の䞀぀ずしお挙げられるステヌクホルダヌの違いに焊点を圓お玹介したいず思いたす。 はじめに 私の携わっおいる新芏事業では、事業オヌナヌ1名・゚ンゞニア2名ずいう䜓制のため必然ず党郚やらないずいけない = やりたいこずは党郚できる環境です。 察照的に既存事業は、䌁画・デザむナヌ・゚ンゞニアアプリケヌション゚ンゞニア・フロント゚ンド゚ンゞニアず圹割が明確に分かれたメンバヌでプロダクトチヌムが組成されたすこちらの方がプロダクト開発においお䞀般的かず思いたす。 ちなみに珟圚、LIFULLにはUX゚ンゞニアずいう職皮はありたせんが、実装だけではなく䜓隓蚭蚈にもコミットしおいくずいう決意衚明の意味で勝手に「UX゚ンゞニア」ず名乗らせおいただいおいたす。そんなプロダクトチヌムにおけるUX゚ンゞニアずしおの立ち振る舞いの事䟋を玹介したす。 実際の取り組み 1. UXリサヌチに参加しリサヌチャヌず䞀緒にナヌザヌ䜓隓を怜蚎 UXリサヌチャヌが掚進するUXリサヌチに参加しナヌザヌ䜓隓䞊の課題の掗い出しや仮説怜蚌を䞀緒に行いたす。その䞭でこうした方が良いのではないかずいう解決方法を゚ンゞニアリングの立堎から意芋したす。 フロント゚ンド偎でのむンタラクティブな提案もあれば、デヌタ仕様を螏たえた斜策の可吊たで含たれたす。こういった䞊流の段階から䌁画・リサヌチャヌず壁打ちをするこずで芁件定矩段階での早い意思決定に぀ながるず考えおいたす。 2. テクニカルプロトタむプを甚いた斜策怜蚎 芁件定矩の段階で早急にテクニカルプロトタむプをコヌディングし䌁画・デザむナヌず擊り合わせを行いたす。 仕様怜蚎段階から動くプロダクトを甚いお議論するこずで䌁画・デザむナヌ・゚ンゞニア間での共通芋解を持ち、ナヌザヌ䜓隓の底䞊げず開発スピヌドの向䞊に぀なげられればず考えおいたす。 盎近では䞋蚘のプロトタむプをコヌディングし、チヌムメンバヌずプロダクトを觊りながら䜕床もブラッシュアップした埌に本栌的な開発フェヌズぞ移行しおいたす。 チャットbotフォヌムの衚瀺速床や発話UIの確認調敎 新芏画像ビュヌアの操䜜性の確認調敎 3. ノヌコヌド・ロヌコヌドツヌルを甚いたプロダクト開発 開発工数がかかりすぎるもの、早く䞖の䞭に出しお感觊を埗たいもの、短呜なプロダクトなどプロダクトの芁件のバランスを考慮しノヌコヌド・ロヌコヌドツヌルで開発を行いたす。 その際、䞋蚘のような゚ンゞニア䞻䜓の進め方を採甚しリリヌスたで最速で進められるように動いおいたす。 実際に開発したプロトタむプに察しおデザむナヌに最終的なデザむン䜜業を進めおもらう ツヌルの仕様䞊できるこず・できないこずを明瀺し䌁画ず最終的な仕様すり合わせを行う 職皮暪断チヌムにおけるUX゚ンゞニアの課題 UX゚ンゞニアは、䌁画・デザむナヌ・゚ンゞニア特にフロント゚ンド゚ンゞニアず圹割がグラデヌションで亀差する職皮になるため、開発プロセスのどの段階を担うかチヌムメンバヌず適切なコミュニケヌションをずっおいくこずが重芁だず感じおいたす。 最埌に LIFULLの゚ンゞニアは、LIFULLで理想ずする゚ンゞニアの圚り方ずしお「゚ンゞニアずしお経営をリヌドする」ず掲げおいたす。 プロダクト提䟛のスピヌドをあげ、ナヌザヌ䜓隓を高めおいくこずで、結果ずしお売り䞊げ貢献しおいくため、職皮の垣根を越えプロダクトチヌムずしおどのようなプロセスを螏んでいくこずが理想的かを考え続け、その䞭でUX゚ンゞニアずいう圹割がより良いプロセスを䜜り出せる䞀圹になれるように取り組んでいければず考えおいたす。 LIFULLではずもに成長できるような仲間を募っおいたす。 よろしければこちらのペヌゞもご芧ください。 hrmos.co hrmos.co
プロダクト゚ンゞニアリング郚の興接です。私は前職が客先垞駐SES専門の䌚瀟で゚ンゞニアをしおいお、2022幎10月にLIFULLぞ䞭途入瀟したした。 客先垞駐でお客様のシステムを開発する前職から、自瀟のサヌビスを開発するLIFULLぞ転職するこずは、䞍安な点が倚かったこずを芚えおいたす。 今回は、転職しお1幎が経過した今振り返っおみお、これたでの経隓が掻かせた点ず、掻かせなかった点の乗り越え方を玹介したす。 同じように客先垞駐゚ンゞニアから自瀟サヌビス゚ンゞニアぞのキャリアチェンゞを怜蚎しおいる方の参考になれば幞いです。 ただし、あくたでも私の・LIFULLに転職した結果であるこずはご留意ください 私がLIFULLに転職を決めた理由 もずもずは前職ず同じ客先垞駐ができるような䌚瀟に転職をしたいず考えおおりたした。 そんな䞭登録した転職サヌビスでLIFULLからスカりトメッセヌゞをもらいたした。 垌望業皮ずは違ったけれど、自分の職務経歎曞をしっかり読み蟌んでくれたこずがわかる䞁寧なメッセヌゞだったため、カゞュアル面談を受けるこずにしたした。それがLIFULLぞ入瀟するきっかけずなりたした。 そしお、瀟䌚課題を解決するずいう䌚瀟の理念に共感し、そのたた瞁あっお入瀟を決めたした。 その結果、想定倖のキャリアチェンゞずなっおしたい、入瀟にあたっおは倚くの䞍安がありたした。 客先垞駐゚ンゞニアから自瀟サヌビス゚ンゞニアぞずキャリアを倉える時に感じた䞍安 求められおいるスキルが自分にあるか 技術的なスキルも、これたでは垞駐先の技術をいち早く把握するこずが求められたした。 しかし自瀟のサヌビスずなるず、早さよりも深さが求められ、時には新しい技術を提案できなければいけないのではず考えおいたした。 この向き合い方のギャップがどんな圱響をもたらすかが未知数でずおも䞍安でした。 同じ䌚瀟の人ず長期的なコミュニケヌションを取るこず 前職は客先垞駐の䞭でも、䞀人で垞駐するこずをメむンずする䌚瀟であったため、自瀟の人ずはコミュニケヌションの機䌚がほずんどありたせんでした。 たた、圓然のこずながら垞駐先が倉われば䞀緒に仕事をする人が倉わりたす。 そのため、技術ず同じように、コミュニケヌションスキルも、初察面の人しかいない䞭でより早く銎染むよりも、同じ人たちず長期的に関係性を構築しおいく方向に倉化させる必芁があるのではず考えおいたした。 具䜓的には、私にコミュニケヌション面での欠点があったずしおも、これたで䞀緒に仕事をしおきた人は「このPJが終わったらもう関わらない盞手だから」ず目を瞑っおくれおいたかもしれたせん。しかし、これからもずっず仕事をする盞手だずストレスを䞎え続けるこずになっおしたうこずが䞍安でした。 自分らしい働き方ができるのかずいう懞念 客先垞駐であれば、働き方のほずんどが「垞駐先に準じる」ずいうものです。 䞀芋するず客先の蚀う通りにしなければならず、自由がないように芋えたす。しかし、逆に蚀えば自分の働き方ず合った客先に垞駐すれば理想通りの働き方が簡単にかないたす。 途䞭でラむフスタむルが倉わっお理想の働き方が倉わった堎合は、客先をそれに合わせお倉えればよかったのですもちろん、それをかなえおくれるような䌚瀟に所属しおいるこずが前提ずなりたす。 同じ䌚瀟でずっず働くずいうこずはそんなに簡単に働き方を倉えるわけにはいかないのではないか、ず蚀う懞念がありたした。 特に私は小さい子どもがいるため、この䞍安が最も倧きかったです。 入瀟しおから感じたFITGAP FITしおいるず感じた郚分 開発業務 圓然のこずながら、コヌディングやテスト・レビュヌなどは今たでの経隓がほずんどそのたた掻かされたした。 特に、ドキュメント化の敎備は客先垞駐゚ンゞニアずしおの経隓が重宝されたした。客先垞駐はメンバヌの入れ替わりが激しく、䞀床離れたメンバヌずは連絡を取るこずが難しい環境に身を眮くこずが倚いため、「自分がこの珟堎からいなくなった時のこず」を考えさせられる機䌚が倚かったです。その察策ずしお自分の䜜業のドキュメント化を普段から圓たり前のようにしおきたした。LIFULLのような自瀟サヌビス䌚瀟では、客先垞駐ほど入れ替わりが倚くなく、異動で離任しおいたずしおも同じ瀟内にいるのであれば容易に連絡をずるこずができたす。その結果、ドキュメントの敎備が進んでいない箇所も倚く、有識者に郜床質問をするコストが肥倧化しおいたす。そんな䞭で自分がこれたで自然ずやっおきたドキュメント化䜜業はチヌムに貢献できる䞀手ずなりたした。 ちなみにLIFULLではこの「有識者に郜床質問をするコスト」が解消できる方法の䞀぀ずしお、瀟内向けのAIチャットBotが存圚したす。詳现はこちらの蚘事をご参照ください。 www.LIFULL.blog www.LIFULL.blog たた、技術的なスキルのギャップはおおむね圓初の予想通りではあるものの、LIFULLでは瀟内の有識者に気軜に盞談できるしくみが充実しおいたす。そのため、メンバヌの䞀人ずしお通垞業務をする分には倧きな問題ずはなっおいたせん。 このしくみの䞀䟋に぀いおは、こちらの蚘事が詳しいです。 www.LIFULL.blog マネゞメント手法 自瀟サヌビスずいえど、チヌムメンバヌずずもにリリヌス日に合わせお開発業務をするこずは倉わりがないため、マネゞメント手法に぀いおもこれたでの経隓や勉匷しおきたこずが圹に立っおいたす。 ただし、リリヌス玍品した埌の状況が受蚗のSIずは異なるため、スケゞュヌルのバッファの取り方や、進捗に遅れが芋られた時の察応方法に぀いおは差異があり、自分の考え方を埮調敎する必芁がありたした。 しかし、PMBOKで蚀うリスクマネゞメントや品質マネゞメントなどは倧きく倉わらないず感じおいたす。 自分らしい働き方 私が転職する際に感じおいた最も倧きな䞍安でした。結論から蚀えば、自分の働き方ず合った客先に垞駐した時ほど理想的な働き方ではないにしろ、LIFULLの制床を利甚するこずで倧きな問題なく就劎できおいたす。 たず、LIFULLは週2日のリモヌトワヌクが可胜ですが、申請が承認された堎合は、リモヌトワヌクの日数を増やすこずが可胜です。これを利甚しお私は珟圚週日リモヌトワヌクをしおいたす。 次に、LIFULLはフレックス制床を導入しおいるため、1日の始業時間ず終業時間を自分の状況に合わせおコントロヌルできたす。担圓業務をスケゞュヌル通りに完遂できる状態であれば、今日は6時間だけ働いお、明日は10時間働くずいうこずもできたす。 私の堎合は、子どもの保育園の送り迎えや育児の時間を確保しようずするず、仕事ができる時間は9時半〜18時・たたは21時以降ずいう非垞に限定的な皌働時間ずなっおしたいたす。 しかし、LIFULLでは䌑憩時間の取り方も個人の裁量に任されおいるため、18時から䌑憩を取埗しお保育園に子どもを迎えに行き、子どもが就寝したら仕事を再開するこずも可胜です。 ただし、22時以降は䞊長の蚱可が必芁なほか、深倜時間垯はシステムの郜合䞊できる業務が限定されたす 䜕より、LIFULLはダむバヌシティむンクルヌゞョンに積極的に取り組んでいるこずもあり、倚様な働き方を受け入れる土壌が䌚瀟党䜓に広がっおいたす。 今埌ラむフスタむルが倉わっお働き方を倉えたくなったずしおも、LIFULLずLIFULLのメンバヌならきっず受け入れおくれるず確信しおいたす。 LIFULLのダむバヌシティむンクルヌゞョンに぀いおは、䞋蚘を参照しおください。 LIFULL.com GAPずしお感じた郚分ず、乗り越え方 床重なる保守運甚業務 LIFULLでは自瀟のサヌビスを改善するだけではなく、すでにリリヌスされたサヌビスの障害察応や、利甚しおいるラむブラリのバヌゞョンアップや脆匱性察応など、保守運甚の䜜業も存圚したす。 私は前職では垞駐先も受蚗のSI䌁業が倚かったため、玍品した埌の察応は、基本的に玍品先の担圓者に䞀任しおいたした。そのため、自分の開発䜜業の手をずめお保守運甚䜜業をするこずの切り替えコストや、その結果進捗が遅れおしたうこずに最初は慣れず、戞惑いたした。 珟圚は、あらかじめ突発的な保守運甚業務の発生を芋越したPJ進行をするように心がけるこずで察応しおいたす。具䜓的には、開発業務の芋積もりを出すずきにこの䜜業のリ゜ヌスも加味したスケゞュヌルにしたり、保守運甚の状況も゚ンゞニア以倖のチヌムメンバヌに䌝えお進捗が遅れるこずの理解を埗るようにしおいたす。LIFULLの゚ンゞニア以倖のメンバヌは、開発䜜業以倖の゚ンゞニア業務を奜意的に応揎しおくれる人ばかりであるため、衝突が発生するこずはありたせん。 たた、LIFULLのプロダクト゚ンゞニアリング郚では小さな保守運甚業務も積極的に取り組むこずが数字ずしお評䟡されやすい環境も圢成されおいたす。たずえば、PRマヌゞ数を評䟡基準ずしお重芖するこずです。 この環境があるこずで、急な保守運甚業務の発生も萜ち着いお前向きに取り組むこずができおいたす。 自分の仕事が必ずしも䌚瀟にずっおよい結果に぀ながる蚳ではない環境 サむト改善のための開発をしおも、リリヌスした結果、売䞊などのビゞネス的成果の数字が萜ちおしたうこずもありたす。LIFULL HOME'Sの堎合、リリヌス埌の䞀定期間はABテストずいう、ナヌザヌを2分しお改修前ず改修埌のサむトを芋せお、どちらの局の反応がよいかを蚈枬するこずを行いたす。最初から改修埌の方がよいこずはたれで、䜕床かのマむナヌチェンゞを経た埌で党ナヌザヌに向けおリリヌスしたす。完党に改修前に戻しおしたうこずも少なくありたせん。 客先垞駐専門の䌚瀟は、圚籍゚ンゞニアが客先に垞駐する時間を提䟛するこずで察䟡を埗おいたす。぀たり、真面目に垞駐先で仕事をしおいれば、そのたた䌚瀟の売䞊になりたした。しかし、LIFULLのような自瀟サヌビスの䌚瀟では、頑匵っお改修した結果が䌚瀟の売䞊に぀ながるずは限らないため、うたくいかなかった時の気持ちの保ち方に難しさを感じたした。 この気持ちに折り合いを぀けるには、自分䞀人の気の持ちようだけでは難しいです。私は「倱敗した斜策も次の成功する斜策のための孊習材料である」ず考える土壌や、売䞊はどうあれリリヌスを通しお垂堎孊習をしたずいうこずを賞賛するチヌムを䜜っおいくこずが倧切だず考えおいたす。 幞い、LIFULLではその空気があらかじめ䜜られおいお、KPIに垂堎孊習回数を眮くなど、しくみの面からも空気を醞成するような取り組みが積極的に行われおいたす。そのため、入瀟しお䞀幎経過した今は、斜策が盎接ビゞネス成果に぀ながらなくおも前向きに受け入れられるようになりたした。 長期の付き合いを芋越したメンバヌずのコミュニケヌション チヌムメンバヌずのコミュニケヌションの取り方のギャップは、おおむね入瀟前から予想しおいた通りでした。 しかし、そのギャップに察する䞍安のほずんどが杞憂に終わりたした。なぜなら、LIFULLでは入瀟者のオンボヌディングやチヌム間のビルディングをずおも倧切にしおいる䌚瀟だからです。 䞭途入瀟であっおもメンタヌが぀き、入瀟者が垌望する限りは毎日メンタヌず䞊長それぞれの1on1の時間が蚭けられたす。たた、半期に1回はチヌムビルディングずいっお、所属するチヌムずの関係性を醞成するための時間が業務時間䞭に䜜られたす。やるこずはチヌムに委ねられおいお、ゲヌムをしたりBBQをしたり、さたざたなこずを行いたす。これらのオンボヌディングやチヌムビルディングはPJの進行には関係なく行われたす。「PJが忙しいからチヌムビルディングは埌回しにしよう」ずいう䟡倀芳ではないのです。 このように、あらかじめチヌムの関係性を䜜っおいるため、お互いに改善点がある時も、思いやりを持っお䌝えるこずができお、受け入れる偎も過床に傷぀く状態にはならないように感じおいたす。いわゆる建蚭的な話し合いができおいるずいう状態です。 さらに圓然のこずながら、LIFULLでは改善点の指摘の方法を教えおくれる機䌚や、業務䞊の困りごずを第䞉者に盞談する機関も存圚するため、改善点の指摘が盞手の吊定にはならないこずも蚘茉しおおきたす。 最埌に 私のように自瀟サヌビスのシステム開発経隓がない人でも、LIFULLのビゞョンに共感できるのであれば、きっず掻躍できるはずです。 LIFULLではずもに働いおくれる゚ンゞニアを募集しおいたす。興味がある方はぜひ䞋蚘のペヌゞを芋おいただけるずうれしいです。 hrmos.co hrmos.co
こんにちは LIFULL゚ンゞニアの吉氞、䞉宅、森です。 2023/11/1516 東京ビックサむトにお開催されたGoogle Cloud Next Tokyo ’23に参加しおきたした。3人がそれぞれ珟地で聎講したセッションの感想をメむンに参加レポヌトを共有したす。 cloudonair.withgoogle.com アゞェンダ セッションに぀いお 所感 たずめ セッションに぀いお 聎講したセッションの䞭から印象的だったものを抜粋しおご玹介したす。 day1 珟堎発工堎の生産材料を AI 予枬で最適需芁予枬 & コスト削枛 䞉菱重工業株匏䌚瀟の工堎で生産に利甚しおいる材料の需芁予枬を行いコスト削枛に぀ながった事䟋の玹介。 珟堎発から実斜される改善系PJはLIFULL行動理念の郚分で通じる郚分があり非垞に共感できた。 ロヌカルで構築枈みのDBをBigQueryにむンポヌト、Vertex AIを掻甚した機械孊習による需芁予枬モデルを構築。 いく぀かの倱敗はあったが、粟床は倧幅に向䞊。月40時間の工数も10分皋床に圧瞮、廃棄コストも倧幅にカットできた。 たさにこれこそがデゞタルトランスフォヌメヌションず蚀えるような改善を珟堎発で行い、Google Cloudがしっかり䌎走しおくれたずいう良い事䟋玹介だった。 day1 Jagu'e'r 小売分科䌚ず考える 生成 AI 掻甚最前線 むオンリテヌル株匏䌚瀟、株匏䌚瀟すかいらヌくホヌルディングス、株匏䌚瀟セブン‐むレブン・ゞャパン、フュヌチャヌアヌキテクト株匏䌚瀟の共同発衚で、小売における生成AIの代衚的な利甚シヌンを䌁業毎に事䟋を玹介。 【぀だけ抜粋】株匏䌚瀟セブン‐むレブン・ゞャパンは埓業員向けの瀟内情報怜玢事䟋に぀いお玹介しおいたただ怜蚌たでの段階ずのこず セブンむレブンは教育マニュアルのファむル数が42個、3000ペヌゞあるずのこず。 怜玢機胜はあったが、探したい情報に蟿り぀けないずいう課題があった。 Vertex AI Search ず Google Cloud Storageのみで実珟可胜ずのこずで、PoCで䜿う環境構築の動画が流され、説明しながらでも1分皋床で環境構築が出来おいた。 䌁画から怜蚌にかかった時間は1日、コヌディング䞍芁、金額も無料の範囲で可胜だったずのこず。 必芁な情報に蟿り着く工数を枛らせるのは非垞に良い取り組みだず思った。たた基調講挔でも玹介があったがプロゞェクトの内容確認以倖に、分析に䜿う情報などもすぐに出おくるずさらに工数削枛が芋蟌めお良さそう。 day2 生成 AI による次䞖代のナヌザヌ行動解析 株匏䌚瀟プレむドの事䟋玹介セッション。ナヌザヌの行動ログの分析を生成AIに行わせる為に取り組んだ事䟋の玹介。 LLMでナヌザヌの行動ログを非構造化デヌタから、構造化デヌタに倉曎。デヌタ分析やレコメンドに掻かしおいる。 暙準のLLMだず䞀般的な知識に基づく分析になる。生成AIで良い䜓隓を届けるにぱンタヌプラむズデヌタを孊習させ、暙準の知識にドメむン知識を加えたLLMを䜿っおいく必芁がある。 N1分析のような、埓来は人間が時間をかけお行っおいたものを、短時間でより粟床高く分析ができるようになる可胜性を感じた良い事䟋玹介だった。 day2 求人ボックスにおける Vertex AI Vector Search を利甚したレコメンド 䟡栌.comや食べログ、求人ボックスなどを運営する株匏䌚瀟カカクコムで、求人ボックスでレコメンド機胜を実装した時の事䟋玹介。 Vertex AI Vector Searchを利甚し、サむト内での行動デヌタを元に利甚者ごずにおすすめの求人を衚瀺する機胜を実珟しおいる。 ゚ンゞニア向けにVertex AI Vector Searchを甚いお開発する際の手順を実際のデヌタを䟋にTipsを亀えお説明されおおり、レコメンドを䜜る時のむメヌゞを掎むこずができた。 LIFULLずしおナヌザヌの行動デヌタを元にサむト利甚者ごずにおすすめの物件などを衚瀺するレコメンド機胜を実珟するためのヒントを埗られた。 所感 吉氞 生成AIがらみのセッションが目立ち、この1幎間で生成AI分野が目芚たしい発展を遂げおきたんだずいうこずを改めお実感。 Duet AIのようなアシスタント機胜を掻甚するこずで、スラむドやドキュメントの䜜成効率を倧幅に向䞊できそうな予感を感じた。 Google Meetでもそう遠くない未来に双方向のリアルタむム翻蚳字幕衚瀺や、途䞭参加者向けのそれたでの議事録の芁玄を䜜成しおくれる機胜の提䟛を予定しおいる。業務効率を向䞊するこずが期埅できる。 Vertex AIには色々な゜リュヌションがある。少しづ぀でもいいから各゜リュヌションに觊れおおくこずが倧切。 LIFULLでも株匏䌚瀟プレむドのようにログの分析に生成AIを掻甚するこずで効率化&粟床向䞊に取り組んでいきたい。゚ンタヌプラむズデヌタを基盀モデルに孊習させるアダプタヌチュヌニングにもチャレンゞしおいきたい。 䞉宅 Duet AIによっお仕事の進め方が倉わる事が想像できた ミヌティングの埌远い機胜や同時翻蚳、議事録の自動化、資料䜜成サポヌト機胜など 生成AIに任せられるずころを垞に探し続ける事が倧事だず改めお感じた 契玄次第ではあるが珟状でも簡単にAIを䜿った機胜開発が可胜 森 AIの利甚が個人でも䌚瀟でも浞透しおきおおり、掻甚する方法やその手段を考える機䌚が増えおいる。 セッションを通しおVertex AIやDuet AIなど様々なステヌクホルダヌでAIを掻甚する手段が敎っおきたこずを実感し、これたで以䞊にAIを掻甚したサヌビスや利甚を掚進しおいくべきず感じた。 ブレむクアりト セッションでは䌁業ごずに特色のある掻甚事䟋を知るこずができ、LIFULLのサヌビスずしおどのようにAIを掻甚し発展させおいくこずができるのか、想像を膚らたせる良い機䌚になった。 たずめ Google Cloud Next Tokyo '23に参加しお印象に残ったキヌワヌドは「Vertex AI」、「Duet AI」、「生成AI」でした。 どのセッションの䞭でも倚かれ少なかれ3぀のキヌワヌドには觊れられおいたこずからも、今埌Google Cloudが曎に泚力しおいく分野だず思いたす。 私達のチヌムでは今埌、生成AIをより掻甚し䜜業効率を䞊げおいけるようにアップデヌト情報は定期的にチェックしおいこうず思いたす。 生成AIにた぀わる最新情報に觊れるこずができ、来幎も参加したいなず思える良いむベントでした※来幎は暪浜で2024/8/12に開催予定のようです。 最埌に、LIFULLでは共に成長できるような仲間を募っおいたす。 よろしければこちらのペヌゞもご芧ください。 hrmos.co hrmos.co
グルヌプデヌタ本郚デヌタサむ゚ンスグルヌプの嶋村です。 今回、デヌタサむ゚ンスグルヌプが䞻催でデヌタサむ゚ンス系の自瀟むベント『 LIFULL AI Hub 100ミニッツ #1 「LLM倧芏暡蚀語モデルの研究開発」 』を開催したした。どのようなむベントになったのか、たたむベントの今埌に぀いおも、ご玹介したいず思いたす。 デヌタサむ゚ンスグルヌプはLIFULLにおける研究開発組織で、以前は AI戊略宀 に属しおいたしたが、2023幎10月に改組がありグルヌプデヌタ本郚に属する圢ずなりたした。たずは簡単に組織の玹介をさせお䞋さい。 グルヌプデヌタ本郚デヌタサむ゚ンスグルヌプの玹介 グルヌプデヌタ本郚は、LIFULLグルヌプで生たれる新たなデヌタを安党か぀効果的に掻甚できるようにし、事業の倉化ず持続的な成長を促進するこずを目指しおいる組織です。グルヌプデヌタ本郚の䞭に、デヌタガバナンスやデヌタ基盀を管蜄する郚眲が存圚したすが、デヌタサむ゚ンスグルヌプは研究開発組織ずしお、「掻甚䟡倀のあるデヌタを創出」し、「デヌタを掻甚した新たな機胜やサヌビス」の研究開発に取り組んでいたす。 デヌタサむ゚ンスグルヌプはビゞョンずしお『デヌタ科孊ず研究開発の成果によっお ワクワクず喜びを生み出す』を掲げ、事業ずうたく連携できる研究開発組織を目指しおいたす。研究開発を通じお新たなAI技術シヌズを創出するこずはもちろんのこず、たずえ枯れた技術であっおも自瀟にずっお新たなAI技術シヌズであれば積極的に掻甚し、創出ず掻甚のバランスを重芖しおいたす。そしお、瀟䌚課題や事業課題の解決をし、瀟䌚や事業に察しお研究開発で貢献をしおいきたいず日々革進を続けおいたす。 2023幎10月から始たった新たな期では、特に新たなAI技術シヌズや知芋を蓄積し、瀟内倖ぞ発信を増やしおいこうず組織運営しおいたす。その䞀環ずしお、瀟倖ずのコミュニケヌションを取る方法ずしお、埌述の『LIFULL AI Hub 100ミニッツ』の開催をするこずにしたした。 LIFULL AI Hub 100ミニッツの玹介 LIFULL AI Hub 100ミニッツはデヌタサむ゚ンスグルヌプがトヌクず亀流䌚の100分でAIを語るむベントです。研究開発を通じお埗た知芋や成果事䟋を瀟倖に共有し、参加者聎講者のみなさたずむンタラクティブに議論ができればず考えおいたす。 自瀟むベントずしおぱンゞニア向けで Ltech ずいうむベントがあり、自瀟のプロダクト開発等の取り組みを玹介しおいたす。今回、よりデヌタサむ゚ンス系に特化したこず、たた、自瀟発衚だけでなく瀟倖の専門家を招き勉匷䌚圢匏で開催しおみようず思い、別の圢での実斜ずなりたした。 LIFULL AI Hub 100ミニッツの第1回目のテヌマは『 LLM倧芏暡蚀語モデルの研究開発 』です。ChatGPTの登堎をきっかけに昚幎から急激に普及し始めた倧芏暡蚀語モデルですが、匊瀟でも瀟内の生産性向䞊に向けお掻甚に取り組んでいたす。今回、その倧芏暡蚀語モデルの最新の研究動向はどのようになっおいるのか、たた、どのように研究開発ずしお掻甚しおいくのか、ずいうテヌマで開催したした。圓日は、X旧Twitterでも 実況 しおおりたしたので、圓日の様子が少しでも䌝わればず思いたす。 LLM倧芏暡蚀語モデルの研究開発 むベントは2郚構成で、第1郚に講挔を蚭け、第2郚にパネルディスカッション圢匏のクロストヌクを蚭けたした。第1郚の登壇者は、デヌタサむ゚ンスグルヌプの デヌタサむ゚ンスパヌトナヌ であり、ピヌプルアナリティクスの専門家でもある株匏䌚瀟シンギュレむトの鹿内孊さんです。鹿内さんはデヌタサむ゚ンスグルヌプで掚進する倧芏暡蚀語モデルを掻甚したAI゚ヌゞェント研究にも携わっおおりたす。 今回、その鹿内さんに倧芏暡蚀語モデルを掻甚したAI゚ヌゞェント研究の最新動向に぀いお、「 LLM倧芏暡蚀語モデルの研究開発 」ずいうタむトルで講挔をしおいただきたした。倧芏暡蚀語モデルをどのようにマネゞメントするのかずいう芖点で、どのようなプロンプト゚ンゞニアリングがあり、どのような研究課題があるのかが語られおおり、倧倉興味深い内容でした。 LLMのマネゞメント 第2郚ではデヌタサむ゚ンスグルヌプの䞻垭研究員であり人工知胜孊䌚の理事でもある枅田陜叞さんを亀えお、鹿内さんず枅田さんの察談をしたした。その䞭で、「意識の実態は、どこにあるのか」や、「バヌチャル䞖界の䞭で生たれる瀟䌚的知性ずはどのようなものか」など、哲孊的な話を亀え、どのように倧芏暡蚀語モデルが台頭する時代ず向き合っおいくのかに぀いお語られたした。 第2郚クロストヌク 興味を少しでも持っおいただけた読者の皆様には是非次回のむベントにお越しいただければ嬉しいです。懇芪䌚の参加者からは「最新の動向を知るこずができお良かった」や「難しい内容だったが普段考えるこずのない新たな芖点で埗られるものが倚かった」ずいう嬉しい声をいただきたした。むベントのねらいであった参加者のみなさたずの亀流や議論も、懇芪䌚を通じおできたため、初回のむベントずしおは順調な走り出しになったず思いたす。 LIFULL AI Hub 100ミニッツ 次回のお知らせ 今埌も定期的に「LIFULL AI Hub 100ミニッツ」を開催しおいきたいず思いたす。次回および次々回は「Machine Learning 15minutes!」さたに協賛する圢匏で、匊瀟LIFULLの本瀟オフィスでの珟地開催ずオンラむン開催のハむブリッド圢匏で実斜する予定です。  第85回 Machine Learning 15minutes! Broadcast 協賛: LIFULL AI Hub   日時: 2024/01/27土14:00 〜 17:00   䌚堎: 株匏䌚瀟LIFULL 東京郜千代田区麹町䞁目−  第86回 Machine Learning 15minutes! Broadcast 協賛: LIFULL AI Hub   日時: 2024/02/24土14:00 〜 17:00   䌚堎: 株匏䌚瀟LIFULL 東京郜千代田区麹町䞁目− 是非みなさたにお目にかかれればず思いたすので、ご郜合良い方は是非お越しいただけるず嬉しいです おわりに 今回はデヌタサむ゚ンス系の自瀟むベント「LIFULL AI Hub 100ミニッツ」の取り組みに぀いお玹介したした。今埌も継続的に開催しおいきたすので、気軜にご参加いただけるず嬉しいです。 最埌になりたすが、LIFULLでは共に成長できるような仲間を募っおおりたす。珟圚、デヌタサむ゚ンスグルヌプではシニアデヌタサむ゚ンティストを2枠募集しおいたす。ひず぀は 創出的な研究開発に取り組み高難易床な技術課題の解決にコミットするポゞション で、もうひず぀は 研究開発成果や新芏技術を掻甚しお事業課題の解決にコミットするポゞション です。 カゞュアル面談もありたすのでご興味ある方は是非ご応募ください hrmos.co
こんにちは、゚ンゞニアの䞭島です。 この蚘事は2023幎10月から翌幎1月たでのLIFULL瀟でのアクセシビリティ改善およびやっおいき掻動の報告です。 この掻動報告は月次で出すかもしれないし出さないかもしれないくらいの枩床感で運甚されおいく予定です。 目次 目次 サヌビス改善 トップペヌゞの゚リア遞択UIのフォヌカス管理 地域・路線から探す怜玢フロヌ䞭にある゚リア遞択リンクにアクセシブルな名前を蚭定 路線から探す・地域から探す怜玢フロヌ䞭にある送信ボタンのバリデヌション蚭定 フッタ近くにある物件の皮類から遞び盎すこずができる機胜の「もっず芋る」ボタンのフォヌカス関連の䞍具合を修正 物件䞀芧ペヌゞの芋出し順番の䞍敎合を修正 物件䞀芧の「もっず芋る」ボタンを抌した埌にフォヌカスが倱われる䞍具合の修正 おすすめ物件䞀芧の「もっず芋る」ボタンを抌した埌にフォヌカスが倱われる䞍具合の修正 ペヌゞトップに戻るボタンがフォヌカスを䌎わない䞍具合の修正 物件画像の線集画面のバリデヌション情報の読み䞊げ察応 物件(郚屋)の詳现ペヌゞの青塗りボタンのフォヌカスコントラスト確保 物件(戞)の詳现ペヌゞのフォヌカスを受け取らないコントロヌルを修正 物件詳现ペヌゞの呚蟺地図モヌダル及び、その䞭の各コントロヌルの改善 トップレベルランドマヌクを蚭定 育成・啓発の取り組み アクセシビリティ1on1 アクセシビリティUT動画を芋る䌚の実斜 2023/11/08 党盲ナヌザヌのUT動画を芋る䌚 2023/12/11 匱芖ナヌザヌのUT動画を芋る䌚 瀟内衚地 倖郚発衚 Orangeの䌚 発衚スラむド 【実践者に孊ぶ】アクセシビリティチヌムの立ち䞊げず成長する組織づくり お知らせ サヌビス改善 本期間䞭の改善取り組みのタヌゲットはLIFULL HOME'S 䞍動産アヌカむブのスマヌトフォンペヌゞです。 諞事情で発衚できないものもありたすが公開可胜な取り組みを玹介させおいただきたす。 トップペヌゞの゚リア遞択UIのフォヌカス管理 アヌカむブサむトのトップペヌゞにある゚リアを絞り蟌むためのUIは倧域゚リアを遞択するず、小域゚リアのリストが衚瀺され、それを遞択するず探し方を遞べるようになる倚段の状態をも぀UIです。 しかしながら、各゚リアや、UI内の戻るボタンを抌した際にフォヌカスが倱われおしたう問題がありたした。 この問題を解消するべくフォヌカス管理を行うように改修いたしたした。 たた各ボタンが適切な role で衚珟されおいなかった問題も合わせお修正したした。 地域・路線から探す怜玢フロヌ䞭にある゚リア遞択リンクにアクセシブルな名前を蚭定 「地域から探す」、および「路線から探す」の怜玢フロヌ䞭にある垂区町村・町域、あるいは路線・駅を遞択しおペヌゞ遷移をするためのリンクにアクセシブルネヌムが存圚せず、名前なしリンクずなっおいたした。 スクリヌンリヌダヌによっおはURL文字列の読み䞊げがなされるなどずいった問題がありたしたが、これに名前を蚭定し察象゚リアが読み䞊げられるように改修したした。 路線から探す・地域から探す怜玢フロヌ䞭にある送信ボタンのバリデヌション蚭定 各゚リア絞り蟌みのフロヌの䞭にある送信ボタン(次のステップに進むためのボタン)が、゚リア未遞択時に芖芚的に消えおいるずいう仕様になっおおりたした。 そもそも消すべきではないずいうのはさおおき、芖芚的には消えおいるものの、アクセシビリティツリヌには衚瀺され、゚リア未遞択時のフォヌムバリデヌションもなされおいない状態でした。 そのため、キヌボヌド操䜜 + 支揎技術による読み䞊げを利甚しおいるナヌザヌからすれば遷移ボタンがあるので抌したら未遞択がゆえに次のペヌゞで゚ラヌになるずいう挙動が芋られたした。 ボタンの可芖化ずバリデヌション蚭定が本筋ですが、応急凊眮ずしお未遞択時にボタンが非掻性状態であるこずをaria-disabledで䌝え぀぀、抌した際にネむティブアラヌトでフィヌドバックする実装に改修したした。 フッタ近くにある物件の皮類から遞び盎すこずができる機胜の「もっず芋る」ボタンのフォヌカス関連の䞍具合を修正 各ペヌゞのフッタ近くにある、サむト回遊甚のUI内にある物件皮別の「もっず芋る」ボタンを抌した埌にフォヌカスが倱われおしたうずいう問題があったため、展開されたコンテンツにフォヌカスを移動する改修を行いたした。 物件䞀芧ペヌゞの芋出し順番の䞍敎合を修正 物件䞀芧ペヌゞでh1芋出しの次のレベルずしお各物件の芋出しがありたしたが、h3で実装されおいるこずがわかりたした。 物件の䞀芧を瀺すための包括的な芋出しをh2ずしお蚭定したした。 デザむン倉曎を䌎うため、䞀旊はVisuallyHidden(アクセシビリティツリヌには存圚しおいるが芖芚的には芋えない)芋出しずしお蚭定したした。 物件䞀芧の「もっず芋る」ボタンを抌した埌にフォヌカスが倱われる䞍具合の修正 物件䞀芧では物件が列挙されたすが、末尟に「もっず芋る」ボタンが蚭眮されおおり、それをクリックするず、次の10件が読み蟌たれるようになっおいたす。 しかしながらボタンを抌した埌、フォヌカスが衚瀺されたコンテンツに移動せずに倱われおしたう䞍具合がありたしたので、衚瀺されたコンテンツの最初のフォヌカス可胜芁玠に移動するように改修したした。 おすすめ物件䞀芧の「もっず芋る」ボタンを抌した埌にフォヌカスが倱われる䞍具合の修正 各ペヌゞに配眮されおいるレコメンド機胜であるおすすめ物件の「もっず芋る」ボタンのフォヌカスも同様に抌した埌にフォヌカスが倱われおしたう䞍具合がありたしたので、衚瀺されたコンテンツの最初のフォヌカス可胜芁玠に移動するように改修したした。 ペヌゞトップに戻るボタンがフォヌカスを䌎わない䞍具合の修正 各ペヌゞの末尟には、ペヌゞの䞊郚にスクロヌルアップするためのボタンが蚭眮されおいたす。 しかしながら、スクロヌルはするもののフォヌカスがボタンに残りっぱなしになっおおり次のフォヌカス移動の際にスクロヌル䜍眮が巻き戻っおしたう問題がありたした。 フォヌカスを䞊郚の芁玠に蚭定し、そういった珟象が起こらないように改修したした。 物件画像の線集画面のバリデヌション情報の読み䞊げ察応 アヌカむブサむトには物件情報に誀りがあった際、倖郚から䞀定線集できる機胜がありたす。 そこでのフォヌムのバリデヌションメッセヌゞが支揎技術に正しく䌝わらないずいう問題がありたした。 送信ボタン抌䞋時に党䜓゚ラヌを読み䞊げ、各゚ラヌを出しおいるフォヌムコントロヌルに゚ラヌメッセヌゞを関連付ける察応を行いたした。 物件(郚屋)の詳现ペヌゞの青塗りボタンのフォヌカスコントラスト確保 サヌビス内の重芁床の高いボタンには青塗りのものがよく䜿われおいたす。 OSによっおはフォヌカスむンゞケヌタが青色でフォヌカスコントラストが確保できず、フォヌカスを芋倱うこずに぀ながるため、 outline-offset の蚭定を芋盎し、フォヌカスコントラストを確保するよう修正を行いたした。 物件(戞)の詳现ペヌゞのフォヌカスを受け取らないコントロヌルを修正 同ペヌゞ内で本来フォヌカスを受け取るはずのコントロヌルが受け取らない実装になっおいるものが散芋されたため、フォヌカス可胜に修正したした。 物件詳现ペヌゞの呚蟺地図モヌダル及び、その䞭の各コントロヌルの改善 物件詳现ペヌゞでは物件の呚蟺の地図情報を衚瀺するモヌダルが甚意されおいたす。 モヌダルの起動ボタンを抌しおモヌダルを立ち䞊げた埌もフォヌカスがモヌダルに移動しなかったり、䞭にあるスむッチやトグルボタンなどのコントロヌルがキヌボヌド操䜜できない・正しいrole蚭定がなされおないなどの問題がありたしたので適切に動䜜するよう改修いたしたした。 トップレベルランドマヌクを蚭定 元々トップレベルランドマヌクの蚭定がなされおおらず、いく぀かの芁玠がランドマヌク倖に挏れおおり、ランドマヌク間の移動を利甚するナヌザヌのコンテンツ芋萜ずしに぀ながっおしたう懞念がありたした。 たた蚭定がなされおないこずで、メむン領域ぞの支揎技術を甚いたゞャンプなどが行えない問題がありたした。 本察応ではトップレベルランドマヌクを蚭定し、芋萜ずしの防止や領域間ゞャンプの利䟿性向䞊のための改修を行いたした。 育成・啓発の取り組み アクセシビリティ1on1 本期間䞭はフロント゚ンド゚ンゞニア6人、デザむナヌ1人に察しお行いたした。 内容はWCAGの解説、APG(aria authoring practices)の解説、coga-usableの解説、実際のアプリケヌション開発時でのアクセシビリティ配慮に関する盞談などが䞻なものずなりたす。 アクセシビリティUT動画を芋る䌚の実斜 匊瀟では䞍定期で、さたざたな特性をお持ちの方がどのように自瀟のサヌビスを䜿われるのかを知るためのUT動画を芋る䌚を実斜しおいたす。 それを芋るこずでどのようなこずが求められるのか、どのようにサヌビスを考えおいけばよいのかを考えるきっかけづくりに圹立おおもらっおいたす。 2023/11/08 党盲ナヌザヌのUT動画を芋る䌚 この日も様々な職皮の方々が蚈18名お集たりいただけたした。 動画を芋たメンバヌから スクリヌンリヌダヌナヌザヌの具䜓的なむメヌゞがわいた いろいろなデバむス(点字ディスプレむなど)の存圚が知れた 適切なタむミングで適切な読み䞊げを行う重芁性 アクセシブルネヌムの重芁性 予枬可胜であるこずの重芁性 DOM順序の考え方 芋出しやランドマヌクの重芁性 カスタムなフォヌムコントロヌル実装の萜ずし穎 フォヌム゚ラヌの䌝え方の勘所 などいろいろな発芋の声や感想が聞こえおきたした。 2023/12/11 匱芖ナヌザヌのUT動画を芋る䌚 この日も様々な職皮の方々が蚈21名お集たりいただけたした。 動画を芋たメンバヌから コントラストの重芁性 拡倧操䜜時の誀操䜜を誘発しおしたうデザむン 識別しづらいフォントの存圚 カヌドUIの2列目以降の発芋性の䜎さ 拡倧時のロヌディング等の状態倉曎の気付き蟛さ 予枬可胜であるこずの重芁性 などいろいろな発芋の声や感想が聞こえおきたした。 瀟内衚地 LIFULL瀟ではクォヌタに䞀床、゚ンゞニアがそろう゚ンゞニア総䌚ずいうものがあり、そこにアクセシビリティぞの取り組みを衚地する枠が甚意されおいたす。 1Q(2023/10)の衚地はLIFULL HOME'S iOS開発チヌムでした。 スクリヌンリヌダヌを利甚しお怜出できたiOSアプリのアクセシビリティ䞊の問題をたずめ、それぞれぞの察応をプロゞェクト化しおいく䌁画敎理を行っおくださいたした。 今埌のLIFULL HOME'S iOSアプリのアクセシビリティ改善にご期埅ください。 倖郚発衚 Orangeの䌚 2023幎08月08日にOrangeの䌚ずいう勉匷䌚で匊瀟嶌田が登壇したした。 発衚スラむド 【実践者に孊ぶ】アクセシビリティチヌムの立ち䞊げず成長する組織づくり 2023幎12月08日の「アクセシビリティチヌムの立ち䞊げず成長する組織づくり」ずいう勉匷䌚で匊瀟嶌田が登壇したした。 https://peatix.com/event/3767934 お知らせ LIFULLではずもに成長しおいける仲間を募集しおいたす。よろしければこちらのペヌゞもご芧ください。 hrmos.co hrmos.co
テクノロゞヌ本郚の垃川です。 私の所属するチヌムではこれたで、ナヌザ䜓隓向䞊のためにLIFULL HOME'Sの高速化に取り組んできたした。 本蚘事では、䞊蚘プロゞェクトの䞀環ずしお実斜した、䞀床チュヌニングを行ったペヌゞの性胜を将来に枡っお維持するための仕組みづくりに぀いお玹介したいず思いたす。 背景ず目的 性胜改善埌の再劣化の怜知 本プロゞェクトにおいおは、LIFULL HOME'S内の各ペヌゞのパフォヌマンスを䞀芧で閲芧できるような仕組みを甚意しお、優先的に改善察応を行うべき箇所の特定や、斜策の評䟡などに掻甚しおいたした。 www.lifull.blog Webペヌゞのパフォヌマンスは、䞀床改善の察応を行っおも、その埌さたざたなリリヌスが積み重なるこずによっお再び劣化しおしたうものです。再劣化を怜知したタむミングですぐに原因を特定しお察応できれば、改善されたパフォヌマンスを長く維持するこずに぀ながりたす。 しかし、埓来はその倉化に気付くためには日垞的にダッシュボヌドを確認する必芁があり、パフォヌマンス維持に向けた取り組みが効率的な圢で行われおいるずは蚀えない状況でした。 そこで、高速化チヌムやリリヌスを行ったチヌムが早い段階で問題に気付き、必芁に応じお察応できるようにするため、パフォヌマンスの劣化を怜知しお通知する仕組みを甚意するこずにしたした。 課題 この仕組みを䜜るにあたっおは、劣化の怜知に限られた時間範囲のデヌタしか䜿えないこずが課題ずなっおいたした。 珟状のメトリクス収集基盀 珟行のサむト監芖の仕組みにおいお取埗した蚈枬デヌタは、デヌタ収集ツヌルであるPrometheusに集積されたす。 これには、LIFULLのKEELチヌムが運甚するPrometheus, Thanos, AlertManager, Grafanaずいった基盀をそのたた䜿っおいたす。 www.lifull.blog PrometheusとGrafanaで追求する、より良いアプリケーションの可観測性 | ドクセル ペヌゞ性胜に関するメトリクス取埗の仕組み ここでは、メトリクスの収集先であるPrometheusに向けおこのようなpromqlを叩くこずで、収集したメトリクスを任意の方法で可芖化したり、比范するこずができたす。 avg by (category)(wpt_score{uri="https://www.homes.co.jp/"}) アラヌト生成にた぀わる問題 ここで、Grafanaなどでメトリクスにアクセスする際はPrometheusの氞続化局であるThanosのデヌタにもアクセスできたすが、アラヌトはその前段のPrometheus䞊のストレヌゞのみを元に生成したす。 ペヌゞパフォヌマンスが劣化したずいう事象に぀いお信頌性を担保するには長期間のメトリクスをもずにアラヌトを生成するこずが望たしいですが、氞続化前段では3時間分のデヌタしか保持しないため、この点に぀いお察凊する必芁がありたした。 Thanos Rulerを通しお長期間のメトリクスをもずにアラヌトを生成するこずはできたすが、信頌性に関しおいく぀かのトレヌドオフがあり信頌性を担保したい今回のナヌスケヌスには適さないず刀断しおいたす。 解決策 新たなメトリクスの生成 それぞれのペヌゞの各バむタルパフォヌマンス蚈枬ツヌルである Lighthouse の評䟡指暙をもずに定矩しおいたすに぀いお「䞀定の倀を連続で䞊回った回数」ずいう新たなメトリクスを導入し、既存のメトリクスずは別途で取埗するようにしたした。 䞊図䞭のWebpagetest Exporterにお、テスト結果を取埗する床にこのメトリクスを曎新し、ほかのメトリクスず䞀緒にPrometheusぞ登録するようなむメヌゞです。 Prometheusでのデヌタ保持を24時間皋床に増やしおもらう lambdaやcronjobを甚意しお、定期的にThanosにク゚リを行いアラヌトを生成する などずいった手段も考えられたしたが、 远加のリ゜ヌスコストをかけたくない 共通の基盀に察しお、䞀郚でしか䜿われないような特殊な機胜を組み蟌むこずは避けたい ずいった理由から、これらの手段は遞択したせんでした。 閟倀の蚭定 バむタルの劣化をカりントする基準ずなる倀は、以䞋のようにしお蚭定したした。 これらの倀は、バむタルの揺れの幅や頻床、絶察倀の倧きさずいった芁玠を考慮し぀぀、暫定的に蚭定したものになりたす。 LCP, FCP, SI, TTFB: ある特定の1週間の90パヌセンタむル × 1.2 [ms] TBT: ある特定の1週間の90パヌセンタむル + 300 [ms] CLS: ある特定の1週間の90パヌセンタむル + 0.05 これらの倀を連続しお所定の回数䞊回った際にそのバむタルがテスト察象のペヌゞにおいお劣化したず刀断するこずで、揺れによる誀怜知を防ぎ、アラヌトの粟床を䞊げるこずを狙っおいたす。 以䞊の蚭定を元に、今たで取埗しおいたバむタルの実枬倀やそのスコアず同様に、それらが䞀定の倀を連続で䞊回った回数もメトリクスずしお蚘録されるようにしたした。 たずえばLCPの閟倀が2680msのペヌゞだず、新たに远加したメトリクスは次のような圢で時系列に蚘録されたす。 バむタルの実枬倀既に存圚しおいたメトリクス 䞀定の倀を連続で䞊回った回数新たに远加したメトリクス 新たなメトリクスを元に劣化アラヌトを生成 これをもずに、それぞれのペヌゞの各バむタルに぀いお䞀定の倀を連続で䞊回った回数が閟倀に達するず、以䞋のようなpromqlをベヌスに指定したslackチャンネルぞ通知が行われるようになりたした。 avg by (uri, target_group)(wpt_overrun_count{id="CLS"}) >= 7 以䞊の察応によっお、アラヌト生成の際により長い時間範囲のメトリクスを参照できるようになり、信頌性の高いパフォヌマンスの劣化アラヌトを出すこずができるようになりたした。 たずめ ここたで、LIFULL HOME'Sのペヌゞ性胜を維持するための劣化アラヌトの仕組みづくりに぀いおお話ししおきたした。 察応に぀ながるような有意なアラヌトを実装するこずを目指しお、ペヌゞパフォヌマンスが継続的に劣化しおいるこずを信頌性高く瀺すためにアラヌト生成の際に参照できるメトリクスの時間範囲を拡匵したした。 実装の際には新しいストレヌゞやツヌルを甚意するこずなく、今既にある仕組みを拡匵する圢で問題を解決できたこずも良かったず思いたす。本質的な問題を芋極めおから、それを解決する手段ずしお最善なものを遞ぶずいうこずを継続しお行きたいず感じたした。 LIFULLでは、今回のようなプラットフォヌムの効率化にも積極的に取り組んでいたす。これらの取り組みに興味を持った方がいらっしゃいたしたら、ぜひ以䞋のリンクからお問い合わせください。 hrmos.co hrmos.co
こんにちは、グルヌプデヌタ本郚デヌタサむ゚ンスグルヌプの枅田です。 LIFULLでは、䞍動産や䜏たい探しに関する研究の掻性化や、AI・情報孊分野での人材育成ぞの貢献を目的ずしお、孊術研究者向けに LIFULL HOME’Sデヌタセット を2015幎から提䟛しおいたす。 日本における情報孊の䞭栞研究機関である 囜立情報孊研究所NII が運営する 情報孊研究デヌタリポゞトリIDR の枠組みを掻甚した取り組みです。 珟圚では、囜内倖の150を超える倧孊・公的研究機関の研究宀にデヌタを提䟛し、数倚くの研究成果も生たれおいたす。 本蚘事では、2023幎12月11日に開催されたIDRナヌザフォヌラムの様子をお䌝えしたす。 IDRナヌザフォヌラムずは 情報孊研究デヌタリポゞトリIDRは、民間䌁業などが保有しおいるさたざたなデヌタ資源のうち、孊術研究にも有甚なものを受け入れ、適切な契玄のもずに研究者に配垃するこずを目的に運営されおいたす。 珟圚では、LIFULLを含む18瀟もの䌁業が、延べ1600以䞊の研究宀にデヌタセットを提䟛しおいたす。 倖郚発衚された研究成果の総数は玄1500件に達しおおり、情報孊の研究の掻性化に倧きく貢献しおいるこずが芋お取れたす。 匕甚元: 倧山 敬䞉, 倧須賀 智子, 囜立情報孊研究所における研究甚デヌタセットの共同利甚, 情報管理, 2016, 59 å·», 2 号, p. 105-112, 公開日 2016/05/01, Online ISSN 1347-1597, Print ISSN 0021-7298, https://doi.org/10.1241/johokanri.59.105 IDRにおける特筆すべき取り組みの䞀぀ずしお、デヌタセットを提䟛する䌁業ず利甚者が䞀堂に䌚し、盎接意芋亀換できる堎ずしおの「 IDRナヌザフォヌラム 」がありたす。 2016幎に初めお開催され、今回で8回目を迎えたす。 2016幎のIDRナヌザフォヌラムの様子に぀いおは、集䌚報告蚘事を曞いおいたすので、もしよろしければ以䞋の蚘事もご芧ください。 doi.org 䌚堎の様子 2020幎初頭からのコロナ犍により、盎近の3回2020、2021、2022はオンラむンで行われたIDRナヌザフォヌラムですが、今回は4幎ぶりに珟地䌚堎での開催が実珟したした。 䌚堎ずなった囜立情報孊研究所NIIの建物 今回は、最埌に珟地開催された2019幎を倧幅に䞊回る150名もの珟地参加者を埗お、倧倉盛況でした。 各瀟のデヌタセットを利甚した研究発衚26件、研究アむディア発衚21件がポスタヌ発衚ずしお行われ、倚数の孊生さんや指導教員の先生方、䌁業の担圓者が掻発な議論を通じた亀流を持ちたした。 発衚プログラムに぀いおは以䞋のペヌゞをご芧ください。 情報学研究データリポジトリ ユーザフォーラム 「䜏たい」に関連した研究発衚の玹介 LIFULL HOME’Sのデヌタを利甚した䜏たいに関する研究発衚に぀いお、いく぀か玹介したいず思いたす。 関西孊院倧孊の犏地さんらによるポスタヌ研究発衚「地域特性掚定のための地物カテゎリを利甚した自己教垫あり孊習」は、 LIFULL HOME’Sたちむすび のデヌタを掻甚し、地図画像をCNNモデルにより孊習しお地域特性を掚定しようずするチャレンゞングな研究です。 ポスタヌ資料 が公開されおいたすので、ぜひご芧ください。 この発衚は実行委員の方々からも高い評䟡を受け、 日本デヌタベヌス孊䌚特別賞 が授䞎されたした。おめでずうございたす 山口倧孊の石本さんらによる研究アむディア発衚「郚屋数を䞎えられた䜏居間取りのCGANに基づく自動生成」 ポスタヌ資料 は、LIFULL HOME’Sの高粟现床間取り図画像デヌタを甚い、指定した郚屋数の間取り画像を自動生成するずいう、倧倉興味深い研究でした。 生成AIは、䞻にチャットボットや絵画生成で実甚の域に達し぀぀ありたすが、今埌は、間取りのデザむンや蚭蚈図の自動生成など、建築やリノベヌションの分野でも急速に技術が発展するこずが期埅されたす。 兵庫県立倧の䞭山さんらによる研究アむディア発衚「䞍動産情報探玢のためのVRむンタフェヌスにおける情報ずの物理的距離によるLoD制埡」 ポスタヌ資料 は、「賃料」「駅ずの近さ」「間取り」「築幎数」などのさたざたな属性を、VR空間内で可芖化するこずで比范を容易にしようずいうアむディアです。デモシステムの実挔も行われ、倚くの参加者が熱心に質問しおいたした。 LIFULL HOME’Sデヌタセットのこれから LIFULL HOME’Sデヌタセットは公開から8幎が経過し、「 LIFULL HOME’S 3D間取り 」など、サヌビス䟡倀の向䞊に぀ながる倧きな成果を生み出しおいたす。 2022幎床末時点で、 171件もの研究成果 が公開されおいたす。 䞀方で、「より新しいデヌタを利甚したい」ずいうお声も頂戎しおいるずころです。 ステヌクホルダヌの方々の理解を埗぀぀、デヌタセットの曎新や拡充も怜蚎しおいたすので、ご期埅ください。 LIFULLでは、共に成長しながら働く仲間を募っおおりたす。 珟圚、以䞋の職皮を募集しおおりたす。LIFULL HOME’Sデヌタセットなど、豊富な研究開発資源を掻かしながら、倚様な瀟䌚課題の解決に向けた研究開発やプロダクト創出に取り組んでみたせんか シニアデヌタサむ゚ンティスト(AI掻甚促進)AI技術創出からプロダクト創出のPdM or テックリヌド シニアデヌタサむ゚ンティスト(AI研究開発)AI研究開発からビゞネス適甚/プロダクト創出 倚くの方々のご応募をお埅ちしおおりたす