今回は、今後システムを開発・保守する上で、最も重要な要素となるべきREPOSITORY【リポジトリー】についてお話する。リポシトリーとは、システム開発に必要となるあらゆる仕様、デザインからソースコード、に至るデータを一元管理する格納庫である。さしずめプログラム開発工程を工場に例えると、原料の貯蔵庫ということになろうか。中でもデータについての仕様【メタデータ】を格納したデータ・ディクショナリは、その中核をなす重要なパーツであり、データの持つ“意味”や、システム上での表現&格納の“形式”を可視化したものである。
図1に、情報製造工場の製造装置であるプログラムと、プログラム製造工場の製造装置(人)や原料(メタデータ)のネスト関係を図示したので参照されたい。
ここで冒頭に“重要な要素となるべき”と書いた理由は、現時点で多くの企業がこの原料貯蔵庫や(可視化した)原料を持たずに、日常のシステム開発や運用保守業務を行っているからだ。目に見えるハードウエアの世界でも部品表と設計図が存在するのに、目に見えないソフトウエアの世界でこれが無いことは、品質面で非常に心もとない状況にあると考えてよい。言い換えれば、実践的にはソフトウエアが未だ科学的な領域に至っていないということである。
確かにソフトウエアにおける意味の説明は、言葉の持つ“曖昧さ”を含んでおり、抽象化の度合いとともにそれが拡大することは否めない。しかし、だからと言って可視化をしないまま、属人的な判断のもとに”原料”を使用し続けていたのでは、これ以上の品質の向上はまずもって見込めない。ましてやオフショア開発が一般化した現在、これに拍車がかかることは容易に想像できる。言葉による説明で足りない箇所は、モデル図による表現や多面的視点からの分類表などで補うことで正確性を増すことができる。またオフショア向けに説明を翻訳することも可能だ。行きつくところ、この部分の努力や工夫を怠っていては、ソフトウエア開発はますます科学から遠のき、3K的にならざるを得ないのではなかろうか。
システム運用・保守の属人性、システム再構築時のブラックボックス化など、システム製造の原料であるメタデータの意味が不鮮明であるという問題は、システムの巨大化とともに益々、深刻さを増している。ここらで暗黙知を形式知に変える潮時ではないだろうか。読者の皆さん、アジャイル開発やビッグデータが取り沙汰される昨今、敢えて足元を見つめ直し、REPOSITORYの整備に取り組んでみてはどうだろうか。エンタープライズシステムの品質を維持、改善するつもりがあれば。。。
再び図1に戻るが、読者の皆さんの中には、右側のPG製造装置が人ではなく自動化できるのではないかとお考えの方も多いのではないかと思われる。確かにその道の取組も盛んに行われて、いずれPGが自動製造される日も来るかも知れない。しかし、まずは原料素材の整備が先である。そして、この作業の主役としては、長年、自社システムを運用・保守してきた社内のベテランSEが最も適任である。これには新しいプログラム言語も最先端のITも必要としないが、長年向き合ってきた社内システムに対する豊富な知識が必要不可欠である。この点においては、優秀な外部ベンダーも、ITコンシャスなエンドユーザも彼らの右に出るものはいない。誰もが社内システムを簡単に説明できてしまうほど、エンタープライズ・システムは単純ではなく複雑なのだから。