誠実 × マルチプレイヤー
オープンリソース株式会社
Ryo.K
Redxビジネス統轄 サービス開発
2007年入社
ymtzw
京都大学 理学研究科 修士課程を修了後、2020 年に新卒でオープンリソース株式会社に入社。グループ会社「グッドルーム」との協業事業「goodroomサブスくらし」のテックリードを担当。競技プログラミングが趣味で、大学時代からほぼ毎週末参加している。
小学生の頃からプログラミングに興味を持っていました。とはいってもプログラミング教室に通っていたわけではありません。本を読んだりインターネットで学んだりしながら、独学で数当てゲームのような簡単なプログラムを書いていました。
きっかけはよく覚えていないのですが、自宅に「子供の科学」という雑誌があり、その中でも「プログラミングをやってみよう」というコーナーに興味を惹かれたことは覚えているので、それがきっかけだったのかもしれません。また、自宅に古いパソコンの入門書や、算数・数学の本が並んでいて、子供ながらに夢中で読んでいましたね。
そんな幼少期を送っていたので、大学でも理学部を専攻しました。しかし大学の授業の中では基礎的な部分しか学ぶことができなかったので、もっと深く学びたいという想いから、大学院への進学を決断。「理論科学研究室」というコンピュータを用いる理論系の研究室に所属していました。
オープンリソースでは大手小売企業や金融系のシステム開発を行っていると説明会で聞いていたので、大規模なチーム編成やカッチリした開発フローの中で働くことになるのかな、と想像していました。要件定義や詳細設計のたびに偉い人がハンコを押す…というイメージをぼんやりと描いていましたね(笑)。
ところが、いざ配属されたのが、グループ会社のグッドルームが提供する「goodroomサブスくらし」というウェブサービスの開発チーム。少人数で、開発手法もアジャイル開発でしたので、私のイメージしていたものとは全く逆でした。その点で想像とのギャップがありましたね。
ちなみにアジャイル開発とは、2週間など細かい単位で区切って、「計画」→「設計」→「実装」→「テスト」という開発工程を小さな機能開発毎に行う開発手法のことです。
私が大学院の研究室で行っていたプログラミングも、きっちりと開発フローが決まっていたわけではなく「アイディアがあったらすぐ形にする」という開発手法でしたので、アジャイル開発のようにスピード感のあるスタイルは馴染みがあり、自分にとっては嬉しいギャップでしたね。
月額69,800円からホテルやマンスリーマンションで暮らせるという、「身軽な暮らし」を実現するサブスク型のサービスです。
goodroomサブスくらし:https://livingpass.goodrooms.jp/
goodroomは、これまでは賃貸だけを取り扱うサイトでした。しかし、世の中にはもっと身軽に暮らしたいというニーズを持っている方もいます。そういった方に向けて、現在は「賃貸」と「サブスくらし」の2つのカテゴリを持っているのですが、私はその中でも「サブスくらし」のほうの開発を担当しています。
サブスくらしはエンジニア6人チームで開発を行っているのですが、その中でも私は技術面をリードする、いわゆる「テックリード」と呼ばれる役割を任せてもらっています。具体的には、フロントエンド・バックエンド・インフラなど、技術面全般の方針を立て、実装まで行う仕事です。
フロントエンドとは直接ユーザーが目に触れて操作する部分のこと、そしてバックエンドとは「ボタンを押すとユーザーに請求メールが届く」といった、フロントサイドの裏側で動いている仕組みのことです。
そしてインフラとは、例えばサーバーやロードバランサー、ホテル等のデータベースの構築・管理や、AWS(アマゾンが提供するクラウドサービスプラットフォーム)を使った予約申し込みの仕組みのメンテナンスなどを指します。
現在入社5年目なのですが、テックリードを任されたのは入社3年目のときです。それ以前はフロントエンド開発がメインで、たまにバックエンドを触るくらい。インフラ領域については全く関わったことはありませんでした。
最初に上司から、テックリードを私に任せるという話を聞いたときには、もちろん不安やプレッシャーもありました。「自分には無理です」と弱音を吐いたこともあります。
ですが最終的には「任せてもらったからには、サブスくらしは自分のサービスだ!」と覚悟を決めました。「サブスくらしの仕組みの中で、知らないことがあるようでは情けない」という想いで、前任者が残してくれた資料を基にがむしゃらに勉強して、バックエンドやインフラなど、フロントエンドだけでなくシステムの裏側の仕組みも学びました。
その結果、今ではインフラ領域においても1から新しい仕組みを作ることができるくらいには成長しました。自分にとってはかなりストレッチした挑戦ではありましたが、その分得られたものは大きかったです。
毎週2~3時間ほど打ち合わせの時間を設けていて、「今週はこの機能をリリースします」といったリリース予定の確認や、グッドルームメンバーから出てくる要件に対して詳細を確認し、認識合わせを行います。そこで決まった方針をもとに、いかにプログラミングに落とし込むかを考えながら開発を進めています。
私としては、グループ間を横断しているという意識はありません。グッドルームのメンバーは「サブスくらし」というサービスを共に創り上げていく仲間ですし、同僚だと思って仕事をしています。仕事をする上で、会社間で区別をすることはないですね。
サブスくらしはホテルやマンスリーマンションの予約申し込みが出来るサイトなので、入居希望日を入力するためのカレンダーが必要なのですが、そのカレンダー機能の実装を入社1年目で手掛けたことです。
カレンダー機能自体は、ホテルの予約サイトなど様々なところで使われているので、公開されているソースコードも沢山あります。私も当初は、そういった既存のコードを使えば何とかなると考えていたのですが、いざやってみると、それでは上手くいかないことが分かりました。
というのも、サブスくらしは数か月など長期での予約になるので、短期間の宿泊を前提としたホテルの予約サイトに使われているカレンダーのソースコードをそのまま使うことができないからです。
色々考えた結果、既存のものではなく、自分で1からカレンダーの仕組みを作ることにしました。「日付ボタン」「決定ボタン」など、細かいパーツに分解して、1つ1つ組み合わせながら作っていきましたね。
完成したコードを当時の上司に見てもらうときは不安もありましたが、無事採用されたときは嬉しかったですし、達成感も感じました。
実はそのとき作ったカレンダーは、ちょこちょこ手直しをしながら今でも現役で使われています。今の自分ならばもっと良いものを作れるかもしれませんが、当時の自分にとっては持っている最大限のスキルや知識を振り絞って作ったので、とても印象に残っています。
▼ymtzwさんが入社1年目に実装を手掛けたカレンダー画面
先ほどのカレンダー機能の実装の話にも繋がりますが、やはり若い年次から裁量を持たせてもらえる点です。
私が入社した2020年は、ちょうどサブスくらし(当時のサービス名は「goodroomホテルステイ」)がローンチされた年ということもあり、作らなければならない画面も沢山あったので、1年目からフロントエンドの実装をはじめ、広い範囲のタスクを任せてもらうことができました。
プログラミングをしたいと思って入社したので、入社後すぐに任せてもらえたのは嬉しかったですね。それに上司の瀬沼がとても懐の広い人物で、新しい提案に対して論理的に判断されることはあっても、頭から否定されることはありません。サブスくらしの開発方針も、基本的に私やメンバーに任せてくれるので、その分責任感をもって業務に臨んでいます。
グッドルームのメンバーから届く要望を、どのようにシステムに落とし込むのか考えて、上手く実装できたときにやりがいを感じます。
例えば最近では、「ホテルの空室数を表示させたい」というリクエストがありました。これを実現するには、データベースのテーブルはどのように設計して、バックエンドはどのように作れば良いのか。そういったことを考えながら、詳細化していく工程は、まるでパズルのような面白さがあります。
また、これまでは単純にプログラミングすること自体が面白いという感覚だったのですが、サブスくらしのサービスを熱心に使ってくれているユーザーがいるという話をグッドルームのメンバーから聞くと、「自分の作ったものが人のためになっているんだな」と実感できて、嬉しくなりますね。
「サブスくらし」のサイトは、表示速度の点でまだまだ改善の余地があると思っています。ウェブサービスにおいて、ページが表示される速度はとても重要だと思うので、その点をより良くしていきたいですね。
バックエンドが原因かもしれないですし、あるいはフロントエンドのソースコードが原因である可能性もあります。その点をきちんと調査をして、もっとユーザーが快適に使えるサービスにしていきたいです。
また自分自身の展望としては、より深い知識を高めたいとおもっています。私はよく、勉強のために本を読んだり、あるいは「note」などインターネット記事を読んでいるのですが、「この人、同世代なのにめっちゃ詳しいな」と思うことがよくあります。
どの技術に関しても開発に必要なところまでは勉強しますが、今後はもっと掘り下げて、より深いレベルまで極めたいですね。本や記事を書くのは本当に理解していないと出来ないことだと思うので、そのレベルまで自分の知識や技術を高めていきたいです!
どこにもない、ふつうを
一緒につくりませんか。