こんにちは!エンジニアリングマネージャーの市川*1です。
私たちは「子どもを取り巻く環境をテクノロジーの力でよりよいものに」するために日々プロダクト開発をしています。 今日は、上記ミッションを実現しつづけていく/そのスピードをもっと上げていくために直近取り組んでいる重要課題をまとめてみました。 取り組んでいるストーリーや課題がたくさんあるなかでも、特に難易度が高い*2ものをピックアップしています。
- 決済基盤をつくる
- アカウント認証基盤のリプレイスを進める
- モバイルアプリの基盤改善をスタートする
- フロントエンドの基盤を改善する
- ドメインごとのリプレイスを進める
- その他、レガシーの置き土産を消化する
- さいごに
決済基盤をつくる
保育園へのさらなる価値提供のために、用品販売や決済の機能を作りはじめています。 コドモンには既に保育園⇔保護者間の請求・支払いの機能があるため、その既存機能も考慮に入れ、改めて決済基盤の構築を検討しています。
コドモンのどの機能も、もちろん可用性を疎かにできるものではないですが、お金をあつかう部分は特に慎重に堅実に可用性・信頼性を担保しなければなりません。 難易度は高いですが、盤石な基盤を構築できるよう取り組んでいきます。
アカウント認証基盤のリプレイスを進める
いまのコドモンでは、認証方式をcookie/sessionで中央集権的に持っています。今後マイクロサービス化していく際にその方式が足枷になるため、認証基盤のリプレイスを進めています。 その際、Auth0を利用することで多要素認証やSSOなども実現し、ユーザーにとってより安全に、より便利に使える状態を目指します。
このプロジェクトは2021年から始まりましたが、暗中模索でたくさんのトライアンドエラーを繰り返しながら、少しずつ前進しています。 トライアンドエラーの例としては、プロダクトのフレームワークのバージョンが古くAuth0の標準機能SDKを使えないというハードルがあったり、 アカウントに関する既存モデルの複雑さに悩まされたりなどがありました。
直近では、認証tokenを各APIが処理しないですむようAPI Gatewayをたてて処理する部分に取り組んでいます。 まだまだ先の長いプロジェクトですが、ユーザーにとっても私たちにとってもエフォートレスにアカウントを扱える未来に向けて、日々ほふく前進をつづけていきます。
モバイルアプリの基盤改善をスタートする
コドモンでは、保護者向け・保育士さん向けにモバイルアプリを提供しています。 保護者にとっては、都合のいいタイミングで保育園とやりとりしたり、保育園ですごす我が子の様子を知れたり、親子の温かい時間をそっと支援する存在として。 保育士さんにとっては、施設内に台数が限られるパソコンではなくスマホやタブレットなどでも業務上必要な記録や連絡ができることで、子どもと向き合う時間・ゆとりを増やせる業務省力化の味方として。 まさに「子どもを取り巻く環境をテクノロジーの力でよりよいものに」したいという気持ちでモバイルアプリを作っています。
とはいえ現状のモバイルアプリにはUI/UXや開発機動力の面で伸びしろも多いです。使う人もつくる人もエフォートレスなモバイルアプリを目指して、UI/UX面からも技術面からも改善していきます。
この具体的な実現手段がリプレイスなのか、基盤改善なのかは、目下検討中です。
フロントエンドの基盤を改善する
いまのモノリシックなコドモンは、バックエンド・フロントエンドともにレガシーなスタックです。 プロダクトの可用性を担保するために、特にフロントエンドに関してフレームワークなど基盤部分の改善を予定しています。
ドメインごとのリプレイスを進める
前項のとおり、いまのコドモンはバックエンド・フロントエンドともにスタックがレガシーです。 プロダクトの拡張性・開発機動力を上げていくために、ドメイン単位でマイクロサービスアーキテクチャへのリプレイスを進めています。
リプレイスは2020年から始まりました。進め方としては、コンテキストマップを作成し、分解しやすく分解のメリットも大きいドメインからリプレイスしていっています。 ドメインごとのリプレイスについては『技術的負債解消への取り組み -マイクロサービスへの挑戦-』というテーマでDevelopers Summit 2023に登壇しました! - コドモン Product Team Blogに、「なぜしているのか」「どうやっているのか」などを記載したスライドも貼っているので、ご興味のある方はぜひお読みいただけると嬉しいです。
その他、レガシーの置き土産を消化する
バグの温床になったり、可用性担保のハードルになったり、開発機動力のハードルになったり、未来の発展の足枷になったりしている要素がまだまだあります。
例えば、保育士さんと保護者さんのやりとりを手助けする通知機能(メールやプッシュ)のパフォーマンスや可用性を改善したい。 テスタブルでなくリファクタリングしづらいコードをテスタブルにしてリファクタリングのハードルを下げたい。APIの単位や呼び方を整理して通信を最適化したい。
そのようなレガシー起因の課題を、愚直にひとつずつつぶしていきます。
さいごに
コドモンは初期開発からでいうと2013年からつづくプロダクトです。「早くたくさん機能をつくる」ことを最優先に開発していたフェーズから「開発・保守しやすいプロダクト」を目指すよう舵を切ったのが2020年。技術負債に取り組みはじめて今年で3年になります。
ここからの道のりもまだまだ長く険しいですが、振り返ると、あの頃手が届かなくて歯痒かったのに今では当たり前になっているものもたくさんあります。ここに書いた重要課題も、何年後かに懐かしく振り返る日がきっとくると信じて、ここからも一歩一歩進んでいきたいです。
ここに挙げた重要課題についてご興味のあるかた・知見のあるかたがもしいらっしゃれば、ぜひお気軽にお話する機会をいただけると嬉しいです!