スパゲッティ化して改修困難になったプロダクトをフルスクラッチでリニューアルした話


これはアソビュー Advent Calendar 2021の16日目の記事です。

アソビューCPOの横峯です。

弊社アソビューではアソビュー!そとあそびアソビュー!ギフトというC向けのサービスの他にB向けのサービスもいくつか展開しております。

その一つラフティングやダイビング、陶芸教室などの体験アクティビティと呼ばれる事業者様に使って頂いてるウラカタというプロダクトがあります。

既存のコードをすべて捨てて今年の11月にリニューアルした話です。

📕歴史と経緯

初期のウラカタは株式会社そとあそびで僕が一人で開発してたプロダクトでした。2014年から開始して2年ほど僕以外コミットしてる人がいません。マンションベンチャーで新規プロジェクトだったので最初はもちろんPMFできるかわからない状態です。

という言い訳を元にとてもコードの品質が高いものとは言えない状態でした。とにかく使っていただきたい、使えるものを出したいという思いのもと短期的なスピードを圧倒的に優先し開発していたためテストコードも少なくレビュー体制もありませんでした(一人なのでそりゃそうなのですが...)

その状態で進めていたおかげか多くの方に使っていただけるサービスに成長していき、2016年に会社が株式会社アカツキとMAをすることになりました。※当時の記事プレス

このあと一気に事業を成長させるべく、開発にも大幅に投資します。

多くのエンジニアの方に参画頂いたのですが、コードは読みづらく機能も複雑だったため、改修の難易度がどんどんあがっていきます。

徐々に細かいバグが増え、そのバグを修正してもどこか違う箇所でバグが起きるような状態。この頃には様々なアクティビティ業界の方と話をできる状態になっていたので、市場のニーズは多く理解できてきているが、運用のためのタスクが積み上がってるため、描いたようなプロダクトの成長ができない状態になっていました

開発してる側もつらく、その原因を作った自覚のある僕もつらい状態が続きましたが、それでもその後2年ほど改善を続けプロダクトは成長していきました。が、今度は事業観点で縮小が決定。開発も最小限にしてしばらくバグの改修のみを細く続ける状態でした。

🔨作り直し決定

2018年頃、僕が事業責任者をやることになったタイミングでプロダクトのロードマップを描きなおし、前回の反省を踏まえた上で0から作り直すことを決定しました。

同時にビジネスモデルも変更し、継続的に成長しながらプロダクトをあるべき姿に変えていく構想をスタートしました。

といっても開発体制はほぼなかったので、まずはその構築から。

以前関わってくれていた方を中心にチームを再結成し、前回の反省を踏まえ品質にはこだわりをもってやろうと再スタート。

まず機能の整理からはじめました。

ユーザーストーリーマッピングを全員必読にし、実際に全員ですり合わせました。※これを実施したのはコロナ前なのでリアルボード

現行バージョンは細かい機能がかなり多かったため、すべての機能の使用率を調査し、ミニマムのスコープを定義しました。

今回のリニューアルは今後の中長期的な成長を支える基盤になるもののため品質をとにかく優先しよう。その認識をチームで共通のものにするためインセプションデッキを行い明文化しました。

期日、機能より品質、セキュリティが大事であることを明確に定義。

これがあったことで、そのあと議論になったときに立ち返る場所になったと思います。ユーザーストーリーマッピングもインセプションデッキもよく使われてるツールだと思いますが、改めてその価値を実感しました。

実際、開発を開始してからしばらくするとコロナが本格化して事業としては大打撃を受けたり、会社もMAを実施することになり親会社が変わったりと環境は目まぐるしく変わっていましたが、ウラカタの開発だけはスタンスを変更せず最初に誓った志を保って開発を続けていました。

その結果開発を開始してから2年以上たつ今でも細かいバグもほとんどなく、新しい価値を提供するために多くのリソースを避けていると思いますし、以前のように既存のコードを読み続けてよくわからなくなってるところをドキドキしながら改修するようなことはなく、開発に関わってくれる方のストレスも少ない状態が保てているのではと思ってます。そのため結果的には今後の事業成長のスピードを最大化できる状態が作れていると思っています。

🌈今後

ウラカタは体験アクティビティ事業者の方々の業務を効率化し、集客に貢献できるプロダクトだと思っています。

僕自身、この業界に関わりはじめて知りましたが、体験アクティビティ事業者の方々はほんとにたくさんの業務を少人数でやられています。

朝、新しい予約の確認をして予約申し込み頂いてる方とメールでやりとりをしたあと、ツアーのための準備、実際にツアーを催行してお客様を見送ったあと、翌日の準備、その間も予約申込は続くためその対応を一件一件行っていく。繁忙期は早朝から深夜までは当たり前。多くの事業者様がこれを毎日行っていることを知りました。

ほんとはやりたいけど、できてないこともたくさんあると聞きます。少しでも業務を効率化し、予約を増やすことができれば、お客様との時間や、ツアー自体をどう良くしていくかに時間を使っていただけるのではないか。そんな思いを持って日々開発を続けています。

弊社はミッションとして「生きるに、遊びを。」を掲げています。身をおいてるからこそ、日々遊びが進化し多様化してることを実感をもって感じています。どれだけ多様化してもそれぞれの良さや楽しさがあります。その中で選択され続けるためにも業界全体がサステナブルでより良い状態へ向かっていけるようにしていく必要があると思っています。

僕自身、たくさんの体験アクティビティ事業者の方々とお会いしましたが、みなさん強い思いを持たれていたり、そのアクティビティが大好きだったり目を輝かせて自身の仕事や体験について語ってくれることがとても印象的です。

僕個人のミッションとして「楽しく生きる人を増やす」を掲げています。今ウラカタを通してたくさんの事業者の方々をサポートすることはまさに楽しく仕事する方を増やすことに直結してると感じてますし、多くの方の楽しい体験の時間を下支えしている実感があります。

この波はまだまだ大きくできるし、もっともっと大きくなって世の中の楽しい時間が増えればいいなと思ってます!


そんなミッションに興味もってくれた方も、遊びのSaaSに興味もってくれた方も全方位で仲間を大募集しております!楽しく質にこだわりをもって一緒に開発しましょう!