多店舗の事業者向け業務基幹SaaSの新規開発
Status / 状況 開発中
レジ・予約・顧客管理・在庫・分析の機能とLINEミニアプリを備えた基幹システムを、ゼロから開発しています。事業者がこれまで使っていたパッケージ製品を置き換えます。CodeCiaoは開発チームのプロジェクトリードと技術統括を担当しています。
- 業界
- 店舗ビジネス
- 期間
- 2025年から
- 役割
- プロジェクトリード / 技術統括
これまで 自分たちで直せないパッケージ 自分たちで直せないパッケージ
からこれから 自分たちで決められる基幹SaaS
開発中
1つの基幹システム (開発中(リリース前))
古いシステムからのデータ移行も開発の範囲に含む
古いシステムからのデータ移行も開発の範囲に含む
- レジ
- バックヤード
- Web予約
- LINEミニアプリ
- 管理画面
- 分析
概要
- 業務の領域
- 19 ドメイン
- 設計書にある画面
- 約 190 画面
- 自動テスト
- 約 2.8 万件
- 開発開始からの変更
- 約 1 万コミット
これまで
事業者は長いあいだ、他社のパッケージ製品を使ってきました。機能の追加も日程も、事業者だけでは決められませんでした。予約・会計・顧客の情報は別々のシステムに分かれていました。そのため、担当者が手で入力し直す作業が残っていました。
これから
CodeCiaoのチームは、6つの機能を1つの基幹システムとして開発しています。対象は、レジ・バックヤード・Web予約・LINEミニアプリ・管理画面・分析です。古いシステムからのデータ移行も開発の範囲に含みます。
CodeCiaoの役割
CodeCiaoは、開発チームのプロジェクトリードと技術統括を担当しています。顧客との定例の進行からアーキテクチャ・設計・実装・試験計画・CIまでを、同じ担当者が続けて見ています。
確かめたこと
- 本番と同じ権限の結合テストで、データの分離に関する不具合をリリース前に見つけています
まだ確かめていないこと
- このシステムは開発中で、まだリリースしていません
進め方
-
長期サポートを受けられる版を選ぶ
CodeCiaoは技術の選定基準を、目先の生産性から「長く使い続けられること」へと改めました。開発に時間がかかるため、リリースの後も更新が続く版を選ぶ必要がありました。チームは言語とフレームワークとデータベースのサポート期限を並べて、版を決めました。
Reuse / ほかの案件では 長く使う基幹システムで、更新が止まる時期を開発の前に把握できます。
-
必須かを確かめて段階に分ける
担当者は要望を受けると、その機能が必須かを要望を出した人に確かめます。業務が滞るほどの影響がなければ、次の段階か運用での対応に回します。運用で対応すると決めた要望は、担当者が作業の記録に残します。
Reuse / ほかの案件では 要望が増え続けても、最初のリリースに必要な開発の範囲を守れます。
-
古いシステムを操作して違いを確かめる
チームは業務ルールを決める会議で、古いシステムをその場で操作して動きを確かめました。新しいルールとの違いを確かめたうえで、単純で開発しやすい仕様を選びました。担当者は新旧の設定項目を比較して、意図して外した項目を明示しました。
Reuse / ほかの案件では 置き換えの案件で、古い仕様をそのまま写さずに、必要な決まりだけを選べます。
-
判断の依頼は選択肢と出典をそろえる
設計書に答えがない点は、チームが業務の判断をする人に書面で判断を依頼します。依頼には、現状と確定していること、選択肢ごとの扱い、出典の資料を書きます。判断を待つ間は、その判断に依存する作業だけを止めて、ほかの作業を進めます。
Reuse / ほかの案件では 判断する人は選択肢を選んで返信するだけで済み、開発の全体は止まりません。
-
検証役がテストを実行し直す
チームは、書いたAIエージェントの報告を検証の結果として扱いません。会話を共有しない別のセッションが、対象のテストを新たに実行して判定します。不具合の修正では、直す前のコードでテストが失敗することも検証役が確かめます。
Reuse / ほかの案件では AIが完了と報告した作業を、ほかの人が再現できる結果で確かめられます。
-
差し戻しには観測した事実だけを書く
チームは、修正を差し戻すコメントに操作と期待と実際の結果だけを書きます。差し戻す人は原因の推測や修正の案を書かず、原因の調査を修正の担当者に任せます。AIエージェントは、コメントにある修正の案をそのまま実装しやすいためです。
Reuse / ほかの案件では AIに修正を任せる案件で、レビューの推測が新しい不具合を生むことを防げます。
-
本番と同じ権限で結合テストを実行する
事業者ごとのデータは、アプリケーションとデータベースの両方で分離しています。結合テストは本番と同じ権限で実行し、データの分離に関する不具合をリリース前に見つけています。テストが管理者の権限で接続してしまうと、データ分離の検証をすり抜けてしまいます。チームは管理者の権限で接続するテストのクラスを、261から1に減らしました。
Fig. / 管理者の権限で接続する結合テストのクラスの数 これまで これから 261
1
Reuse / ほかの案件では 複数の会社のデータを1つのシステムで扱う案件で、分離の確認を本番に近い条件で行えます。
-
データ移行を設計から範囲に入れる
チームは、移行の方針と項目の対応を業務ルールの文書として設計書と一緒に管理しています。データを移すコードは期限付きの部品として、本体の機能と分けました。本体が移行のコードに依存していないことは、アーキテクチャのテストで確かめます。移行の結合テストにかかる時間は、25分から2分に短くなりました。
Fig. / データ移行の結合テストにかかる時間 これまで これから 25 分
2 分
Reuse / ほかの案件では 移行が終わった後に、一時的なコードが本体に残り続けることを防げます。
-
AIとの作業を測って直す点を決める
チームは、不具合の記録と変更の履歴、AIエージェントとの会話の記録を集計しました。人がAIの作業を訂正した割合は、7月の16.6%から9月の9.3%に下がりました。この割合は、会話の記録を人が読んで分類した値です。チームはこの結果から品質の施策を決めて、一部を自動のチェックにしました。
Fig. / 人がAIの作業を訂正した割合(7月と9月。会話の記録を人が分類した値) これまで これから 16.6 %
9.3 %
Reuse / ほかの案件では AIを使う開発で、人の手がかかっている作業を数字で示し、直す順番を決められます。