相談する

多店舗の​事業者向け業務基幹SaaSの新規開発

Status / 状況 開発中

レジ・​予約・​顧客管理・​在庫・​分析の​機能とLINEミニアプリを​備えた​基幹システムを、​ゼロから​開発しています。​事業者が​これまで​使っていた​パッケージ製品を​置き換えます。​CodeCiaoは​開発チームの​プロジェクトリードと​技術統括を​担当しています。

業界
店舗ビジネス
期間
2025年から
役割
プロジェクトリード / 技術統括

これまで 自分たちで直せないパッケージ 自分たちで直せない​パッケージ

から

これから 自分たちで決められる基幹SaaS

Fig. / 6つの機能と1つの基幹システム 開発中(リリース前)

開発中

1つの基幹システム (開発中(リリース前))

古い​システムからの​データ移行も​開発の​範囲に含む

古い​システムからの​データ移行も​開発の​範囲に含む

  1. レジ
  2. バックヤード
  3. Web予約
  4. LINEミニアプリ
  5. 管理画面
  6. 分析

概要

業務の領域
19 ドメイン
設計書にある画面
約 190 画面
自動テスト
約 2.8 万件
開発開始からの変更
約 1 万コミット
Fig. / 設計書にある画面 約190 開発中(リリース前)

これまで

事業者は​長い​あいだ、​他社の​パッケージ製品を​使ってきました。​機能の​追加も​日程も、​事業者だけでは​決められませんでした。​予約・会計・顧客の​情報は​別々の​システムに​分かれていました。​その​ため、​担当者が​手で​入力し直す​作業が​残っていました。

これから

CodeCiaoの​チームは、​6つの​機能を1つの​基幹システムとして​開発しています。​対象は、​レジ・​バックヤード・​Web予約・​LINEミニアプリ・​管理画面・​分析です。​古い​システムからの​データ移行も​開発の​範囲に​含みます。

CodeCiaoの役割

CodeCiaoは、​開発チームの​プロジェクトリードと​技術統括を​担当しています。​顧客との​定例の​進行から​アーキテクチャ・​設計・​実装・​試験計画・​CIまでを、​同じ​担当者が​続けて​見ています。

確かめたこと

  • 本番と​同じ​権限の​結合テストで、​データの​分離に​関する​不具合を​リリース前に​見つけています

まだ​確かめていないこと

  • この​システムは​開発中で、​まだ​リリースしていません

進め方

  1. 長期サポートを​受けられる版を選ぶ

    CodeCiaoは​技術の​選定基準を、​目先の​生産性から​「長く​使い続けられる​こと」へと​改めました。​開発に​時間が​かかる​ため、​リリースの​後も​更新が​続く​版を​選ぶ​必要が​ありました。​チームは​言語と​フレームワークと​データベースの​サポート期限を​並べて、​版を​決めました。

    Reuse / ほかの案件では 長く​使う​基幹システムで、​更新が​止まる​時期を​開発の​前に​把握できます。

  2. 必須かを​確かめて段階に分ける

    担当者は​要望を​受けると、​その​機能が​必須かを​要望を​出した​人に​確かめます。​業務が​滞る​ほどの​影響が​なければ、​次の​段階か​運用での​対応に​回します。​運用で​対応すると​決めた​要望は、​担当者が​作業の​記録に​残します。

    Reuse / ほかの案件では 要望が​増え続けても、​最初の​リリースに​必要な​開発の​範囲を​守れます。

  3. 古い​システムを​操作して違いを確かめる

    チームは​業務ルールを​決める​会議で、​古い​システムを​その​場で​操作して​動きを​確かめました。​新しい​ルールとの​違いを​確かめたうえで、​単純で​開発しやすい​仕様を​選びました。​担当者は​新旧の​設定項目を​比較して、​意図して​外した​項目を​明示しました。

    Reuse / ほかの案件では 置き換えの​案件で、​古い​仕様を​そのまま​写さずに、​必要な​決まりだけを​選べます。

  4. 判断の​依頼は選択肢と​出典をそろえる

    設計書に​答えが​ない​点は、​チームが​業務の​判断を​する​人に​書面で​判断を​依頼します。​依頼には、​現状と​確定している​こと、​選択肢ごとの​扱い、​出典の​資料を​書きます。​判断を​待つ間は、​その​判断に​依存する​作業だけを​止めて、​ほかの​作業を​進めます。

    Reuse / ほかの案件では 判断する​人は​選択肢を​選んで​返信するだけで​済み、​開発の​全体は​止まりません。

  5. 検証役がテストを​実行し直す

    チームは、​書いたAIエージェントの​報告を​検証の​結果として​扱いません。​会話を​共有しない​別の​セッションが、​対象の​テストを​新たに​実行して​判定します。​不具合の​修正では、​直す前の​コードで​テストが​失敗する​ことも​検証役が​確かめます。

    Reuse / ほかの案件では AIが​完了と​報告した​作業を、​ほかの​人が​再現できる​結果で​確かめられます。

  6. 差し戻しには観測した​事実だけを書く

    チームは、​修正を​差し戻すコメントに​操作と​期待と​実際の​結果だけを​書きます。​差し戻す人は​原因の​推測や​修正の​案を​書かず、​原因の​調査を​修正の​担当者に​任せます。​AIエージェントは、​コメントに​ある​修正の​案を​そのまま​実装しやすいためです。

    Reuse / ほかの案件では AIに​修正を​任せる​案件で、​レビューの​推測が​新しい​不具合を​生む​ことを​防げます。

  7. 本番と​同じ​権限で結合テストを実行する

    事業者ごとの​データは、​アプリケーションと​データベースの​両方で​分離しています。​結合テストは​本番と​同じ​権限で​実行し、​データの​分離に​関する​不具合を​リリース前に​見つけています。​テストが​管理者の​権限で​接続してしまうと、​データ分離の​検証を​すり​抜けてしまいます。​チームは​管理者の​権限で​接続する​テストの​クラスを、​261から1に​減らしました。

    Fig.​ ​/​ ​管理者の​権限で​接続する​結合テストの​クラスの数 これまで これから

    Reuse / ほかの案件では 複数の​会社の​データを1つの​システムで​扱う​案件で、​分離の​確認を​本番に​近い​条件で​行えます。

  8. データ移行を設計から​範囲に入れる

    チームは、​移行の​方針と​項目の​対応を​業務ルールの​文書として​設計書と​一緒に​管理しています。​データを​移すコードは​期限付きの​部品として、​本体の​機能と​分けました。​本体が​移行の​コードに​依存していない​ことは、​アーキテクチャの​テストで​確かめます。​移行の​結合テストに​かかる​時間は、​25分から2分に​短くなりました。

    Fig.​ ​/​ ​データ移行の​結合テストに​かかる時間 これまで これから

    Reuse / ほかの案件では 移行が​終わった​後に、​一時的な​コードが​本体に​残り続ける​ことを​防げます。

  9. AIとの​作業を​測って直す点を決める

    チームは、​不具合の​記録と​変更の​履歴、​AIエージェントとの​会話の​記録を​集計しました。​人がAIの​作業を​訂正した​割合は、​7月の16.6%から9月の​9.3%に​下がりました。​この​割合は、​会話の​記録を​人が​読んで​分類した​値です。​チームは​この​結果から​品質の​施策を​決めて、​一部を​自動の​チェックに​しました。

    Fig. / 人がAIの​作業を​訂正した​割合​(7月と9月。​会話の​記録を​人が​分類した値) これまで これから

    Reuse / ほかの案件では AIを​使う​開発で、​人の​手が​かかっている​作業を​数字で​示し、​直す順番を​決められます。

共通のつくり方を読む

技術

  • Java
  • Spring Boot
  • PostgreSQL
  • React
  • Next.js
  • Swift
  • LINEミニアプリ
  • OpenAPI
  • AWS
  • Terraform

Contact

まずは Ciaoから

「自分たちで​直せない​パッケージ」と​同じ​状況の​方は、​現在の​やり方を​教えてください。