見出し画像

カウシェAndroidの1年の振り返りとこれから

こんにちは、株式会社カウシェで主に Android 版アプリの開発運用を担当している sintario です。私は 2021年の7月にカウシェに正社員として join し、およそ1年間サービスとともに密度の高い時間を歩んできました。この note では、1年間の Android 版アプリ開発を振り返って

  • どんな機能が実現されてきたか、どんな出来事があったか

  • これから更に取り組んでいきたいこと

をお話したいと思います。

sintario
ジャストシステム、DeNA、メルカリなどで主にスマートフォン向けのアプリ開発をするソフトウェアエンジニアとして働いたあと、複業期間を経て、フルリモートの正社員としてカウシェにジョイン。Android アプリの開発を主に担当。趣味は買い物で、カウシェのシェア買い募集もそのひとつ。
Twitter | GitHub 

フルタイム初年度の通算リリースは27回

カウシェは、誰かと一緒に楽しいお買い物体験をできるサービスです。
サービスローンチ当初は最低限の機能でリリースされたため、アプリがおすすめとしてリストアップした商品リストから気に入った商品の購入グループ(=シェア買い)を立ち上げていただき、SNS経由でお誘いしたお知り合いやご家族にグループ参加してもらえれば購入成立、といったようなシンプルなアプリでした。

しかし既存の他社EC購入体験に慣れたお客様からすると、こうした新体験提案はすんなり参入できるものではないですよね。使い慣れた体験をある程度取り込みつつ、カウシェならではのハマる購入体験をお届けするべく、日々サービス改良に取り組んでいます。
カウシェ社内の notion にはアプリのリリース履歴のページが有りまして、リリース ready になったところでアプリをストアの審査に出しながら新バージョンの収録内容をまとめる作業をします。私が join した 2021年7月から本稿執筆の2022年6月中頃までの Android アプリのリリースを振り返るとこんなかんじです。

bugfix version を刻んでいるのがちらほらあるのはお恥ずかしいところではありますが 、単純に数え上げると 27回 のリリースがありました。1年はおよそ52週ですから、平均で言えば概ね隔週リリース以上の頻度での delivery が行われてきたということになります。
カウシェの開発はなかなかに毎スプリント目まぐるしく、一つ一つの新機能も実際ボリューム感は小さくはありません。正社員メンバーだけでこれだけのリリースを達成するのは困難です。優秀な複業メンバーたちに助けていただきつつ、価値ある機能を最速でお届けすることを目指して、チーム一丸となって取り組んできました。
今回記述は主要な部分だけに絞っているため、細々とした改善や利用者の目に触れない実装面の変更・リリースしていない数多の試験実装は記述割愛しています。それらも含めれば、成果物の記述はこの倍くらいにはなると思います。

リリース間隔の波の裏に、非実装業務や破壊的組織進化

2週間ごとに機械的に1リリース、のような systematic な状態になっていると良いのかもしれないですが、ご覧頂いたようにリリース間隔が波打っている時期があったりします。
いわゆる大企業とは違いまだまだスタートアップであるカウシェでは、仕様の詳細を詰めるのももちろんプロダクトチームの職務の一部ですし、実装後のQAも自分たちで実施しています。ときにはこうした実装以外の部分で弾力的に時間を費やす必要のあることもあり、定型化に囚われすぎない形で最速の delivery を目指して取り組んできました。最近はQAを専門とするメンバーも増えて、助言を貰いながら品質確保に対するアプローチ改良も試行錯誤しています。

このほか、プロダクトも利用者数もそれを取り巻く世の中も時々刻々と変化していくので、目指すものが噛み合わなくなってきたと感じ始めたタイミングでプロダクトのコアバリューを定義し直すディスカッションを行ったりもしていました。インシデントの振り返りや再発防止体制を整えたり、部署横断で課題感を議論する会議体が立ち上がって巻き込み連携が強化されたり、ものを実装する傍らで組織自体も破壊的進化を遂げてきましたね。

自分たちの足りない部分に怖気づかない・ボトムアップに変化させていくことを恐れないのが Enjoy Working といいますか、カウシェの強みだと思います。今まさに組織の文化を自分たちが基礎づけているというその瞬間の当事者になれたことは、今振り返ると得難い瞬間だったと思います。

機能リリースの裏に、技術面のリニューアル

正社員として join する前から複業でカウシェの開発に関わっていましたが、当初は実績のある Android View と ViewBinding に LiveData をごくスタンダードなやり方で使う、いわゆる枯れた技術に比較的寄せたリポジトリでした。機能が当初まだまだ少なかったこともあり、モジュール分割も最低限でした。当時のトップ階層はこんな感じでした。

圧倒的に多くの新機能をこれから率先して作り上げていくという覚悟と自負をもって入社したのもあり、app モジュールの肥大を回避することは必要なことのように思えていました。今は feature module を導入して適度なサイズ感に分割されています(下図はそのうちお見せできる部分です)

また、 Jetpack Compose を製品に使用するのを他社も自然に始めた頃だったのもあり、 Android Jetpack や Kotlin Coroutines の最新を採択して技術面の若返り・可能ならより踏み込んで先鋭化を図って、複業企業が誘い文句としてよくいう「本業でカジュアルにチャレンジできない技術も積極的に実用化を検討する」を題目通り実践してやろうと野心的に取り組んできました。当時の pull requests を掘り起こしてみると、 2021年の8月くらいからでしたかね。

これの merge 直前に自分が書いてたコメントが Try First を地で行く感じで、今見ると微笑ましくもあり、怖いもの知らずでもあり、、、

その他 refreshVersions plugin を導入して依存ライブラリの管理が多少簡素化されたのを良いことに可能な限りアップデートを早めに取り込むようにしたりして、安定して製品 delivery をしつつも技術の未来に照準をあわせていく開発をしてきました。ときには思いも寄らない不具合を引き当ててしまうこともありますが、最速解決の責任を持つという部分も含めて委ねていただいていると、いい意味で身の引き締まる思いで捉えています。結果的に、古い技術に足を取られることがなかったのも効いたのか、この1年で開発した新機能の多くは Android 版が先行して機能提供していました。
こういった技術の裁量があるのはスタートアップ初期の挑みがいのあるところですよね。

新しい体験提案の傍らで、季節感や利便性にも気を配る

組織や技術採択の苛烈な一面を書いてきましたが、立ち返ってカウシェというサービスにとって本質的なのは、お客様が使っていて楽しくなってしまうようなショッピング体験を提案することに他ならず、すべての周辺事情は究極的にはこの大目的のための手段にすぎません。
リリース一覧のなかで色分けがしてあったのをお気づきの方もいらっしゃいますでしょうか。新しい購入体験を提案する機能とともに、季節性イベント対応やECとしての基礎機能を盤石にするための開発のバランスを取りながらリリースを行ってきました。あまたの試行錯誤を繰り返しながら、多角的な進化を続けています。

見た目だけでも、並べてみると1年でもはや別物です。

左:1年前くらいのアプリ、右:現在のアプリ

現在のアプリのカテゴリ一覧にも現れているように、食品中心でスタートしたカウシェは今や家電や日用品といった領域まで拡大。また、大人数シェア買い、タイムセールやミッションのような、ある種のゲーム性を帯びた機能も搭載されるようになりました。

興味深いことに、口コミの力によって、日本で生活するベトナム人のみなさまをはじめとする、非日本語話者の方々にもカウシェを利用していただいています。シェア買いタブで多言語の募集が入り乱れてやり取りされ、お客様同士が自発的に工夫して他言語話者に配慮した募集をされたり、カウシェの当初の想定を超えた方向への変化がありました。ボーダーレス化の進む世界の上で展開されるソーシャルなECというテーマの面白さ・予想を超えた方向に育っていくさまは、開発者としてドキドキワクワクする体験です。

そして次の1年とその先へ

こんな感じでなかなかのボリューム感で驚きとチャレンジに満ちた1年でしたが、もちろんこれでやり尽くしてしまったということなどまったくなく、まだまだカウシェとしてはやっていきたいことが数多くあります。

ソーシャルな購入体験の進化

「早く、安く」を基調とする利便性重視のいまのEC購入体験は、ある意味では孤独な作業であると言えます。商品レビューをもとに品物を買うとしても、そこには一方通行的な情報流通があり、時間的空間的に隔絶された「早く済ませたい」体験があります。

一方で、カウシェでシェア買いをしてみて、自分の口コミに賛同買いが起きたときの謎の満足感や、シェア買い成立が待ち遠しくついついアプリを覗いてしまう恋い焦がれるような時間を体験したことはないでしょうか。ひとと時間を共有する中で生まれる別のあたたかいEC観がどうやら存在していそうです。

カウシェはいまいちど、ドライになってしまったECの世界に「人と人とが楽しい時間を共有し有益な情報を交換しながら買い物をするあたたかい体験」を提案したいと考えています。
シェア買いを使ったミッション機能が提供開始されましたが、参加者同士の交流を加速するような機能はまだまだ進化の余地があります。

ソーシャルを支える堅実なECサービスの進化

カウシェは人づての紹介を通じて品物に出会えるサービスという面がありますが、紹介したくなるような良い品物を発見してもらうための基礎機能部分は意外にも後回しになってきました。カウシェに商品を展開してくださっている事業者様たちにとって、商品検索の面でリーチしやすいこと、商品陳列の面でより商品を魅力的に見せられること、などは大事な要素ですので、サービスに多くの利用者がついてきた今こそ重点的に強化していきたいと考えています。
またグループへの参加の敷居を下げ成立を後押しする観点で variant 対応(同種商品の色違いとかサイズ違いとかを同一商品として扱えるようにすること)もこれからぜひとも対応したい機能の一つです。技術的にも、サービス設計の大きな転換を必要とする可能性が高く困難ですが、間違いなく挑む価値のある課題です。

ソーシャルが生み出す最適化された流通の世界

カウシェは、上記のようなEC x ソーシャルの世界観のその先に、商品流通の未来のかたちを導き出すことを実は夢見ています。
シェア買いはグループ購入の一種であり、とくに大人数シェア買いのように大きな需要を一つのグループへの関心の高さとして可視化できる側面があります。ここから飛躍して、「消費者の品物を求める声を起点に、本当に求められる商品を必要なだけ作り出す」 Customer-to-Manufacturer (C2M) モデルを実現したい、とカウシェは考えています。
そのためにまずは基盤となるソーシャルな購入体験を磨き込んでいくことになりますが、目線を1年先の手堅い姿に固定せず、視線を上げて未来志向のサービスづくりをしていきます。

一緒にECの未来を開拓していきませんか?

カウシェのロードマップは、堅実に磨き上げたいソーシャルECの緩やかな上り坂の向こうに、流通の最適化モデルの創出という大変チャレンジングな難課題という2段構えになっていると言えます。

ただ、それは根拠もなにもないビジョン先行の夢物語というわけでもなく、少なくともお客様がカウシェの上でのシェア買い体験を楽しんでくださっていることは毎月積み上がって成長し続けているGMVなどで実感させられます。実際に自分でシェア買いもしますが、商品を紹介して仲間に共感されつられ買いが起きたり、どこかの誰かの参加で自分のグループが成立して、そのときに得られる不思議な満足感は、このサービスの進む先に新しいEC観が開けていそうなワクワク感を与えてくれます。この先に、どんな想像を超えた未来が待っているのか?まだ見えぬ未来に挑むためには、たくさんの Try First を必要とするでしょう。

より険しいチャレンジに早く挑める状況になるためにも、カウシェでは一緒にサービスを磨き込んでくださる方を積極募集中です。Android エンジニアとして私たちと一緒に利用者のために技術を使い尽くす開発にチャレンジしてみたい!という方も、それ以外の職種で一緒にプロダクトとECの未来を考えてくださる方も、まずは下記の採用情報ページから、ご応募お待ちしております!

イベント情報

7/13(水)の夜に本記事の技術パートの話をするテックイベントを開催します。ご興味を持っていただいた方は、ぜひご参加いただければ嬉しいです。

7月13日(水)19:00
KAUCHE Tech Talk #1 最速で0→1を乗り越えたエンジニアリングの裏側
〜 Backend、iOS、Android全て見せます〜

(上記とは別のイベントも開催します。是非ご参加ください)
7月20日(水)19:00
【Backend LT会】3社が向き合う解きがいのあるイシューとは
エウレカ x 令和トラベル x カウシェ3社合同イベント


この記事が気に入ったらサポートをしてみませんか?