エンジニアとは頑固で融通が利かない磯野波平に言うことを聞かせる磯野フネ

プログラム

「ローカルサーバが起動しなくなったので、調査します。他にも動かない人いる?」と聞いてみた。そうしたら「私も起動しません」、「あ、俺も」と続く。ぇ、これって、かなり危険な状況なんじゃない?

私はITの会社でシステム開発を行っています。今回のプロジェクトはリプレース案件と呼ばれる案件でした。「このシステムはとても長い期間運用してきました。技術も古くなってきてセキュリティも心配です。そろそろ新しい技術で作り直しをお願いします」と言うのが今回の要件だ。リプレース、つまり作り直し。

このシステムでは私が新人の頃、つまり20年くらい前に一世を風靡した枠組みを使っていた。セキュリティ対策の修正が行われなくなってからかなりの期間が経過していた。セキュリティに問題がある事はこの業界の人はみんな知っている。耐震性の無い江戸時代の建物を地震が来ても大丈夫なように耐震性のある建物に建て替えるようなイメージだ。

対象のシステムはWebシステムと呼ばれるシステムで、開発して動作確認するためにはローカルサーバが必要だ。開発は順調ではなく、少しずつ遅れが発生している状況だった。そんな中でみんなローカルサーバが起動しなくなり、開発が止まるのは一大事である。7人で開発をしていたので1時間作業が止まると、ほぼ1日を無駄にする計算だ。これは非常に危険な状態だった。業界あるあるだが、悪い事は帰り際に起こるのである。もう帰ろうと思っていたのに、しかも金曜日なのに……。

この事象には見覚えがあった。見覚えがある状態なら対策があるじゃないかと思われるかもしれないが、そうは問屋が卸さない。この事象は今回の開発を始める初期の段階で発生していた。しかし、原因がさっぱり分からなかったので原因究明を後回しにして、とりあえず動くように回避したのである。これも業界あるあるだと思うが、後回しにすると必ずブーメランのように戻ってくる。まさに今戻ってきた……。

一般に何かシステムで問題があった場合、ログを解析して原因を究明する。ログとはプログラムが書く日記みたいな物である。「いつどんな処理をしました」とか「ここでこんな問題が発生しました」とかログを読めば大概の原因は分かる。しかし今回のログは「##### Oracle9i」とだけ出てそれ以上なにも書き出されないのである。ちなみにOracleとは製品の名前である。こんな風に宣伝用されたら買う気も失せると言う物である。

打つ手が無い。何度やってもOracleの宣伝が出るだけで何も分からない。落ち着いて状況を整理してみた。

  • お昼までは動いていた。
  • ある時を境にみんな動かなくなった
  • と言う事はそれぞれが悪いのではなく共通の何かが悪さをしている、それは何だ?

思い当たる事が1つある。お昼にデータの入れ替えをやってもらったのだ。その作業が原因だと思う。思うのだが、根本的な原因はさっぱり分からない。

「私、ローカルサーバを止めて帰ってもいいですか?」まだローカルサーバを起動し続けていたメンバーが言った。「いいよ。帰る前に1回だけ再起動試してみて」とあまり期待せずに言ってみた。ローカルサーバを再起動してみたところ、案の定Oracleの宣伝が出てきた。やっぱりだめかと思った次の瞬間、見た事の無い1行が表示されたではないか! 「絶対にその1行は消さないで! すぐに連携して!」と興奮気味に口にしていた。このログはこのタイミングでしか出てこなかった。何故か2回目以降は出てこなかったのである。これを見逃していたら解決にはもっと時間がかかっていただろう。

そのログにはこう書かれていた「秘密の合言葉は『1』のはずですが、あなたは『19780417』と言いました。ここを通す事はできません!」この情報を元にデータを調べてみたら確かに合言葉に『1』と設定されている。試しに秘密の合言葉を『19780417』に書き換えてみたら動いた! 

プログラムは非常に便利なのだが、本当に融通が利かない。値が1つ違っているだけで全く動かなくなる。プログラムは「この人は何回も間違えて可哀そうだから秘密の合言葉を書き換えてあげよう」とは絶対ならない。そんな融通は利かせてくれないのだ。ログの出力も2回目以降は表示しないとプログラムされていたら2度と出てこない。非常に頑固である。まさに磯野波平のように。

世の中にはたくさんの波平であふれている。電車や飛行で移動できるのも、ゲームで楽しめるのも、波平が正しく動くからだ。エンジニアは波平に言う事を聞かす磯野フネ。みなさんが快適に生活できるのもフネのような優秀なエンジニアがいるからだと知って欲しい。

タイトルとURLをコピーしました