ネタつつき220 - 保守性という名の空気を消そう
日本のIT業界には、保守性の定義を間違って覚えて、「素人同然の人」だとか「努力しない人」に合してプログラムを書く風習があります。さすがにこの悪習は、減ってきていると思いたいのですが、結構広い範囲で残っているようです。
どうしてこうなるのかといいますと、保守性の定義を「誰でも読めるプログラムを書くこと」だと思い込んでいる、もしくは、楽に給与を得たい人がそのように経営者に吹き込んでいるからです。これは保守性の正しい定義を知っている人ならば、一蹴にする屁理屈なのですが、残念なことに、間違った定義が正しいと思いこんで、そのように経営している会社が多々見受けられます。
よくわからない人がいると思いますので、もう少し屁理屈のからくりを言うと、「保守性の定義が誰でもなんだから、新しいプログラム言語の文法を知らない人でも読めるプログラムを書こう」、「新しい技術を知らない人がいるから古い技術だけを使えばいい」などといった主張がまかり通っています。これは他業界の人にとっては笑える話だと思います。何故ならば、製品やサービスの品質は常に向上させるのが当たり前であって、低下させるもしくは、低い水準にとどめる理由がないからです。技術は新旧ではなく、お客様の要望にマッチしたものを選ぶのがプロです。学習していないから使用しないというのはプロとは呼べません。とてもじゃないけどプロとは言えない、素人同然の人に合わせる必要はないと誰でも考えるでしょう。
冷静に考えればわかることですが、保守性の概念がそんな馬鹿げたものである筈がありません。正式な定義は、変更容易性(Changeability)の一部の概念であり、「問題の解決を素早く行う事を表す非機能的特性」が保守性の正式な定義です。間違った定義が広まっているので、正式な定義を書きます。
保守性とは、システムの変更を容易にするための非機能的特性(変更容易性)のうちのひとつであり、「問題が発生したときに素早く解決するために満たすべき特性」です。つまり、エラーが発生しても、被害が局所的になるようにし、一部プログラムを変更するだけで対処できるようにプログラミングするという事なのです。
つまり、一部のIT業界の人が言うような「技術力が低い人でも読めるプログラム」なんていうものはナンセンスです。そもそも、「プログラムが読める」云々は可読性ですし、可読性にしてもプロであることを前提としています。問題に対処するためには、オブジェクト指向プログラミングといった概念を高度に使いこなさねば、高い保守性を達成できません。従って、間違った保守性を理由に、実際には保守性を下げる行為をしている会社が存在するのです。同じ業界の人間として、非常に情けないです。
残念ながら近代日本には、「理論よりも空気を読む」という悪習があります。しかしながら、理論的に物事を考えるべき時はちゃんと考えないと、厳しい現実が待っています。空気ではなく、正しい論理を読み、厳しい現実に対処しましょう。そうしなければ、悲惨な現実が貴方を待っています。