アジャイル開発により
Webサービスのアプリ化を2か月半で実現

株式会社SANU

「Live with Nature. / 自然と共に生きる。」を掲げ「SANU 2nd Home」を運営するSANUは、都市と自然を軽やかに行き来するライフスタイルをより身近にするため、自社アプリの開発に踏み切りました。
従来はWebとメールでの作業が中心だったため利便性に課題がありましたが、リソース不足が壁となっていました。これに対しアイスリーデザインは、徹底した事前環境構築により並行開発を可能にし、実質2か月半という短納期でのリリースを実現しました。

株式会社SANU アジャイル開発によりWebサービスのアプリ化を2か月半で実現

Overview

概要

アニバーサリーイベントに間に合わせた、実質2か月半のモバイルアプリ開発

セカンドホームサービス「SANU 2nd Home」を運営する株式会社SANUは、滞在体験の改善に向けてモバイルアプリの開発を計画していました。

従来はWebブラウザとメールで予約を管理していましたが、メールから予約情報を探すのが手間となっており、プッシュ通知で即座にアクセスできるといったモバイルアプリならではの利便性が求められていました。

しかし既存のWeb開発や新機能開発と並行してアプリ開発を進める必要があり、人的リソースを割くことができない状況でした。アイスリーデザインは、プロジェクト開始前からの徹底的な環境構築により、実質2か月半という短納期でのアプリ開発を実現しました。

今回は、SANU 2nd Home アプリ開発責任者の小笠原さん、アイスリーデザイン プロジェクトマネージャー・テックリードの桐生の2名に、プロジェクトの舞台裏を伺いました。

クライアントの課題

既存開発と並行したアプリ開発の困難

既存のWeb開発や新機能開発を並行して進めており、アプリ開発に人的リソースを割くことができない状況だった。

Webとメールの組み合わせによる体験の限界

メールから予約情報を探す手間が発生。プッシュ通知などスマートフォン時代の「当たり前」の体験が提供できていなかった。

i3DESIGNの解決方法

プロジェクト開始前にインフラと技術環境を構築

開始1週間前から開発に使用するツールなどの事前準備を行い、即座に開発着手。GraphQLで画面変更に強い設計をするなど、両社の協働により約2.5倍の開発スピードを達成。

仕様確定前から先行実装し、変更に即座に対応

仕様が固まっていない部分も予測して仮実装を先行。決定後すぐに変更・反映できる柔軟な構成で開発スピードを維持。

実機で毎日検証し、手戻りを最小化

TestFlightで当日〜翌日にフィードバックが返る高速なプロセスを、両社で協力することにより実現。早期検証で手戻りを防ぎ、確実な納期達成に貢献。

Interview

インタビュー

スマートフォン時代の「当たり前」を提供したい

左から株式会社SANUの小笠原さん、アイスリーデザインの桐生

左から株式会社SANUの小笠原さん、アイスリーデザインの桐生

―― プロジェクト前にどのような課題をお持ちでしたか?

小笠原さん

SANUは創業初期のノーコード運用を経て、昨年4月に内製チームでシステム基盤を刷新しました。少数精鋭のエンジニアとともに「SANUらしい体験を自分たちの手でつくる」べく磨き込んできましたが、Webブラウザだけでは、私たちが理想とする「日常から自然へ軽やかにスイッチする体験」を届けるにはまだ不十分だと感じていたんです。

というのも、当時はメールボックスからSANUのメールを検索して予約情報を探す手間がありました。プッシュ通知で即座にアクセスできるなど、自然に通う導線をスマホ上で完結させるモバイルアプリならではの体験を、十分に提供できていませんでした。

私がその提案をしたのが7月の後半ですね。その際、リリースの目標を11月11日に定めました。その日がSANUのサービス開始4周年だったためです。しかし、Webサービス自体の並行開発が続いており、社内リソースが割けない状況でした。そこで、外部パートナーと一緒に開発を進める選択をしました。

―― その中で、アイスリーデザインを選ばれた決め手は何だったのでしょうか?

小笠原さん

私たちがすでに使用している技術との親和性が高いReact Nativeを採用することを決めていたので、その開発経験が豊富な会社を探そうというのが最初の視点でした。

アイスリーデザインさんは以前一緒にお仕事した経験があったため、ホームページを拝見したところ、React Nativeの開発事例や技術ブログなどが多く掲載されていました。そこでお問い合わせさせていただいたのですが、前回別のプロジェクトでご一緒した方に要件を見ていただいた時に「これなら大丈夫です」と言っていただきました。以前の案件で、アイスリーデザインさんは技術力の高さを感じられましたし、今回も自信を持っていろいろと回答いただけたので、信頼できると感じたんです。

開始前の徹底準備が、短納期を可能に

開始前の徹底準備が、短納期を可能に

―― 実質2か月半という短納期で遅延なくリリースできた要因はどこにあると考えていますか?

桐生

大きく分けて3つの要因があると考えています。1つ目は、開始1週間前に行った「事前の準備」です。2つ目は、開発初期から「TestFlightによる実機確認」ができる環境を整えたこと。そして3つ目は、柔軟な開発を支える「GraphQLの活用」です。

これらを軸に、イベントが多く時間を要する通常のスクラム開発ではなく、カンバン方式の軽量アジャイルを採用しました。通常、多くのプロジェクトではファーストリリースに3、4か月ほどかけますが、今回は2か月半という短期間での開発だったので、とにかく密なコミュニケーションと素早いアウトプットに集中したことが、短納期でのリリースに繋がりました。

―― 「事前の準備」では、具体的にどのようなことを行いましたか?

桐生

開始1週間前に、どういう構成で作るかをかっちり準備しました。今回は仕様を作りながら固めていくプロジェクトだったので、デザインやレイアウトが固まるのを待っていては間に合いません。そこで、初期段階でディレクトリの設計やライブラリの設定を済ませ、決まった時にすぐ変更・反映できるシステム構成を整えました。

小笠原さん

そのおかげで、最初の打ち合わせから、「実はもう着手してます」と言っていただき、非常にスムーズなスタートが切れました。

仕様書も揃っていない、仕様やデザインが度々変わるという流動的な状況でしたが、皆さん真摯に向き合っていただいて。例えば、ざっくりした仕様から「多分こういうことだろう」と予測して先に実装してもらい、「こんな感じでしょうか」と確認いただく。本来ならこちらから事前に提示するべきことも予想して先行して作っていただくということが結構ありました。

仕様やデザインが度々変わるという流動的な状況

―― 2つ目に挙げていただいた「TestFlightによる実機確認」というプロセスには、どのようなメリットがありますか?

桐生

開発初期から実機でのテストを行うことで、実際の利用状況での課題を素早く見つけ、スピーディな対応が可能になります。

開発者のシミュレーターではなく、ユーザーが普段使っている操作感で使うことで見える、レイアウト崩れや操作感の悪さがありますよね。そのため、開発者以外の第三者が触って気づくことは多いと思っていて。そこで、TestFlightで開発者以外の人に配信して触ってもらう環境を、出だしの段階で小笠原さんと一緒に作ったんです。

開発においては実機で動かして操作感を確認して改善を繰り返すのが、アプリの品質を向上し、いいUXに近づけていくために必要なことだと考えています。

小笠原さん

それはすごく良かったです。TestFlightによる配信の仕組みは開発者以外でも使えるものであるため、SANUのスタッフにも使ってもらうことを大事なプロセスの1つとして、スケジュールに組み込んで進めました。その結果、開発している私たちでは気づけなかったことを、他のSANUのスタッフが気づくことがたくさんあって。私も実機で触ってみて「ここを修正してほしい」と素早くフィードバックできましたし、ビジネスサイドや社員のみんなと確認を進めました。

特に今回は、単なる実機テストだけでなく、実際の宿泊施設での検証が不可欠でした。アプリでのチェックイン操作によって暗証番号が表示され、宿泊施設のドアにその番号を入力することで、鍵を開けることができます。他の一般的なスマホアプリとは違って、宿泊施設の鍵と連携して使用することが前提だったので、実際のデバイス上で動作する状態にして、施設での動作検証を、リリース前に絶対にやりたかったんです。

この実地検証を事前に計画に組み込んでおいたこともあり、2週間程度テストを行うことができました。実際に使ってみて気づいたこともありましたし、弊社のスタッフにも使ってもらい、フィードバックをもとに改善することをリリース前にできたのは非常に良かったです。

―― 3つ目の要因である「GraphQLの活用」は、技術的にどう寄与したのでしょうか?

小笠原さん

もともと、GraphQLはコアの技術として採用していました。最近はメジャーになってきましたが、まだ「GraphQLでお願いします」と言って「はい、わかりました」と言っていただけるベンダーさんは少ないかと思います。

今回お話したら「全然いけます」ということで。仕様も、仕様書を書いて渡すのではなく、定義されたソースコードを見ていただいて、解釈して作っていただきました。プラスで何かお伝えすることもなく、滞りなく開発を進めていただけたので、非常に良かったです。

当初、API仕様を理解して実装を進めるのに多少は時間がかかると想定していました。GraphQLでの開発経験が豊富にあったことで、スピーディーに開発を進めていただけましたし、短期間でリリースできた大きな勝因だったと思います。

必要なバリューを届け、ユーザーと共に育てるアプリへ

必要なバリューを届け、ユーザーと共に育てるアプリへ

―― Web版と比較してユーザー体験はどのように進化したと感じられていますか?

小笠原さん

リリースされたモバイルアプリは、最低限のバリューは届けられていると思いますが、まだまだ成長の余地があるという状況です。というのも私たちは、実際にユーザーに使っていただいてフィードバックを得ながら育てていく方が、自分たちがいいと思うものを作るより価値があると考えているからです。

なので、現状はものすごく作り込んだアプリではありませんが、当初の想定通りユーザーに「モバイルアプリとしての使い勝手の良さ」という価値は届けられたと思っています。

―― リリース後の反響はいかがでしょうか?

小笠原さん

なかなかいい反響って届きにくいんですが、「こうしてほしい」「Android版も作ってください」「こういう機能があったら嬉しい」というフィードバックをいただいています。期待は大きいと感じています。

スタッフは皆「待ってました」という感じで、非常に喜んでくれました。SANUのスタッフはSANUのヘビーユーザーでもあって、みんな定期的に滞在しています。「アプリは出さないの?」という声もあったので、「アプリが出てよかった」と言ってくれたのは純粋に嬉しいですね。

それから、誰もこんな短期間でリリースするとは思ってなかったみたいで、「もうできたの!?」という反応もいただきました(笑)。

―― 将来的に内製化を目指されていると伺いました。その中で、今回の協働開発はどのような意義がありましたか?

小笠原さん

私たちはReactやGraphQLを活用した開発を行っていますが、React Nativeでのアプリ開発経験のあるエンジニアがおらず、限られたリソースで1から作るのは難しかったと思います。

今回、React Native開発の豊富な経験をお持ちのアイスリーデザインさんと一緒に開発できたことで、SANUのアプリ開発の土台が出来上がり、私たち自身でスムーズにアプリ開発を進めていくことができるようになったと感じています。

アイスリーデザインさんは、今回モバイルアプリ開発だけ対応いただきましたが、以前にWebアプリケーション開発や、UX/UIデザインもご一緒させていただきました。ですので、デザインから開発までをサービス単位でまるっとお任せできる可能性もあるのかなと思っています。SANUが成長していく中で、そのような機会があれば、またぜひご一緒できればと思っています。

桐生

こちらこそ、今回はご一緒できて嬉しかったです。始まる前は2か月半でリリースできるのか不安もありましたが、やろうと思えばできるという良い経験になりました。開発チームに加わっていた若いエンジニア達も「仕事が楽しい」と言ってくれて。そういった面も含めて、いろんな意味で良い環境で仕事ができたと思います。ありがとうございました。

小笠原さん

本当に、皆さんと楽しく仕事をすることができました。そのことが一番良かったです。こちらこそありがとうございました。

小笠原さんと桐生

Always on Mission

共に考え、共に創るパートナーとして、
各分野の専門家が最適な道を描きます。
ぜひ1度、ビジョンやお悩みを
お聞かせください。

ただ作るだけでは終わらせない。
ビジネスの成果を導くスマホアプリ開発。

企業の成長を支える“ユーザー体験起点のアプリ開発”を提供します。
構想からUX/UI、開発、運用までをワンチームで伴走し、金融・不動産・人材・情報通信・小売など、さまざまな業界で培ったUXとテクノロジーの力で、ビジネスの変革を加速させます。

Case study事例

word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word

mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1