こんにちは。ファイナンシャルソリューション開発部 肥後です。
私は今銀行系のシステム開発のPM補佐を行っているのですが、今回は昨年まで対応を行っておりましたシステム更改対応で、要件定義の重要性について改めて痛感した部分がありましたので、その点について、ご紹介させていただきたいと思います。
【システム開発のご相談はシー・エス・エスへ】
1.更改を行ったシステムの業務内容
私が担当していた更改のシステムについてまずご説明させていただくと、手形交換システムというシステムの更改を行っておりました。
行っている業務としては、各営業店にて約束手形で代金の支払いを行う場合に、代金を支払う企業(振出人)から受け取った約束手形を銀行へ行って手形の現金化できるのですが、銀行間の取引も行われるため手形交換所という他銀行の手形を含めた約束手形を管理しているところへ送るという仕組みとなっています。
自行から手形交換所へ送る業務を持ち出し、手形交換所から自行へ来る業務を持ち込みというのですが、これらの持ち出し、持ち帰り業務等を管理する業務を行っています。
今までは約束手形については紙で手形交換所へ配送していましたが、今回のシステム更改では紙で送っていた約束手形を電子化し、イメージデータにて電子交換所へ送れる様、システム更改を行いました。
システム更改前のイメージ図
システム更改後のイメージ図
このシステム更改ですが、他行も含め電子交換所へのイメージデータを送り始める日が決まっていたため、本番稼働日はずらせない状況の更改対応となっておりました。
2.本番稼働前に不具合が発生
前述したように他行も含めてシステム更改対応本番稼働日はずらせない状態で二年以上かけた更改対応を進めていたのですが本番稼働の二か月前、いよいよ各営業店も含めた全体を通してのテストを行った際、一定数以上になるとメニュー起動ができないという不具合が発生いたしました。
原因を調査したところ、サーバー側で設定していたIISの上限値に達していたため、メニュー起動ができなくなっていたのが原因でした。
IISのセッション数については要件定義時に設定しており、現行システムにおいては各営業店にて最大何セッション使用するかという点の確認は取れていたので現行踏襲でIIS上限値の設定をしていたのですが、今回新しくできた要件に伴い機能が追加されたことにより、各営業店にて最大どれくらいのセッションを使用する可能性があるのか。という点についての考慮が漏れていました。
IISセッション数の上限値自体はサーバー側から設定変更を行うことができるためそれほど難しい話ではなかったのですが、サーバーのCPUがそれに耐えられるかという問題がありました。
本番稼働の二か月前の事象で、あとはリリースを待つのみという状態でしたので、今からリソースの増強を行うのか、IISの上限値をあげた状態で営業店を含めた全体の再テストが可能なのか、可能な場合どこまでテストを行うのか、という点を決めなければいけなかったので、発覚してからは連日業後に上席、ユーザー部署を含めた打ち合わせを行い、方針を決めなければいけない状態でした。
最終的にIISの上限値を設定し、負荷テストを実施したところCPUについても耐えられるレベルでの使用率となっておりましたのでリソース増強を行わずにリリース作業を行うことはできたのですが、本番稼働の直前まで問題を抱えている状態となってしまいました。
3.今回のシステム更改を踏まえたうえで感じた点
上記で発生した事象については、要件定義工程での考慮が漏れていたためのもので、現行の機能については調査は行っていたものの新しい機能についての考慮が浅かった為発生したものでした。
要件定義はシステム更改を初めて最初に実施するものですので、その時点で決めるというのは難しいのかもしれませんが、例えば次工程への持ち越し事項として管理することもできましたし、現行の機能だけでなく、新しい要件の部分についての考慮が足りてなかったのかなというのを実感いたしました。
上記については一例となるのですが、その他にも例えばHULFTのバージョンアップに伴い非互換調査が漏れており、新しく追加となった転送する際のブロック単位でのバイト数の考慮がされていなかった為、HULFT転送時間が長くなってしまったり、新しい要件であるイメージデータを電子交換所へ送る際、電子交換所側のDNSを参照しに行く必要があったのですが、その際の設定内容に不備があり初回テスト日にHULFTの送信がうまくいかなかった等、非互換調査、事前調査等が漏れていたことによる不具合が多く発生したなと感じた更改対応でした。
4.最後に
以前研修に参加した際、プロジェクトの要件定義の重要性について説明をいただく機会が多かったのですが、今回のシステム更改を踏まえて、改めて実感しました。
幸い、不具合等が発生していたのは本番稼働前までで、本番稼働後は大きな問題もなく安定して稼働することができていたので、ほっとしているのですが、改めて要件定義、事前調査、非互換調査等は重要なんだなと感じた為、今回ご紹介させていただきました。
最後まで御覧いただきありがとうございました。
【システム開発のご相談ならシー・エス・エスへ!】