NOT A HOTEL で Android エンジニアとして働いた半年を振り返る
はじめに
こんにちは、NOT A HOTELでAndroidエンジニアをやっている池永です。
昨年11月中頃にNOT A HOTELに転職してから、早くも半年(+ 1ヶ月)がたちました。この半年でNOT A HOTELでの働き方にも慣れ、Androidアプリの基盤部分を作り込み、仕事のペースが安定してきました。今回のnoteではここで一度立ち止まり、この半年間でこれまで取り組んできたことを、働く環境とAndroidアプリ開発の観点で振り返ってみたいと思います。
NOT A HOTELは、自宅にも別荘にもホテルにもなる「あたらしい暮らし」をつくろうとしています。
NOT A HOTELのアプリでは、利用予約からチェックイン・チェックアウト、ドアの解錠、スマートホームの操作、困った際のチャットサポートまで、一連のプロセスがアプリ内で完結するようになっています。
こちらの記事でNOT A HOTELのアプリのAndroidエンジニアが普段どのように働いているのかをお伝えできるとうれしいです。
ちなみに現在、3人目のAndroidエンジニアも積極採用しているので、ぜひチェックしてみてください。
転職のきっかけ
これまで前職、前々職と比較的大きな企業で働いてきました。大企業で手がけられる開発の魅力は感じていた一方で、サービスも自分自身も非線形な成長を遂げられる環境を求めるようになっていきました。
私が企業を選ぶとき、共感できるミッション、ビジョンを持っているかどうかを最も重視しています。そういうわけでNOT A HOTELを一番初めに気になった理由は、「世界をもっと楽しく」という壮大なビジョンと、「すべての人にNOT A HOTELを」という野心的なミッションによります。また、そのミッション、ビジョンに向かって自分の専門分野にとらわれることなく、全員が自ら考えサービスや自分自身も成長させていく”超自律”というバリューも気に入っており、実際に働くメンバーは全員が超自律して積極的にボールを拾いあっています。
何度かの面接の後、内定をいただいた時点ではいくつかの候補でまだ悩んでいました。最終的な決め手となったのは那須にあるNOT A HOTELの見学でした。建物の圧倒的な存在感やスマートホームを駆使した空間体験を目の当たりにし「この会社、振り切っているな」と感じて入社を決意しました。
11月 - 12月
オンボーディング
入社してまず驚いたことが、労務、IT環境などに関するオンボーディング資料がしっかり整っており、フルリモートにもかかわらずなにも困らなかったことです。労務についてやることリストが整然とまとまっていました。またIT環境についてリモートワークを行う上でのSlackなどによるコミュニケーションのルールなどがドキュメント化されているのに非常に感心したことを覚えています。
オフラインでのオンボーディングイベントも丸2日間あり、私にほとんど知識のない建築、ホテル運営、マーケティングなどについてレクチャーを受けることができました。このときに同期メンバーとも仲良くなることができて、嬉しかったです。
完成が見えないアプリ
それでは本題のAndroidアプリについて書いていきます。まず開発について率直に思ったことは、私より5ヶ月前に入社し、たった1人で開発していたharuさんのみでの開発なのにもかかわらず、かなりしっかりと設計されているな、ということでした。Single Activity、Jetpack Compose、Googleが推奨するアーキテクチャなどモダンな環境で、コードを読む上で困ることはなかったです。入社前はどういうコードなのかとても心配していたのですが、杞憂に終わりました。
スケジュールについては年内のリリースが目標でした。iOSとWebフロントに関しては数年前から開発しており、すでに何度もリリースを行なっているなかで、機能の一部を切り出してAndroidのファーストリリースとする計画でした。
進捗具合として全体的になんとなく動いているが、細部に未完成な部分も多く、どこができていないのかを網羅することが難しいという状態でした。大きな原因として、詳細な仕様を把握するのが困難だったことがあげられます。サービスが思っていた以上に複雑だったことに加え、ドキュメントの整理が間に合っていないという印象でした。そのため、詳細な仕様はiOSやWebのコードを読んで確認する必要があるのですが、読み進めるうちにどんどん新しい仕様に気づいたり、どうしてそのような処理になっているのか分からなかったりすることも多かったです。
穴を見つけて穴を埋める、という作業を延々と2人で繰り返していた感じでした。
1 - 2月
イベント
非常にイベントが多い月でした。新年はチームで初詣に行き、そのまま全社のオールハンズに参加しました。また、建築中のNOT A HOTEL KITAKARUIZAWAの見学ができる社内遠足には家族で参加しました。
アプリリリースの直前にはAndroid開発メンバーとNOT A HOTEL FUKUOKAでフィールドテストを行いました。リリース直後には福利厚生を使ってNOT A HOTEL NASUに宿泊し、妻の誕生日を今までで一番豪華に祝うことができました。
基本的にフルリモートですが、イベントがあったり、チームで自発的にオンサイト開発をしたりと、思っていた以上にメンバーとオフラインで出会う機会も多いという印象を受けました。
ファーストリリース
一方のAndroidアプリはというと、年が明けてようやく目処がつきました。整備が必要だった強制アップデートやメンテナンスモードを含む全体的なエラーの取り扱い、アプリのバージョニングやデプロイの環境整備も完了し、各機能も1月末には揃いました。
2月からはQA対応や有志によるフィールドテストのフィードバックを元に改善を行い、2月末に、開発開始から8ヶ月を経てようやくリリースとなりました。
スケジュールに関して当初は年末リリースを予定していたのですが、結局2度の延期を経て2月末の公開となりました。開発の日々の様子や、そもそもなぜAndroidアプリをゼロから開発したのかなどのエピソードは公式noteの記事になっているので、こちらをぜひご覧ください。
3月 - 6月
定期リリース
この間もお花見やハッカソンを初め、楽しいイベントがあり、モチベーション維持につながっています。
日々の仕事についてファーストリリースが終わり、バックエンド、iOS、Webフロントチームとともに3週間の定期リリースで進行しています。これにより業務のメリハリがつきました。またリリースごとにKPTによる振り返りを行い、サービス、プロセスともに改善しつつ、チームワークを高めることができていると感じています。
そのほかAndroidチームでの毎日の朝会や、アプリチームでの週に一度の雑談会などを通して、フルリモートによるコミュニケーション不足が起きないようにしています。
新機能 + 機能改善 + 機能追従
私のサービスへの理解も進み、仕事のペースをコントロールできる状態です。まだ、iOS、Webフロントと比べて機能的に追いついていない部分が多いので、新機能、機能改善と並行して、機能追従の開発を行なっています。
この期間にたくさんの機能開発を行いましたが、大きなものでいうと新機能として免許証の登録やカーシェアをアプリで行う機能を実装しました。また、NOT A HOTELを利用するための入り口となるホーム画面を機能追従の開発として実装しました。NOT A HOTELのアプリではホームタブのみテーマが異なるというデザインになっており、タブによるテーマの切り替えの仕組みも作り込みました。
現在は新機能となるNOT A HOTEL DAOを中心に開発をしています。
またサービスの性質上、ユーザーの要望や社内からのフィードバックをかなり細かく拾っており、機能改善の機会が多いのもこれまで私が携わってきたサービスにない特徴です。
機能追従として、機能やユーザーストーリー単位での依存関係を精査し、PERT図を作成してどの機能から開発するかの戦略を立てています。順番はユーザー価値や実装後の変更、改善の多さを考慮して決めています。PERT図は、Androidアプリがどの程度追従できたかを見える化するのにも役に立っています。
これから
半年を振り返ってみて月並みな感想ですが、あっという間でした。
入社前からのポジティブなギャップは、社員みんながビジョンやミッションに向かって、業種の垣根を超えて一丸となって超自律的にサービスを作り上げている、と感じたことです。また、サービス、プロセス、ソフトウェア全てにおいて改善と効率化の意識が強い会社だということも感じました。
リリースまで先が見えずに辛い時期もありましたが、その分、成長材料もあったと思っています。今はアプリとしての基盤が整い、ガンガン機能を増やしていく勢いのあるフェーズを楽しんでいます。
今後は、新機能 + 機能改善 + 機能追従をさらに加速させ、着手が後回しになっているアプリの基盤部分の改良や、さらなる開発体験の向上、Androidならではの機能の導入など、やりたいことがまだまだたくさんあります。
Androidエンジニアのみなさま、それ以外のみなさまも、一緒にNOT A HOTELで世界をもっと楽しくしてみませんか?