インターンとしてデータチームで働いて

f:id:estie:20210312161432p:plain はじめまして estie データチームでインターンとして働いているうえしゅうです。今回は僕の簡単な自己紹介と、estieで働くことになった経緯、今まで約1年間estieで働く中で何をしてきたかについてお話します。

【 プロフィール】
上村周作(うえむらしゅうさく) 1997年兵庫県出身。
東京大学大学院 情報理工学系研究科 在学中。
専門は暗号学で、量子コンピュータを用いても解読が困難な耐量子計算機暗号について研究している。学部時代には天候データや電力需要データを分析・シミュレーションをすることで再生可能エネルギーによる電力の安定供給に関する研究を行っていた。好きなものは数学史(特に代数学と整数論)。「整数ってちょっとエッチだよね」と言って後輩にドン引きされたことがある。
2020年4月よりestieにジョインしデータチームのメンバーとして働いている。

参加の経緯

僕がestieで働くようになったきっかけは学部の同期で、現在もestieで社員として働いてるtomuに誘われたことです。元々研究として天候などのデータを分析していたので、もっといろんなデータを触ってみたいなと思っていました。一方で、手に入るデータ(ただの実測データ)は整形もされておらず、そのままでは使いづらいので、データ整形の知識も身に付けないと自分の分析能力は実践的なスキルにはならないとも感じてもいました。 そんな折にデータチームのメンバーとして参加しないかと誘ってもらったため、データの扱いについて実践的な環境で学ぶために参加しました。

データチームの仕事

データチームの仕事は簡潔にいうと、estieの持つ情報を統一感のあるデータとして管理し、アプリの開発チームが使いやすい形で提供できる環境を整えることです。

新鮮で正確なデータを届ける

データチームのモットーは「鮮度が高く正確なデータを届ける」ことです。これは日々更新されるオフィスの空室情報を常に最新のものにアップデートしたり、より正確なデータを提供できるようにするのを目指すということです。

正しいデータを担保するために

正確なデータを提供するために、データチームでは、持っているデータが正しいかを確かめたり、世の中に出ているデータと比較してestieの持つデータとの齟齬がないかを確認したりしています。具体的には、ビルを所有するオーナー会社さんなどがホームページ上で公表しているデータや情報を確認しています。不動産情報が掲載されているあらゆるサイトを人の手で確認していては非常に時間を取られてしまうので、データの照合を自動化しているのですが、それぞれのサイトで、提供しているデータの内容や形式が異なるため、それらを統一的に扱うのは大変です。例えば、同じビルでも表記が異なったりするために単純に比較するだけでは上手くいかず、適切に処理をして比較する必要があります(この名寄せの処理についてはestieデータエンジニアのいっしーの書いたQiita記事に一例があります)。これらに対応するために文字列の正規化や数値の単位の変換を行うことで比較・照合を行っています。

データもチームもプロダクトも変わり続ける

現実の不動産情報は日々変わっていき、それらをキャッチアップしてより最新の情報を正確に提供するために、技術や知恵を用いてデータの正確性を担保していることは既に述べた通りです。ここではデータだけでなく、チームや開発しているプロダクトも変わり続けていることをお話しようと思います。

チーム

僕がestieに入った当初は現在のチームとは異なるメンバーで開発を行っていました。当初は社員2,3人だったチームが、今や8人ほどのチームになっています。新しい人が加わることにより、人数も能力も、チームとしての構成も変わります。また、人手だけでなく新たな知見が加わり、チームの開発のやり方もどんどんと変わっていきます。例えば、新しい人の得意な分野をモブプロという形で共有してもらってから、それぞれがそれを生かして開発したり、既に先人の知恵として知られたようなスクラムの方法を取り入れては変更し、試行錯誤しつつ自分たちに最適な開発の方法を模索していく過程は非常に新鮮で刺激的です。

f:id:estie:20210311114034p:plain
zoomでの会議の様子

プロダクト

データチームの開発するプロダクトは、上述の照合用の自動化のスクリプトをはじめ、estieの持つ全てのデータを管理するデータベース、そしてそれらを繋ぎ、製品であるestieやestie proへとデータを送るものです。これらは常に正しく動作し続けなければならない一方で、ずっと同じものであってはならず、製品に新たな機能を加えるなどの要求に合わせて最適なものに変えていく必要があります。例えばデータベースを管理するにしても、データの持ち方次第でestie proなどのサービス上での表示のしやすさが変わってしまうことや、場合によっては要件を満たせないこともあります。それを解決するための方法を要件定義から見つめ直し、割くことができる人や時間を勘案しながら、新たなプロダクトを構築しています。

データを育てる

概念的な話が多くなってしまったので、実際に僕が取り組んだタスクについてお話します。これまで取り組んだ中で印象的なものとしては、既に管理しているテナントのデータ(各ビルのどこにどんな名前の会社があるかの情報)と、estieが新たにデータとして提供する企業情報(業種、従業員数、売上など)を紐付けするタスクがあります。これが実現すると、estieのサービス上でビルの情報からそのビルにテナントとして入っている企業の情報を見ることができ、例えばテナント誘致の営業を行う人の役に立つ機能が出来る、というとても心躍る仕事でした。

ただし、これらの作業も多分に漏れず一筋縄ではいかないものでした。実際既に述べたような正規化の作業がとても多く、例えば、同じ会社でも「株式会社○○」や「(株) ○○」あるいは「株式会社○○ △△支店」で登録されていたり、さらにこれらを無理やり紐付けようとして誤って似た名前の会社を紐付けてしまったりしました。アルゴリズムを変えて結果をサンプリングチェックしてまた改善してを繰り返し、インクリメンタルに更新していき、挙げ出したらキリがないほど修正をして、やっとある程度の精度と網羅性で紐付けができました。その紐付けの情報がサービスに反映されたのを見たときの喜びはひとしおでした。

f:id:estie:20210311113905p:plain
紐付けでしたいこと

estieでデータチームメンバーとして働くまでは、データというのは公開されたものあるいは自分で集めたもので、変化しないという認識でした。しかし上記のような作業をする中で、データを提供する者として絶えずデータは変わり続ける(変え続ける)ものなのだと認識が変わりました。

このような、大きな変化から小さな変化まで含めて、日々新たな姿に変わっていく様子は、データやアプリのような無機質なものがまるで生き物のように感じられます。

おわりに

データもチームも変わっていく中、より良いデータを管理して届けるという姿勢は変わらず、開発を続けています。 現在 estieではさらに新たな風を吹き入れ、一緒に開発をしてくださるエンジニアを募集しています!