「AJ出張版」は、株式会社アカリクが発行する「大学院生・研究者のためのキャリアマガジン Acaric Journal」の過去の掲載記事や、WEB限定の新鮮な記事をお送りするカテゴリです。今回はvol.3の掲載記事をお届けします。
アカリクのサービスとして毎年1万人以上が新規登録しているCloud LaTeX。ローンチ後、利用者の増加や新機能の拡大などによって、保守作業に長い時間を要するようになりました。当時の開発メンバーは、この課題を根本的に解決するため、リニューアル開発することを決意します。今回は、その中心メンバーとしてご活躍された時武様に、当時の話を伺いました。
ー テーマは「リニューアル開発秘話」ということで、お話を伺いたいと思います。まず、アカリクを知ったきっかけについて、教えてください
当時私は東京大学大学院の情報理工学系研究科にいました。就職活動でアカリクを知ったのではなく、在学中に知り合いから「面白いバイトあるよ」と紹介されたのがアカリクの Cloud LaTeX の開発だったのがきっかけでした。知人をもう1人誘って大学院生3人で Cloud LaTeX の開発をすることになるのですが、その後アカリクのIT逆求人イベントにも参加させていただきました。
ー やはり、横のつながりは強いですね。開発メンバーに入って、具体的にどのような作業をされたのでしょうか
最初は普通に開発に携わっていて、まだリニューアルの話も出ていない段階でした。サーバからフロントエンドまで、タスクごとにいろいろな作業があって、手がつけられそうなところからやっていました。基本的には、新機能開発のほかにリファクタリングや不具合の修正などですね。3人で分担して各自思い思いの作業をやっていました。私は、学部生の頃のアルバイトで、Webサービス開発にリモートで携わった経験があったので、Cloud LaTeXも同様にフルリモートで開発できる体制を整えました。例えば、Slackで特定のコマンドを打つと、自動でインフラが動いて、開発した内容が確認できるようになる仕組みをつくって運用していました。いわゆる ChatOps と言われるものです。
ー サービスの開発だけでなく、プロジェクトをうまく運用するための技術サポートや環境づくりも行われていたのですね。現在ではリモートワークは当たり前に行われていますが、当時では新しい体制だったのではないでしょうか
2015年ですので、Slack がちょうど広く使われ始めた頃かもしれないです。Slackは結構使っていましたね。
ー そのような洗練された環境で開発を進めていたけれど、何かきっかけがあってリニューアルしなければいけない状況になってしまったのですよね
Cloud LaTeXは元々アカリク主催の「アプリ開発コンテスト」で優勝したアプリであり、細かい設計やコードの綺麗さよりも、速く作ることが重視されたものでした。ただ、その後サービスの機能が増えメンテナンスが難しくなり、バグの改修のために既存のコードを把握するだけでも時間を要することに課題を感じていました。そのような中、人も増えてきたので、アカリクの運用担当の方も含めて相談し、この際作り直してしまおうとリニューアルに踏み切りました。修士2年生の頃で、そのときは研究の息抜き感覚で開発に携わっていました。
ー リニューアルの開発期間はどのくらいかかったのでしょうか
2015年の9月頃にリニューアルに着手し、実際にリニューアルが完了したのは社会人になった1年目の夏だったので、1年程かかっていると思います。3人とも、就職後も副業で開発を続けていました。
ー 導入する技術も慎重に選定されたのですね。リニューアルでは、どのような部分をご担当されたのでしょうか
リニューアルにあたって、技術選定が必要になるのですが、当時バックエンドを堅牢に作るための言語として Scala が流行っていて、Ruby on RailsからScalaに乗り換えるのはどうかという話が上がりました。まずは、それで Scala を扱える人を中心に2~3か月プロトタイピングを進めた結果、やはり厳しそうだとなりやめたという経緯がありました。ここでじっくり検証できたのが良くて、あのまま進めていたらいろいろと大変なことになっていたと思います。
サーバーの実装やフロントの実装、インフラ設計などの全てを対象としていましたが、タスク別に細かく分けてやっていました。各自が、思い思いに作業を進めていて、自分もできる範囲でやっていました。誰かがメンバーを統括して、引っ張っていたというより、単純にサービスを作ることが楽しいので、個人個人が頑張ってやっていた、という形です。
ー 就職された後は、忙しくてリニューアル作業には関われなかったのではないでしょうか
社会人になった後も、最初の頃はそれなりに様子を見ていました。修士の間にリリースまで詰められなかったので、最後の様子を見届けようと思っていました。ただ自分もほかのメンバーも就職して、なかなか時間が取れなくなっていました。その後、新しいメンバーも入ってきて、彼らに引き継いで、リニューアル完了の報告を受けて、携わってきたものがようやくリリースされたのだと思った記憶があります。
ー ご研究や修論、就職活動もリニューアルの時期が1番忙しかったのではないでしょうか
就職に関してはあまり苦労せず、修士2年の春から夏頃には決まっていました。そこから修論をやりつつ、空いた時間にCloud LaTeXの開発を行っていました。修論はなんだかんだ結構大変で、秋から冬にかけては研究室詰めでした。就職後は、最初の2か月程は研修だったのでそんなに忙しくなく、仕事が終わった後にたまに様子を見ていました。その後、仕事で携わる開発タスクが増えてきて、そちらにマインドシェアを取られてしまいました。
ー お仕事の方がメインになりますよね。その後、Cloud LaTeXとの関わりはありますか
今もチームの Slack には所属しています。開発からは手をひいてはいますが、担当のアカリク畠野さんやメンバーからときどき飛んでくる質問に答えることがあります。
ー 技術顧問のような存在ですね
そんな感じかもしれないです。
ー Cloud LaTeXの開発業務を通して大変だったこと、楽しかったことを教えてください
リニューアルとはいえ、ある程度は一からサービスを作るという状況で、触れるリソースに制限がなく、好きにインフラに触れて、やりたい実装ができたのは良い経験だったと思います。今の会社で、サービスを一から作るようなことをやったのですが、そのときにCloud LaTeXの開発経験が活きていると感じました。
リニューアルはとても大変で、もっと早く終わると思っていましたが、そう簡単ではなかったです。フロントエンドも全て作り変えたので、挙動を元のサービスと合わせたり、不整合がないように細かく確認したりなど、調整が難しかったです。経験が長い開発者ではなかったので、ベストプラクティスを探したり、試行錯誤するのが大変でした。
プロフィール(インタビュー当時)
時武 佑太 氏
株式会社LegalForce取締役兼CTO。1992年京都生まれ。2016年東京大学大学院情報理工学系研究科修了。大学院修了後、株式会社ディー・エヌ・エーのヘルスケア事業部でアプリエンジニアとして従事。Android、 iOSアプリ開発だけでなくサーバ側開発やデータベースのパフォーマンス調整まで幅広く担当。2017年10月より現職。