約2年前にシステム納品したプロジェクトから障害発生の連絡。
原因をたどっていくと、とあるプラグインの設定に誤りがあったのだが、これに気づくまで意外と時間がかかった。

テスト環境は正常に動作している状態なので、内容を比較していって原因を特定。
管理画面からプラグインの設定をいじらない限りはならないはずだが、いつ誰がやったのかまではさすがにわからない。

設定を変更した履歴まで残すとか、そこまでケアしたシステムではないし、個別にアカウント作ってガチガチの管理というわけではない。ミッションクリティカルでもない限り、そこまで追跡する機能は作り込まないだろう。

テスト環境はクリーンかつ半永久保存

今回はテスト環境が正常な状態で残っていたので分かったようなものの、今の技術スピードだと2年前のものですら化石に見える。.scssとかもう使ってないし。PHP 5.2系なんて、レガシー扱いだ。

といいながらも、開発した案件はほぼすべてテスト環境をのこしたまま、ディスクに眠っている。
最古の環境は7年以上前(カームテックの創業前!)だ。テスト環境として利用しているものも、今となっては同じものを揃えられるか怪しいものばかり。

しかし、これまでの経験では残しておいてよかったと思うばかりだった。

先日も業務端末がWindows XPからWindows 7へ端末ごと変更ということで、商品データ生成ツールの環境構築をしてきたが、当時と同じにしようと思っても色々と環境が違って四苦八苦した。ちなみにそのシステムを納品したのは2005年か2006年あたり。

法人は、帳簿を備え付けてその取引を記録するとともに、その帳簿と取引等に関して作成又は受領した書類(以下「書類」といい、帳簿と併せて「帳簿書類」といいます。)を、その事業年度の確定申告書の提出期限から7年間保存しなければなりません。

また、法人が、取引情報の授受を電磁的方式によって行う電子取引をした場合には、原則としてその電磁的記録(電子データ)をその事業年度の確定申告書の提出期限から7年間保存する必要があります。

ただし、その電磁的記録を出力した紙によって保存しているときには、電磁的記録を保存する必要はありません。

国税庁 | No.5930 帳簿書類等の保存期間及び保存方法

システム構築という責務は予測不可能な未来

法人会計ですら7年間。システムの寿命は思ったより長い。その産業のサイクルに準じており、よほど致命的なセキュリティ対策等がない限り延々と使い続け、それを前提に教育された業務が「文化」「社風」となっていく。

受託システムにおける稼働サイクルというのは、思っているよりも長く息づくことが多い。
そこまでを見通して設計となると、やはりクライアントへ歩み寄り、企業文化を含め知らなくてはいけないことがとても多い。関係者が増えると、同じ温度で案件が進むことは少ない。

東日本大震災でもそうだった。耐震設計の時、どこまでを見通せば良かったのだろうかと、ふとよぎった。システムを設計するプログラマーは、時として予言者のような立ち位置になってしまう。