この記事について:2020年6月にリリースされた自社サービス『MGRe(メグリ)』。2019年の12月から、EAP(MGReの前身サービス)のSaaS化プロジェクトとしてスタートした。当時の開発現場の様子をリーダーたちが語りました。※本記事は2023年12月にnoteで公開された記事の転載です。
2019年12月
SaaS化プロジェクトが本格スタート
二木 なんだか久しぶりですね。
篠田 コロナ禍でフルリモートになってから、こうやって全員揃うことってレアだよね(笑)
左から、田邊(Androidリーダー)Androidの設計・開発をリード
二木(VPoE 兼 iOSリーダー)エンジニア組織マネジメント、iOSの設計・開発をリード
篠田(プランナー)MGReの新機能企画や改善方針を担当
蔵下(サーバサイドリーダー)サーバサイドの設計・開発をリード
ー SaaS化プロジェクトがスタートしてから、コロナ禍へ突入
篠田 2019年の12月から、EAP(MGReの前身となるサービス)のSaaS化プロジェクトがスタートしました。翌年6月に『MGRe(メグリ)』として新ブランドがリリースされました。まさか、コロナ禍が来ることなんて誰も想像していなくて。予定通りリリースできたのはほんとにすごいと思う。
二木 子どもが登園禁止になったので、当時のことはよく覚えています。2020年2月あたりからメグリも出社禁止になったんですよね。「ハイ、明日から来ないでね!」って。日中も自宅に子どもがいる中で、限られた時間でリリースプロジェクトを進めることになったので、あの時は結構きつかったですね。
ー 通勤時間がなくなったことにより、開発に集中できた
田邊 僕は、通勤時間がなくなったので、むしろ開発に集中できました。仕事の分量はかなり多かったけど楽に感じました。当時は子どもがいなかったのですが、今なら二木さんの大変さがわかります。この状況で同じことをやれと言われたら…きついです(笑)。
蔵下 自分も同じく通勤時間がなくなったので、作業効率が上がりました。でも、設計を作っている段階では出社していましたよね。それが終わってからフルリモートになったので、ちょうどいいタイミングだったというか。
ー オフィスにある卓球台スペースで設計について話した
移転前のオフィス
田邊 フルリモートになる前、卓球台スペースで話しましたよね(笑)
二木 懐かしい!移転前のオフィスですよね。MGReを開発するにあたって、サーバーサイドのエンジニアと仕組みをどうするかなどすり合わせをしてましたね。
田邊 設計のところを直接話せたのはかなり大きかった。
辿りついたのはコアとテナント
SaaSとしての品質と、
カスタマイズできる柔軟性の二つを叶える設計
ー 優先したのは、仕組みづくりとその検証
二木 SaaS化するにあたって、やりたいことは山ほどあったんですけど、まずは理想の形をどうするかを優先しました。細かいところのプログラム修正は後からできるので。理想としている仕組みが、想定通りに動くかについて検証する必要があったので。
田邉 コーディングも、EAPというパッケージに近いサービスがあったので、イチからやったわけじゃなくて。そのソースコードを活かしながらSaaSに適した仕組みに変えていきました。
ー コア(基本機能)とテナント領域(カスタマイズ)で構成された設計
二木 SaaSなので基本機能は定期的にアップデートしたいですし、でも、案件やお客様によっては、個別に機能や画面を追加するなどカスタマイズしたいというニーズがあったんです。その二つを叶える構成を考えました。
篠田 それ、結構難しいですよね。
二木 そうですね。それを実現するために、我々の言葉で説明すると”コア”と”テナント領域※”という二つの領域に分ける構成にしました。この構成を考えたのはいいものの、どのように仕分けるか、情報を整理するか…これが、かなり大変でした。
3年前の話なので、若干大変さを忘れつつありますが(笑)まずはこの仕組みづくりを三人で協力しながら進めました。(※テナント領域:クライアントごとに必要な機能の追加やシステム連携の仕組みを自由に行えるように用意したカスタマイズ用の領域)
”コア”と”テナント領域"にわかれているのがMGReの特長。構成と情報整理に時間を要した
田邊 それで、各々作った仕組みで試してみようということになって。
二木 あ、ハマった!って思った。
蔵下 ですね。うまくハマった感覚がありましたね。思ったよりトラブルが発生しなかった。そこから、また調整していきました。
ー オンラインでやったモブプロ
二木 当時、リリース以外に、新しく受注した4つの案件を動かしていたので...どちらかというと、それが大変でした(笑)
田邊 同時並行でプロジェクトを動かしていましたよね。そういえばモブプロしましたよね。
一同 そうそう!(笑)
二木 それまでは出社して、同じ画面を覗き込む形でやっていたのですが、オンラインで画面共有しながら手元作業を進めました。
蔵下 あれはかなり効率がよかった。ペアプロとかモブプロって、オフラインのイメージが強いけど、オンラインとの相性がいい。
二木 各分野の人たちが集まって一緒にやるのも珍しいんじゃないでしょうか。
開発の手助けとなる”MGReAuth”
サーバサイドでコアのような動きをできるテナントを目指した
篠田 設計のユニークさで言うと、MGReAuthがあるからできることも多くて。
蔵下 サーバサイドの設計をするにあたって、毎回発生する繋ぎ込みをする作業をできるだけ減らしたかったんです。なので、テナント側でできるだけ拡張性や柔軟性を保ちながら開発を省力化することを目指しました。具体的には、パターン化できる共通のプログラムを動かすことができるライブラリ(MGReAuth)を作りました。
篠田 プランナーからすると、MGReAuthがあることによってお客様への提案がしやすい。
サーバサイドの設計を担当した蔵下(写真右)
蔵下 実はこれ、EAPの時からやっていたことでもあって。
二木 MGReの開発って、こうやって抽象して共通化する作業が本当に多いんです。私はフルスクラッチ開発の経験が多かったのですが、メグリに入社してから設計の考え方が大きく変わりました。
MGRe(SaaS)のいいところ
「設計が整理されている」そして「コアがあることにより、品質が安定している」
二木 同じコアを使っているので、そこの品質があるとすべてが上がる。お客様からすると、安定しているものを使える。それがいいと思います。スクラッチで作るよりも安定性が高い。
篠田 MGReができた時、見通しが良くなった気がした。クリアになっている印象があった。
蔵下 昨晩も大規模アップデートをしたんですけど、これもスムーズに事が運びました。コアとテナントに整理したことによって、予測が立てやすくなったんです。
二木 あとは、メグリってアプリのクラッシュ率がほんと低いんですよね。他サービスから乗り換えてくださったお客様にも喜ばれることが多いです。
田邉 アプリ開発って、意外と多く発生しているのがアプリが落ちるってこと。でもこれってアプリストアの評価にも影響がでてしまうんですよね。
あと、アプリだと毎年新しいOSが出るので、それに対応できないと...。MGReは数ヶ月前からそれに取り組み、テストして。更新時はスムーズにストアからダウンロードできるようにしています。
ー コアとテナントに整理されているから、新しいアイディアに対応できる
篠田 あとは、柔軟性がとにかく高い。コアとテナントがあることによって、SDK組み込みもスムーズに対応できましたし、複雑なリクエストに答えられるイベントタスクキューもできた。
エンジニアチームに何かを相談しにいくと、「あ、こんなんありまっせ」とスっと解決策が出てくる印象。「マジで!?!」って毎回言っていますよね(笑)プランナーとしては夢が広がります。
フルリモートで、しっかりと成果を出す
島根や地方に住んでいる社員もいる
篠田 もともと週1くらいの頻度でリモート勤務はしていたんですけど、コロナ禍でフルリモートに切り替わって。そこは思ったよりすんなり順応できた印象があります。ネットワーク的なトラブルが一番心配だったんですけど、それはなくて。会社としてリモートワーク手当がすぐに出たのもよかった。
二木 何に使いました?
篠田 椅子を買いました。高さが調整できるやつ。あれはありがたかったです。こうやってリモートワークをうまく活用できるのはメグリらしいよね。
そういえば、フルリモート化をきっかけに地方社員の採用も始めたんだっけ。何人か入社してくださったので、そろそろ西日本支社とかあっても良さそう(笑)
二木 まだ会っていない人たちもいますよね。次の社員総会はオフ会みたいになりそう(笑)
田邉 フルリモートになって、より工夫して仕事を進めるようになったと思います。同期と非同期を使い分けて、コミュニケーションをとる。フレックスなので、カレンダーでお互いの動きを見えるようにしています。
エンジニアとしての手腕が試される環境
難しいけれど、これがおもしろい
ー 複数の物事を抽象化して、共通化や取捨選択していく作業
二木 田邊さんって、前職でも同じような設計をやっていたんですか?
田邊 いえ、以前は研究開発をしていたので、抽象化・仮説立てはよく行っていましたが、特定分野での独自機能を開発することが多くて。メグリに入社してからは広く使ってもらうような設計を意識するようになりました。
二木 プロダクトの設計に対して、一つ上のレイヤーで物事を考えていかないといけないから大変だよね。でも、そこがやりがいの一つでもある。
田邊 そうそう、エンジニアとして腕の見せ所です。
ー お客様にとって最適な提案を自分達からすることができる
二木 MGReは自社サービスなので、お客様から指定された要件や仕様に沿って作るのではなく、自分たちから提案していくことができます。受託開発と異なるポイントですね。
篠田 主体者になるよね。良いものを作りたい、サービスを育てていきたい志向性の人にとっては、すごくいい経験になると思う。いきなり宣伝を挟みますが、メグリでは社員を募集をしているので、興味がある人はお気軽にお問い合わせください(笑)
カイゼンを回して、より良いサービスに育てていく
ー 毎月、カイゼンを回している
二木 プランニングチームやカスタマーサクセスと相談しながら、だいたい3ヶ月ごとにマイルストーンを設定していることが多いです。
田邊 それとは別に、毎月、カイゼンも回せるようにしています。気軽にエンジニアチームで意見を出しながら、アップデートやブラッシュアップを随時進めています。
ー チームで協力しながら、より良いサービスを作っていきたい
二木 私たちのサービスって、日本人の10人に1人が利用している※って言われているんです。でも、本当、たまに友達が使ってくれていることがあって。もちろん店頭で見かける時もある。そういった時に、よりやりがいを感じます。実際にユーザーとして利便性を感じていたという理由でメグリに興味を持ってくれた社員もいて。嬉しいですよね。※アプリの月間AU900万人(2022年12月時点)
篠田 ビジネス的な側面でいうと、どの企業もOMOの考え方が進んでいるので、MGReはさらに必要とされる存在になっていくと思っています。お客様に寄り添いながら、さまざまなニーズやリクエストに答えられるようにしていく。そこでしっかりと自分たちの力を発揮していきたい。
蔵下 そうですね。そのためにも、より良いものを作っていきたい。サーバサイドはエンドユーザーから見えるわけじゃないけれど、コツコツと基盤を作り直したり、サーバの重要なところの改修やパフォーマンス向上に取り組んでいます。小さいカイゼンを重ねて、いいサービスにしたい。
田邊 作って終わり、じゃなくて、作って育てる。カイゼンしたことを活かして、サービスを進化させていく。将来を見据えた設計をしていきたいです。
二木 自分たちの成長がサービスの成長に直結するので、そこにもしっかりと向き合っていきたいです。一人一人の個性を活かしながら、MGReのチームだからこそ実現できることにチャレンジし続けたいです。