概要
【事例】大手金融系システム会社様向けシステム基盤再構築支援 の保守フェーズ。
開発フェーズに引き続き、技術課題解決を実施。開発チームの細かなニーズを拾い、使いやすく、保守性の高いものへ作り替えていく進化的アーキテクチャの実践を保守フェーズにおいても実行している。
顧客の目的
- 保守の効率化
- 組織改編でアプリの権限付与作業の簡素化
- Java、ミドルウェア、OSSのEOSに伴うアプリバージョンアップ作業の効率化
- デグレードの検出自動化
支援内容
- 開発プロセスの標準化
- 開発工程、成果物、仕様書の定義
- ソフトウェア、仕様書の構成管理
- CI 環境の整備、プロセスへの組み込み
- ドメインモデル、オブジェクト指向での開発
- アーキテクチャを構築して終わりではなく開発者の声や内部での気づきをもとに改善を行っていく進化的アーキテクチャの実践
- 進化的アーキテクチャの実践と併せて、リリースしたフレームワークやガイドに対する攻めの保守を実施
- 多数の協力会社を横断した技術課題解決
- アプリケーション開発チームからのQ&A対応
- アプリケーション共通部品の設計、開発
- 各種煩雑な作業の自動化
- 性能対策、他チームの性能改善
- UI テストの自動化
- アプリケーションチームとインフラチームの窓口
- 課題とりまとめ、解消
- 新人教育の実施
課題とソリューション
1. 保守の効率化
- 基幹システムのアプリケーションアーキテクチャの統一(【事例】大手金融系システム会社様向けシステム基盤再構築支援(開発フェーズ))
- フレームワーク、共通部品で煩雑な処理を隠蔽
- ドキュメント
- 開発者ガイド(Web/Batch/帳票/非同期処理/ワークフロー/Webサービス)
- 開発プロセスの標準化
- ソフトウェア、仕様書の構成管理、チケットドリブンによる課題管理
- 開発環境の標準化
- CI環境の整備、プロセスへの組み込み
- ドキュメント
- 画面仕様書、機能仕様書、DB設計書
- 用語辞書
- コーディング規約(Java/JavaScript)
- 本番環境ログの収集と解析自動化
- オンラインログの自動取得/性能解析ツール
- バッチログの自動取得/解析ツール
- DevOps の推進
- ツールの作成
- リリース作業の自動化ツール
- デプロイ自動化ツール
- ツールの作成
- 監査情報収集の自動化
- リリースする成果物に影響のあったチケット(変更内容)の自動収集
- プロダクトの変更規模(行数)の自動収集と、テスト数目標値の算出
2. 組織改編でアプリの権限付与作業の簡素化
- 組織改編は直前までわからない
- 役職員ごとに必要な権限をエクセルで申請していた
- 認可の仕組みを再構築
- 組織、業務をモデル化して整理し、アプリを作成
- 権限付与のミスリスクの低減、作業の効率化
- 権限を会社や組織に付与したり職務、職責に付与し、異動があっても組織付与の権限を利用可能
- 組織、業務をモデル化して整理し、アプリを作成
3. Java、ミドルウェア、OSSのEOSに伴うアプリバージョンアップ作業の効率化
- フレームワークで影響を隠蔽することによりアプリへの影響を局所化
- ソースコード、設定ファイルの自動変換ツール作成
- バージョンアップ 作業漏れ 自動検出ツール
- デグレードを自動検出するUIテストの整備支援(後述)
4. デグレードの検出自動化
- UI テストの自動化 (Selenium を導入)
- UI テストのソースコードの半自動生成 (PageObjectデザインパターンの PageObject を自動生成)
- UI テストの期待値作成、更新を自動化
- UI テストの結果更新された DB のデータについても自動的に検証し、画面に現れないデグレを検出
効果
- 開発プロセスの統一による保守効率向上
- 手順、仕様書の標準化で人員流動性向上
- フレームワーク、共通部品の充実により、業務ロジックの実装にリソースを集中
- 予期しないデグレードを自動検出する仕組みによる品質確保
適用サービス