マルチテナント型リスク管理プラットフォーム

  • 受託開発(請負)

この案件の要点

顧客企業ごとに環境を分けて提供するリスク管理サービスを、資料間の食い違いを確認事項として確定させるところから請負で構築し、初回リリース後も機能ごとに仕様と見積もりを出して追加している。

業務画面と運営側の管理画面のイメージ(架空のデータ)。取り込んだデータから算出したリスク指標を閾値とあわせて表示し、超過の見込みをアラートで知らせる。顧客企業ごとの専用環境は運営側の管理画面で管理する (原寸を新しいタブで開く)
業務画面と運営側の管理画面のイメージ(架空のデータ)。取り込んだデータから算出したリスク指標を閾値とあわせて表示し、超過の見込みをアラートで知らせる。顧客企業ごとの専用環境は運営側の管理画面で管理する 原寸で開く

概要

法人の顧客企業向けに提供されるリスク管理サービス。顧客企業の実績データと外部の市場データを取り込み、リスク指標の算出、閾値を超えたときのアラート、画面での確認とデータのダウンロードまでを扱います。顧客企業ごとにサーバーとデータベースを分けて提供するサービスで、要件の文書化から実装、本番リリース、その後の機能追加までを請負で担当しています。

依頼時の体制

サービスを新しく立ち上げる案件で、依頼の時点でクライアント様側にサイトマップ、画面設計、データレイアウト、計算ロジックの資料が揃っており、顧客企業ごとに環境を分ける前提も決まっていました。一方で資料は改訂が重なっており、資料間で食い違う箇所や決まっていない箇所が残っていました。そこで、資料をそのまま実装に渡すのではなく、確認事項として整理して回答をいただき、要件定義書に書き起こしてから設計と実装に進むことにしました。

仕様をどう確定し、何を外したか

実装の前に文書で仕様を確定する順序を固定しました。機能ごとに、確認事項の整理、要件定義書、機能設計書、見積もりの順で進め、見積もりを提示してから実装に入ります。計算の前提が食い違ったまま作ると、後から計算部分を作り直すことになるためです。たとえば取り込むデータの単位が資料によって食い違っていた件は、どちらを採るかで計算式そのものが変わるため、要件定義に着手する前に回答が必要な項目として扱いました。

追加機能の見積もりは、必須の対応と追加で選べる対応に分けて金額を出し、クライアント様が対応ごとに採否を決められる形で提示しています。

最初のリリースは範囲を絞りました。業務画面の権限は「編集できる」「閲覧のみ」の 2 種類に固定し、画面設計に描かれていた部署単位の権限設定、利用者と権限の一括登録、操作の記録は次の段階に回しています。運営側の管理画面は初回を基盤とログインまでとし、マスタデータの管理と顧客企業の管理は別途要件定義してから順に追加しました。指標の計算では、価格が市場に連動して変わる契約を対象から外し、その契約が計算に含まれていると誤解されないよう画面に注意書きを出すことを要件に含めました。この契約への対応は、現在追加を進めています。

納品と確認

最初のリリースは着手からおよそ 7 か月後で、以降は機能のまとまりごとに版を切って追加しています。本番のほかに検証用とデモ用の環境を用意し、実装した画面をそこで確認できるようにしました。品質面では、変更のたびに自動テストと静的解析を実行し、画面のテストが失敗したときはその時点の画面を画像で残しています。

既存データを大量に変換する変更は、通常のリリース手順に含めないことにしました。リリース手順の中で実行すると時間切れで途中停止するおそれがあるためです。検証環境で所要時間を実測したうえで、本番では事前に単独で完走させてから新しい版に切り替える手順にしています。

引き渡し後

本番は顧客企業ごとに環境を分けて稼働しています。顧客企業を追加するときに必要な設定の一部は運営側の管理画面で生成し、環境構築とデータ投入の手順は文書にまとめています。

運用開始後は、データ量の増加に伴う判断を 2 つ行いました。1 つ目はデータの保持期間です。データベース容量の増え方を試算し、圧縮などほかの削減策も検討したうえで、古い実績データを削除する方針にしました。保持期間は計算が参照する範囲ちょうどにすると、削除処理の遅れなどで計算に必要なデータが先に消えるおそれがあるため、1 年の余裕を持たせた長さにしています。法令や監査上の保存義務の年数は、クライアント様に確認いただく前提条件として残しました。

2 つ目は、本番で実績データの取り込みに数時間かかった事象への対策です。原因を調査報告にまとめ、最初に採った集計方式の変更は検証環境で実測すると改善が確認できなかったため差し替えました。計測をやり直したうえで実績データの保存形式そのものを変える方針に切り替え、データ移行は本番の最大規模に相当するデータで所要時間を実測し、集計は変更前より遅くならないことを反映の条件として検証環境で確認してから反映しています。

現在も、機能ごとに仕様を書き、見積もりを提示してから実装する形で開発を続けています。

技術スタック

  • Rails
  • Hotwire
  • TailwindCSS
  • MySQL
  • Kamal

関連するサービス

ご依頼後の活動の流れ

受託開発をご依頼いただいた場合の一般的な流れです。

  1. 1
    お客様

    お問い合わせフォームの送信

    作りたいもの、または置き換えたいシステムの概要と、希望する時期をお知らせください。まだ決まっていないことは、決まっていないとお書きいただければ構いません。

  2. 2
    当社
    通常3営業日以内

    ご返信とヒアリングの日程調整

    いただいた内容を確認し、オンラインでのヒアリングの日程をご相談します。お引き受けが難しい場合も、その旨をご連絡します。

  3. 3
    双方

    ヒアリング(オンライン)

    要件の背景と目的を伺い、何を作るか・何を作らないかを一緒に整理します。既存のシステムがある場合は、その状態も確認します。

  4. 4
    当社

    進め方と契約形態のご提案

    準委任契約(月額稼働)と請負契約のどちらが合うかを、進め方とあわせてご提案します。準委任契約では月額を定めて優先度の高い機能から順に進め、請負契約では仕様を先に確定してから金額を確定します。

  5. 5
    双方

    契約の締結

    契約書を取り交わします。必要に応じて、着手前に NDA(秘密保持契約)を結びます。

  6. 6
    双方

    開発と確認

    進捗と課題を随時共有しながら開発を進め、動くものを順にご確認いただきます。

  7. 7
    当社

    納品・リリース

    ご確認いただいた内容で、本番環境へリリースします。

お問い合わせ

受託開発に関するご相談は、お気軽にお問い合わせください。