« 今日の日記:雨模様なので外出なし…明日から仕事かー。 | トップページ | 今日は2時間30分くらいの残業。 »

2009年5月 7日 (木)

大規模システム開発の永遠の課題…インフラだからこそ…

 今日は業務運用開始日。今回のプロジェクトでは巨大な現行業務システムのWeb化を行うということで、インフラ部分を作り変えている。また、現行のルートも残してあるので、何かトラブルがあったとしても業務に致命的な影響は及ぼし得ない。しかもシステム的な適用は一ヶ月も前に済ませて、試使用の期間もあった。だからみんなけっこう楽観していた。

 確かに問い合わせが殺到するとか、そういうことはなかった。
 しかし、あるエラーの報告より、原因を探って行くと、かなり深い(低層な)インフラのレイヤにおいて、問題が発覚した。LinuxのAPサーバとUNIXのDBサーバとの間でデータ交換をする際に行うコード変換(SJIS-UTF8)の部分で使用している汎用ライブラリの使い方に問題があった。
 …というか、かなり乱暴なやり方で変換している。電文そのものをまとめてライブラリに投げている。その電文には当然のことながら、純粋な文字コード以外のデータも入っている。しかしこのライブラリ、困ったことに「文字コード以外のデータ」つまり「文字コードの範囲を逸脱したデータ」を処理することを前提としておらず、文字コード以外(たとえばNULL値やHIGH-VALUE値)を受け取ると勝手に違う値にしてしまっていた。

 …。

 これは、インフラ機能のEDP設計の問題だが…。
 EDP設計の段階で気付かないと、テストでも気付かないものなんだな…。この仕様というか設計を今日、知ったとき、内心では思った。「現行の業務システムのつくりを少しでも知っていれば、こんな実装はしないはず」
 インフラだからといって現行の業務システムについて知らなくても良いということはなく、むしろ逆だということが、重い教訓となる。もっとも今は教訓云々の前に、目の前にある問題を片付けないといけないが。

 これが大規模な開発プロジェクトの怖いところ。実装者は、時に信じられない設計をする。(もちろん、それを上位SEが見つけないといけないんだろうけれど)

 …。

 根が深いトラブルだ。これは深い。
 僕がもしPMならどうするだろう。下手すると新業務を使用禁止にするということもあり得る…。明日、どうなっていることか。
(PM含め、今日の対応諸々のため泊まりメンバーが居る)

 …。

 今日は、一日運用開始対応でした。
 多分明日も。

|

« 今日の日記:雨模様なので外出なし…明日から仕事かー。 | トップページ | 今日は2時間30分くらいの残業。 »

コメント

おはようございます
まったくわからない世界のお話です(^^ゞ
産業医さんの面談、忘れずにね~

投稿: でつ | 2009年5月 8日 (金) 06時02分

やったかー。
やっちゃったねー。
コードコンバージョンで深刻な実装ミスしてますね。
バイナリやBCDやパックドデータの存在を仮定しないあたりが、強気の設計というか、無知の引き起こしたトラブルというか。
パックドデータとかだと文字コードとダブる可能性だって充分あるのに、データフォーマットを検討せずに電文丸投げ変換とは思い切り良すぎですね。
ただ、直すとなるとなぁ。
電文タイプごとにコード変換モジュールを作り込んでいかないといけないから、相当なモジュール数の追加になりそう。テスト込みで3連徹くらいかかるんでないかなー。
なんか、味噌ついちゃいましたね。

投稿: くりにゃー | 2009年5月 8日 (金) 17時24分

この記事へのコメントは終了しました。

« 今日の日記:雨模様なので外出なし…明日から仕事かー。 | トップページ | 今日は2時間30分くらいの残業。 »