メールマガジン第36号配信

皆様、こんにちは。ICIメルマガ事務局です。
3月に入り、ようやく春を感じさせる陽気が増えてきましたね。
皆様、花粉症は大丈夫でしょうか。
花粉症用のメガネをかけている方を多く見かけるこの頃ですが、 花粉症には症状を悪化させてしまう食べ物があります。
それは「揚げ物」です。
揚げ物油に、花粉アレルギーを引き起こす原因となる物質が含まれているそうです。
この時期だけでも食生活を和食中心にしてみるなど、対策をしてみてはいかがでしょうか?
それでは、桜が咲くのを心待ちにして、
ICI通信第36号発刊です。

本メールマガジンは、弊社が創立以来お世話になった方々に送信させていただきました。
メールを毎月お送りし、弊社の活動をご紹介していきたいと思っております。
もし、不要、とご判断いただいた場合は、本メール(mail.mag@i-c-i.jp)にご返信いただければ
配信を停止させていただきます。なお、本文中のURLがご覧いただけない場合も同様にご返信くださいますよう、よろしくお願いいたします。
また、お送りしたメールアドレスなど皆様の個人情報の取り扱いについては、下記をご参照ください。

http://i-c-i.jp/company/privacy/

本メールが皆様のビジネスの発展に
少しでもお役に立てるように願っております、、、
よろしくお願いします。

********************************************************************************
特別特集

「サスティナビリティと311」

http://i-c-i.jp/wp-content/uploads/2013/03/201303_gcjn.pdf

弊社が参加している、グローバル・コンパクト・ジャパン・ネットワークの活動をご報告いたします。
********************************************************************************

********************************************************************************
特集

「PM2.5について」

http://i-c-i.jp/wp-content/uploads/2013/03/201303.pdf

花粉や黄砂と共に、最近、大気汚染のニュースで話題の「PM2.5」についての特集です。
********************************************************************************

=================================================================
今月のBossのつぶやき
~ ITのお仕事 ソフトウエアの寿命 ~
=================================================================

その昔、私がまだ若き研修課長だったころ。会社の先輩との話。「なぜ、私たちソフト開発者が苦労するか」という話題だった。

故人になったその大先輩の意見は、ソフトウエアに使用期限がないから、というものだった。ハードウエアには、保守期限があり、保守部品の保管期限がくれば保守停止となり、いずれは、買い替えとなる。その時、ハードは刷新される。もちろん、メインフレームの時代なのでソフトウエアも刷新する。ハードが変われば開発環境もソフトの稼働環境も変わってしまうので、プログラムも一から作り直して、となるので、とりあえず、ハードのサイクルとほぼ同じ時期に一斉交換となったのだが、メインフレームの世界に、OSの連続性を担保する動きが始まって、なんと、プログラムは「移行」できることになってしまった。ハードは新しくなってもプログラムは新しくならず、まあ現行保証はできるけど、15年もメンテを続けて、スパゲッティを通り越して「ゴルディアスの結び目」となってしまったその状態は保持されるのだ。
まあ、膨大な規模の新規開発は大変だが、私たちが一番苦労したのは、10年以上稼働しているCOBOLプログラムのメンテであった。経験された人はわかると思うが、H-8000からM-160やM-180に移植された10数年前のコードを、直し続けるのは、まさに苦行の連続なのである。世の中には、PL1やRPGなどというものもあり、だれかがメンテで苦労しているか、もはやメンテ不能となってしまったとしても、稼働している、と聞く。

そこで、ソフトウエアに寿命はあるのか、という話題になったわけだ。その時点でも、言語の標準化や移植性の向上には、目を見張るものがあった。ということで、ますます、ソフトウエアは無限に継続できるのではないのか、という感じがした。もちろん、刷新することも大変な作業になる。しかし、10年も経てば一から作るための技術革新はあるだろうし、作り直すとなれば、いくらなんでも、不要コードの廃止も可能になる。(不要なコードならメンテの中で削除できる、と主張される人は、やれるものなら、是非やってもらいたい)そこで、寿命が明確なら、要は、7年経つと急に動かなくなるとかというようなことがあれば、メンテの限界も明確になるね、という話である。
現行保証と言ったって、寿命が明確になり、入れ替えなければならないということなら、利用者側もそれなりに我慢するだろうし、また当然のこととしてある程度の投資を考えねばならず、過去のしがらみを捨てて新しい取り組みを入れることも簡単でなかろうか、というのが当時の話題だった。もちろん、そうは行かないのだよ、くらいはわかっているのだが。でも、日々メンテに苦しんでいる時は考えてしまうことなのだ。「時限爆弾コードを入れときましょう」という危ない話も出たように記憶している。

さて、この問題は、これからはどうなるのだろうか。ますます、プログラム言語がハードやOSから独立し、コード自体の移植性は完璧になってきて、ハードの寿命とソフトウエアの寿命は絶対に一致しない時代になっている。また、Agile開発では、ソフトウエア(プログラム)プロダクツの開発は永続的に続いていくように考え、そのやり口を提示している。
SNSやSaaSなどクラウドの中のアプリケーションを考えると一度世の中にはびこって(はびこらせて)しまったものには責任が出てきて、そう簡単に「一斉停止」して「再構築」とか「移行」ができるとは思えない。Facebookに、突然、メンテ不能になったので来週からサービスを停止し再来年に新しい画面と機能で登場、という宣言ができるだろうか?株価は大暴落し、その間に、再びMIXIにしてやられる可能性もないわけではない。
結局、サービスを継続しつつ、追加機能をリリースし、DBを刷新し、画面を変えていく、ということを継続的に続けることになるのだろう。SaaSもそれに近い。複数の企業にサービスを提供していれば、バージョンアップは可能だが、基本は、現行保証はすることは重要だ。もっとも、エイヤ、とやってしまうことが不可能と言うわけではないが、世の中に4ケタもデプロイされてしまったプロダクツに対してそれをすることがいかに大変か、私は痛い目にあった(というか、会社を痛い目にあわせてしまった)ことがあるので、よくわかる。
したがって、これからは「ソフトウエアの寿命」を考えるのではなく、どうやって出来上がったソフトウエアを永続的に、かつ環境に合わせて変更していくか、という時代になる。
なので、実はプログラム開発者は、好むと好まざるとにかかわらず、永久にメンテを続けることになっている。おお、神よ、われらプログラマーを救いたまえ、、、まあ、中には超ややこしいプログラムを見て解析するというような趣味人もおられるので、神に救いを求めるのは、われら普通のプログラマーなのだが。

では、私たちが以前のような苦労をすることなく、この死なないソフトウエアのお守りができうるかを考えてみよう。
まず、ソフトウエアは何から出来ているか、ということから考えてみると、それは、プログラムであり、個々の命令の組み合わせ、である。命令の組み合わせ、という意味では、プログラムは生き物で言えば、DNAと言えるかもしれない。命令はハードによって違うけど命令の組み合わせを書いたプログラムが移植・再生可能なので、ソフトウエアの寿命はハードの寿命と関係なく無限なのだ。生き物だってハードである細胞の再生がうまく行っている限り生き続けるし、活動を継続できる。
しかし、細胞を再生させる時にプログラムコードの書き間違いが多発すれば、個体は死滅する。きっと、プログラムもコピーや書き換えがうまく行っている間は、どのようなハードの上でも動くのだが、この書き換えに無理が生じてくると問題が起こるのだ、と言えよう。しかし、生き物は、プログラムのコピーが不可能になると、個々の細胞や細胞の塊である個体を死滅させるが、その前に生殖と言う形でプログラムのコピーを作って、新しいハードを作り出す、という技を身に付けている。今のソフトウエアプログラムにこんな芸当ができるかどうか、またできるように作れるか、という話は、空想科学小説に譲るとして、このアナロジーで考えた時に、私たちはプログラムをどう書くべきか、どう維持していくか、のヒントがあるように思える。

それは、書き方、であろう。コピーや移植をしても間違いが起きないように、一部を修正しても他の部分に影響が出ないように、幾つかのコピーミス、修正ミスが起こってもすぐに検知しその障害がシステム全体に広がる前に処置できるように、しておくのである。要は、きれいなプログラムを書くことである。あるいは、技術的に可能であれば、汚いコードをきれいにするプログラムを作ることだ。また、修正する時にもその先のことも考えて、分かりやすい修正を心がけるべきだ。スパゲッティや「ゴルディアスの結び目」を作っていけない。何より、自分の書いたコード、人に作らせたけど、自分がお守りをしていくコードは、美しく実用的であらねばならない。そういうプログラムであれば、きっと、クラウドの中で100年使えるソフトウエアとして生き残るに違いないし、将来、ヴァルカン人も褒めてくれるに違いない、のである。

まあ、結局、ちゃんとやりなさい、というのがいつの世も神様のお告げなのだね。

(i^c^i)

********************************************************************************

<ご意見・ご要望はこちらに>
mail.mag@i-c-i.jp

【発行元】株式会社アイ・シー・アイ
【会社ホームページ】http://i-c-i.jp/

********************************************************************************

 


Comments are closed.