メニュー

お問い合わせ
Logo
プレス

カスタムソフトウェア

貴社のプロセスにふさわしいソフトウェアを。

業務アプリケーション、デジタル製品、社内ツールのいずれであっても、既存システムでは無理なく実現できない業務のためのソフトウェアを開発します。貴社の業務部門は早い段階で動作する成果を確認でき、アーキテクチャ、品質保証、運用は並行して構築します。

ソースコードを表示した画面に向かう開発者、イメージ画像
課題設定から文書化された引き渡しまで。

このサービスが役立つ場面

カスタムソフトウェア:私たちへのご依頼内容。

  • 二重入力や手作業を解消する
  • 独自のデジタル製品を開発する
  • 特殊な業務プロセスを確実に実装する

標準ソフトウェアは多くのプロセスをカバーしますが、貴社を競合他社と差別化するプロセスをカバーすることは、めったにありません。こうしたプロセスのために、業務アプリケーション、ポータル、バックエンドサービスを、最初の設計段階からセキュリティ要件を組み込んだアーキテクチャで開発します。言語とプラットフォームはタスクに応じて選定します。サービスには.NETとGo、ユーザーインターフェースにはTypeScript、暗号技術やハードウェアに近い領域にはRustとC++を使用します。

依頼に含められる内容

  • 業務部門との要件分析、脅威モデル、C4モデルに基づく目標アーキテクチャ
  • コードを書き始める前に定めるドメインモデル、データモデル、インターフェース契約
  • コードレビューと業務部門による検収を伴う、短いイテレーションでの開発
  • OWASP ASVSに準拠したセキュアな開発、検証済みの依存関係、署名付きビルド
  • ソースコード、アーキテクチャドキュメント、運用マニュアルを含む引き渡し

具体的な範囲、検収、貴社の関与については、提案書で定めます。

全体のつながりを一目で

業務ルールが、使えるソフトウェアになる。

  1. 01

    モデル化する

    ルールと状態を明確にする

  2. 02

    開発する

    一連の流れを完全な形で実装する

  3. 03

    テストする

    機能、権限、エラー時の挙動をテストする

  4. 04

    導入する

    データ、利用者、運用を準備する

計画、実施、意思決定

カスタムソフトウェアで重要なポイント。

01

機能の数より業務ロジック

出発点となるのは、投資に見合う価値を生む業務フローです。後にそれを使う人々とともに、用語、状態、業務ルールをモデル化します。例えば承認は単なるボタンではありません。代理対応、権限、期限、判断の取り消しが、すべて整合している必要があります。これらのルールは、データモデルとテストの一部となります。

最初のバージョンは、完結して利用できる一つのプロセスに集中します。追加機能は、実際の利用から得たフィードバックをもとに補っていきます。これにより、検証可能な価値を持つ製品が生まれ、未完成の画面の寄せ集めにはなりません。

02

使用期間に見合った技術選定

バックエンド、ユーザーインターフェース、データ管理については、貴社の既存システム環境と今後の発展の見込みに基づいて技術を選定します。既存のスキル、インターフェース、運用要件は、短期的な技術トレンドよりも重視します。現在取り扱う技術には.NET、Go、TypeScriptなどがあり、システムに近い領域のコンポーネントは個別に評価します。

モジュールの境界と責任範囲は、変更の経緯を後から把握できるように定義します。認証情報はソースコードに含めず、業務ルールをユーザーインターフェースだけに置くこともしません。レビュー、自動チェック、バージョン管理されたデータベース変更は、実装の最初から並行して行います。

03

検収とは、日々の運用に耐えること

各イテレーションでは、既知の制約を伴う利用可能な機能を示します。業務上の検収と技術的なリリース判断は、別々に検討します。正しく計算された注文は業務的には正しくても、負荷時の挙動やエラー処理がまだ本番環境に適さない場合があるためです。それぞれの拡張段階で必要な証跡は、共同で定めます。

合意した納品範囲には、ソースコード、再現可能なビルド、ドキュメントが含まれます。本番稼働の開始にあたっては、データ移行、トレーニング、責任分担、障害対応について明確にします。利用権、外部コンポーネント、その後の保守については、引き渡し前に取り決めます。

ツールは課題に合わせて選ぶ

貴社の環境に合った技術。

  • .NET
  • C#
  • Go
  • Rust
  • TypeScript
  • PostgreSQL

選定は既存システム、貴社のチーム、その後の運用に応じて行います。すべてのプロジェクトが、挙げた技術をすべて必要とするわけではありません。

業務部門の責任者と技術チーム向け

実装の背後にある意思決定。

04

業務ルール、トランザクション、競合する変更

アプリケーションは、複数の人が同時に同じ在庫を変更する場合にも正しく動作しなければなりません。2件の予約が、気づかれないまま同じ最後の1点を割り当ててしまうことがあってはなりません。そのため、どの変更をまとめて成功させる必要があるか、どの競合が業務上のフィードバックを必要とするかを見極めます。データベースの制約、トランザクション、バージョンチェックは、この課題のさまざまな部分を解決できますが、ユーザーインターフェースだけではこれらのルールを担保できません。

一方、より長い業務プロセスは、単一のトランザクションには収まらないことがよくあります。注文、外部の決済サービス、出荷承認は、それぞれ固有の失敗状態を持ちます。案件は、明確に定義された状態と許可された遷移でモデル化します。繰り返し送信されるリクエストには、適切なトランザクションIDを付与し、接続の切断が自動的に重複した処理を引き起こさないようにします。部分的な失敗が発生した場合には、一律の技術的な再実行ではなく、承認の取り消しなど業務的に定義された是正処置が必要です。

05

テナント、ロール、監査可能なデータアクセス

SaaS製品や社内プラットフォームでは、利用者のアイデンティティと、特定のデータに対する権限とを区別します。ログイン済みの従業員が、あらゆる請求書や注文を自動的に閲覧できてはなりません。アクセスはバックエンドで、組織、ロール、案件の各レベルで検証します。エクスポート、検索インデックス、バックグラウンド処理、キャッシュされた結果についても、これらの境界を考慮する必要があります。

テナント識別子を持つ共有テーブル、分離されたデータベーススキーマ、専用のデータベースは、それぞれ分離、移行、復旧に対する要件が異なります。必要な分離度と貴社の運用体制に応じてモデルを選択します。複数のテナントを用いたテストでは、特に不正なアクセスを重点的に検証します。監査ログには、業務上重要な変更を適切な文脈とともに記録します。どのようなデータを含めるか、どのくらいの期間保持するかは、明示的に定めます。

06

データ管理、パフォーマンス、長期的な拡張性

データ構造は、クエリと業務ルールに従って設計します。追加のストレージ技術を導入する前に、典型的なフィルター、並べ替え、集計、書き込み処理を検証します。無制限の結果リスト、繰り返される個別クエリ、大量のデータ転送は、サーバーの負荷がそれほど高く見えなくても、アプリケーションの速度を低下させることがあります。現実的なデータ量での測定によって、インデックス、クエリの変更、ページネーション、あるいは別のタスク分割が有効かどうかが分かります。

キャッシュとは、データの鮮度に関する意図的な判断です。保存された結果がいつ無効になるか、どの利用者がそれを閲覧してよいかを、明確にしておく必要があります。大規模な計算はバックグラウンド処理として実行できますが、その場合は進捗表示、再開機能、失敗状態への対応が必要になります。拡張にあたっては、業務ルールを技術的なアダプターから分離します。自動化されたテストとバージョン管理されたデータベース変更が、こうした境界を担保することで、新しいチャネルや別の事業者を追加してもすべてのモジュールを変更する必要がなくなります。

透明性のある作業成果

貴社の手元に残るもの。

成果01

ソースコードとビルドパイプラインを備えた稼働可能なアプリケーション

成果02

脅威モデルを含むアーキテクチャドキュメント

成果03

ランブックと緊急時対応計画を含む運用マニュアル

プロジェクトの進行例

支援はたとえばこのように進みます。

保守計画はこれまで表計算ソフトで管理されていました。業務アプリケーションが、設備、日程、責任分担、承認を一元的にまとめます。最初の拡張段階では1つの拠点を対象とし、他の拠点は業務面でプロセスを検証してから初めて追加します。

説明のためのシナリオであり、顧客事例や成果の保証ではありません。

着手に役立つもの

  • 現在の業務フローと例外処理の例
  • 業務上の意思決定を行う責任者
  • 既存システム、データソース、運用要件

資料が不足していても支障はありません。どの情報を先に揃えるべきかは、共に整理します。

貴社の取り組みの詳細

業務ルールを分かりやすくモデル化し、確実に実装する。

カスタムソフトウェアは、貴社の業務プロセスに専用の解決策が必要な場面で効果を発揮します。ユーザーインターフェースだけでなく、その背後にある業務ルール、データ構造、運用の仕組みまで開発します。

例外から、実務に耐える業務モデルをつくる

工数を左右するのは、まれにしか起きないケースであることが少なくありません。部分承認、遡及的な変更、複数の責任者が関わる案件などです。業務部門とともに、状態と許可される遷移をモデル化します。これにより、ソフトウェアが強制すべきルールはどれか、根拠のある手動判断が必要な部分はどこかが明らかになります。

権限は操作とデータに紐づけて設定します。組織やテナントによる分離は、処理やクエリの中で実効性を持たせる必要があり、単にボタンを非表示にするだけでは不十分です。業務上の状態を誰が変更したかを後から利用者が確認できるようにすべき箇所には、変更履歴を用意します。

データ移行と製品保守を初期段階から計画する

既存データは整備したうえで、新しいモデルに対応付ける必要があります。本番環境への取り込みを行う前に、完全性、重複、無効な状態を確認します。移行リハーサルでは、技術的な処理時間だけでなく、貴社の責任者とともに対応できる業務上のエラー一覧も得られます。

稼働開始後も要件は変化し続けます。そのため、把握しやすい構成、自動化された検証、文書化されたリリース手順は、合意した納品範囲に含まれます。ソースコードへのアクセス、利用権、ドキュメント、保守の担当範囲は契約の中で具体的に定め、貴社の製品を長期にわたって支援できるようにします。

プロジェクトシナリオの例

このサービスが日常業務でどのように役立つか。

例:ある承認プロセスには、代理承認者の設定と複数の金額上限が必要です。こうしたルールを明示的にモデル化し、進行中の案件における担当者の交代もテストします。結果として得られるのは、つながりのない入力画面の集まりではなく、一貫した業務フローです。

この例は想定される進め方を説明するものであり、顧客事例ではありません。

依頼の前に

カスタムソフトウェアに関するご質問。

カスタムソフトウェアが有効なのはどのような場合ですか?

特有の業務ルール、統合、製品特性が、標準ソフトウェアでは無理のある迂回策でしか実現できない場合です。一般的な基本機能については、既存のソリューションの方が経済的な場合もあります。この線引きは、開発を依頼する前に明確にします。

特定の開発者への依存をどのように避けられますか?

共同でのコードレビュー、分かりやすいモジュールの境界、文書化された意思決定、再現可能なビルドによって、知識を分散させます。さらに、アクセス権、利用権、引き渡し形式についても取り決めます。これにより将来の委託先の切り替えは計画しやすくなりますが、十分な知識移転の代わりにはなりません。

固定価格での契約は可能ですか?

業務的にも技術的にも範囲が明確な成果物であれば、固定価格を検討できます。要件が未確定な場合は、事前の分析や、依頼範囲を絞った小さな段階に分ける方が、信頼性が高いことが多くあります。範囲の変更は、工数とスケジュールへの影響とあわせて透明性を持って評価します。

次のステップ

現在、どこでつまずいているか教えてください。

貴社のアプリケーション、課題、目標についての簡単な説明があれば、まずは十分です。選択したサービスは、お問い合わせ内容に反映されます。

このサービスについて問い合わせる

パートナー

  • Microsoft
  • Microsoft Azure
  • Amazon AWS
  • Google Cloud
  • Thales Group
  • Arrow ECS
  • Vodafone
  • IBM
  • Veeam
  • Atlassian
  • JetBrains
  • NinjaOne
  • OPSWAT
  • Utimaco
  • Eviden

アクセシビリティ

表示をご自身のニーズに合わせて調整できます。

このページには、まだやさしい日本語版がありません。

設定は現在、今回の閲覧にのみ適用されます。永続的な保存は「Cookie設定」で許可できます。