例のアレをシステム開発で例えるなら、コーディング規約や設計規約よりも上位に置かれる「開発・設計基本指針」といった高レベルのルールと言って良いだろう。
その会社は、無理なシステム化戦略によって一度は倒産寸前にまで傾いた経営をようやく立て直し、まさにこれから、というところであった。全社員が路頭に迷うかと思われたあの恐ろしい時代の経営の第一の反省点は、技術的にエレガントとは言えない開発・設計基本指針にあると考えられた。
とりわけ、旧開発・設計基本指針では、ハードウェアへの直接アクセスについては最高経営責任者がこれを判断するとされていたため、結果的に総合的な経営陣の合議判断が排除される状況となり、ついには技術陣の専権事項となって、メンテナンスが不可能となるほどの複雑なハードウェア・アクセスがソースコードに埋め込まれていく状況となってしまっていた。
新しい開発・設計基本指針ではこうしたことを深く反省し、技術的なエレガントさが追求された。株主の要求により、会社再生のおり経営陣に加わって再建に尽力した権威ある社外専門家達を招聘し、その意見を取り入れた。結果として、開発・設計基本指針の第九項に「ハードウェアへの直接アクセスを禁止する」という内容が盛り込まれた。また、ハードウェアにアクセスするための技術やノウ・ハウ、ハウ・ツーも、研究したり保持したりしない、と付記された。
だが、経営立て直しから間もなく、いよいよ自社の基幹システムをこれにより刷新しようとしたとき、システム開発を取り巻く技術的トレンドは変わってしまっていた。標準化によるシステム・ライフサイクルの一元管理が新たなシステム開発パラダイムだと見なされるようになったのだ。そこで、会社の経営判断は、工場の生産ライン制御だけでなく、工場建屋管理システムの制御や、通風や採光、また給与、会計、人事システム、フィジカル・セキュリティなどの異質なシステム群をも単一システムとして一元管理し、これによりシステムの安定的な保守とコスト削減を実現するに決したのである。
経営陣は商機に投じたシステムの早期完成を至上命題とした。このため、システム開発における技術的な適切性は、今回は二の次とされた。
技術者たちは可及的速やかにシステムを完成させた。工場のラインを制御するとともに、給与や会計、フィジカル・セキュリティなどまで標準化・一本化することにより総合的で高速な経営判断が可能になった。またこのシステムは大幅なコスト削減も実現しており、会社の経営に大きく寄与することとなった。
建屋管理システムのうち、特にフィジカル・セキュリティシステムはドアや窓の施錠機構、警報・監視装置などまで制御するため、ハードウェアへの直接アクセスが必要だったが、これは「最小限必要とされる矮小な事項に過ぎず、技術陣が当時当時の状況で判断して実装すべき事項である」とされ、技術陣の奮闘により最小限のハードウェア・アクセスでうまくシステム化された。
一時期倒産寸前であった会社は、このシステム開発の成功もあって業界でも2位か3位の時価総額規模を回復し、有数の技術企業となっていた。
このシステムはなんとはない不明瞭さと不安を
ところが、現在も稼働し続けているこのシステムのうち、特にフィジカル・セキュリティサブシステムのハードウェアへの直接アクセスが問題視されるようになった。
ハードウェアへの直接アクセス部分は、はじめは規模も小さかったが、システムがメンテナンスされる際にソースコードもリファクタリングされ、個別にその場その場で書かれた間に合わせのコードでは既になく、気が付けばハードウェア直接アクセス用ライブラリとなって、全システムで最大のソースコード行数を費やす一大サブシステムとなっていた。
だが、開発・設計基本方針の第九項には、「ハードウェアへの直接アクセスは、これを認めない。その技術は全社的にこれを保有しない」と書かれてあることには変わりがないのだ。
当時の状況はこうだ。
ハードウェアへの直接アクセスが禁じられているのに、ハードウェアの制御を実質的に命じられたプログラマたちは、
「ハードウェアアクセス用の海外製COTS利用ライセンスを購入してもらうしかない」
「だけど、海外製COTSは滅茶苦茶に高いし、それにウチの会社のフィジカル・セキュリティのハードウェアには合致しないから、特注カスタマイズしてもらうしかない」
「海外製COTSへロックインされる問題も怖い」
「だいいち、以前ウチの会社の経営が傾いて倒産寸前にまで追い込まれたのは、あの海外製COTSのメーカーにやられたようなものだ。だから、社内にはあの海外製COTSに対する感情的なしこりもある」
「これは上の方にかじ取りして貰うしかないよ」
……と、開発を
そこへ、システムの早期完成を督励するため、本社から企画本部長が乗り込んできた。彼は
「君たちは何を屁理屈を言って手を
などと、いかにも琴線への触れ具合がいいようなことを言って技術者たちを
技術者たちはこの本社企画本部長の
ところが、それから年余の時間が経つというのに何の判断もなされぬまま、このハードウェア・アクセス部分は、前述のように「社内申し継ぎ」の壮大なライブラリに成長してしまい、のみならず会社の資産にまでなったのだ。ところが、この大資産は経営トップの認めているものではない。
中間管理層は困った。プログラマ個々が勝手にハードウェアにアクセスするコードをこっそり書いたと言うなら、それはプログラマの責任にして、露顕すれば個々のプログラマを叱責するなりして処分してしまえばよい。しかし、大きくなってしまったライブラリは、実質上会社の資産となっており、今更もうどうしようもない。それどころか、そのライブラリはもともとファクトリ用に書かれていたのに、パッケージ化されて社外に販売された金融などの大システムや、一般向けのホーム・セキュリティにまで組み込まれ、役立てられるようになってしまっているのだ。
仕方なく、「このハードウェア・アクセスライブラリは、開発・設計基本指針には合致している。それは、ハードウェアにアクセスするための必要最小限の方法しか用いていないからである」という解釈が本社経営会議で議決された。全社が曖昧な薄笑いのうちにこれを聞き、受け取った。あの壮大なサブシステムが、「必要最小限」とな……?
社員たちは、ひそひそと「どう考えたって開発・設計基本指針に違反しているよな、ウチのシステム」と言い合った。新入社員を教育するとき、教育係は
「このライブラリのコードは、ハードウェアへの直接アクセスを行っていない。素人がパッと見ただけならそのように見えなくもないが、これは、経営目的を達するため、必要最小限の処理を行っているのである。したがって、開発・設計基本指針の精神には合致している。……このコードがそう見えない者は、精神力でそのように見えるようになるまで頑張れ」
……などと教えるので、新人の失笑をかう始末である。
社員一同、特に技術陣は釈然とせぬながら、ハードウェアに直接アクセスして迅速に目的を達することができるこのライブラリの恩恵に
何度か、
「おかしいじゃないか、現にうまく動いているシステムが数多くあるにもかかわらず、これらは全社的な開発・設計基本指針とはまったく一致しておらず、経営トップもこれを資産として認めていない。ならば、開発・設計基本指針を変更すべきではないか」
という発議が行われたが、
「そのような現実路線は、技術的にエレガントとは言えない。技術至上主義を社是とするグループ会社全般の方針に違背する。この問題には、多くとも、コーディング規約などの部分的な改正や、パッケージ化して社外に販売しているものについては納品物メンテナンス規約などの新設により、限定的に対処すべきだ」
などという変ちくりんな理由で発議は認められなかった。枝葉で限定的に対応するなどということの、どこが技術的にエレガントなのか。
だが、たしかに経営トップレベルの苦し紛れな判断回避も
無論、現実には設計が間違っている場合もある。部分的な間違いが製造中に見つかり、設計を修正するということはあるだろう。だが、問題はそのような部分部分の誤りとは異なる。全員が薄々開発・設計基本指針の欠陥に最初から気づきながら誰もそれを言い出そうとはせず、本社の監査と株主が怖くて、開発・設計基本指針の欠陥をその場その場でうまくかわしながら大システムを製造してしまったのだ。
もともと、この開発・設計基本指針は、一度は倒産寸前にまで傾いてしまった経営の反省点から生まれたものであり、トップからボトムまで、社員全員、倒産して路頭に迷うあの恐怖がトラウマとなって胸底に残り、この現状と