98年10月27日執筆

事例


○前口上

ここ数ヶ月は久々にコンサルではなくて、プログラマとしての労働をした。し かも受託開発なので、「出来てなんぼ」というタイプのプログラミングである。 ここ何年も職業プログラマでなかったり、職業プログラマであっても受託とい うことはなかったので、久々の受託プログラマの体験であった。

業務の話をあまりここで詳しく書くのはナニであるので、あまり詳しくは書か ないが、わりとミッションクリティカルな基幹業務システムで、Linuxでかな り大規模なデータベース(設計は4TB)とそれにかかる全文検索エンジンを含ん だサーバ群の構築である。

このシステムは元はOrigin2000とかSun EnterpriseServerとかを使った提案が されていたものらしく、それらを使った基本設計を見た時には「なんてバブリー で力任せの設計だろう」と思ったものであったが、それゆえ「この程度ならわ りと簡単にLinuxで構築可能」と判断出来るものであったし、結局出来てしまっ た。まだ4TBのデータを投入するには至っていないので、本当に正しく動くか どうかは実際のところは未知数なのであるが、少なくとも見通しとしては立つ レベルにまでなっているので、「Linuxでもやってやれないことはない」と思 うには十分であった。

まぁ現実にこのようなことが出来た(少なくとも目途は立った)わけなので、 「やはりLinuxは使える」と感じることは出来た話である。というところで、 このあたりをネタに今回のTODOを始めよう。

SEの仕事とは何か

今回私がやったような仕事は、いわゆる古典的なシステム開発の手法を踏襲し たもので、システム概要の設計を行い、それをベースに提案をし、開発すると いうものであった。「設計して開発」というのはシステム開発だから当然のこ とであるが、いわゆるSE的業務として「提案する」ということを行っているの である。古典的SE教育を受けて来た私にしてみれば、この「提案」こそがSEの 業務の中心であるとさえ思っている(それ以後は広義のプログラマの仕事であ る)。

この時、普通の個人ユーザがLinuxを使う時と大きな違いがある。それは、 「何が何でもLinuxでなくてはならない」という制約はまずないということと、 「何に使うかはっきりしている」という点である。メーカの色がついたSEなら いざ知らず、独立系でLijuxを扱おうかというところなら、現実にはそれ程 Linuxにはこだわらず、適当な解を考えてコンピュータを用意するだろう(もち ろん他と同等かそれ以上ならLinuxを選択するだろうが)。この時に「用途がはっ きりしている」ということが重要で、とにかく物事の判断が「目的ベース」で あるから、目的が達成出来ればそれで良いということになる。かけ出しSEの頃 上司に「一番優秀なSEとは、コンピュータを使わない解決を提案するSEである」 と言われたものである。つまり、それだけ「目的」が優先であり、コンピュー タを使うかどうかは、その「手段」に過ぎないということをよく知っていなく てはならないということである。

基本的にSEが通常の顧客に対してやる仕事は、「目的ベース」ということが基 本である。つまり、「何をやりたいか」ということがわりとはっきりしている。 また、顧客自身がそれを自覚していない場合は、SEが「こうすると良い」とい う「提案」を行うので、最終的には目的がはっきりする。ほとんど唯一の例外 は、最近の「景気対策」のバラ撒き予算で、これにかかるコンピュータ導入は 「何に使えばいいのだろう」ということで悩むことになるのだが、それは本当 に例外に過ぎない。あくまで目的ははっきりしていて、またそうでない場合は はっきりさせるようになっているのが、この世界の常識である。

個人がLinuxを入れる場合、「OCNにつないだのでメールサーバに使いたい」と かであるなら、「目的指向」であるし、やりたいことがはっきりしている。ハー ドウェアに要求される能力も、インストールするべきソフトウェアも、自明で あるから悩むべきことは少ない。いろいろ考える過程で、「実は自分がコンピュー タを持たなくても、他の人のを使えば良い」という結論が出れば、なにも無理 して持つ必要すらもないのだ。仮にLinuxよりもFreeBSDの方が適しているとい う結論が出れば、Linuxを入れないでFreeBSDを入れれば良い。とにかく「目的」 が達成されれば、「手段」であるLinuxは実はどうでも良くなる。このように 個人でも目的ベースに物事が進む場合は、SEはいないが「導入」のやりかたは SEが提案して行ったような「通常」のコンピュータ導入と同じである。

ところが通常は「何となくLinuxでも入れてみました」的なことが多いのが 「個人」の「趣味」の世界である。ありがちな質問として「Linuxを入れてみ ましたが、いったい何に使えば良いのでしょう」というありがちなFAQになっ てしまう。この辺はこの連載の第6回にも書いた。その時には、このFAQの答え として、「あなたはいったい何がしたいですか?」という問い返しという話を した。確かに、「その辺がはっきりしてないことには答えようがないというの は、どうしようもない事実」であることには変わりがないからだ。

しかし、ここではあえて別の解について書こうと思っている。そのためにこの ページを読んでいる大多数の人には関係がないと思われるSEの業務について触 れたのである。

SEの業務は「提案」にある。つまり「ニーズを掘り起して、目的を作る」とい うことである。つまり、「何をしたいのかよくわからん」という人に、「じゃ あこんな使い方をしてみませんか?」的なことを言ってみてはどうかというこ とである。よくわかってない人からこの手の質問が来た時には、使い方を「提 案」してみてはどうかという提案である。

提案の効用

SEが業務として提案する時、それは何を目的としてするのだろう か。これは当然のことながら、営利が目的なのだから、「いかに してコンピュータを売るか」ということのためのである。「優秀 なSEはコンピュータを売らない」とは言っても、商売しないこと にはどうしようもないのである。

つまり、「提案」を行うことによって、需要を作ることが出来るのである。も ちろん何の必要もないところに需要を作るのは、商売でもなければ意味のない ことであるが、なんとなく「こんなことしたいな」と思っている人に対して使 い方の提案をすれば、その人自身すらも自覚をしてない欲求を、より具体的な 需要にすることが可能なのである。私が業務で行った今回の「提案で」でも、

というところに、「ここは一つLinuxでどうなるか提案してみて下さい」と言 われて、提案をしたのである。放っておけば他のプラットホームで構築された かも知れないし、下手をすれば他のプラットホームであってもうまく構築出来 なかったかも知れない。いずれにしても、「Linuxを使ったシステム」にはなっ ていなかったのである。そこにLinuxを使った提案をし、それが採用された結 果、「Linuxを使ったシステム」が一つ出来たのである。このように「提案」 することによって、需要の具体化が出来、その結果システムが構築されたので ある。つまり、元々使われるはずがなかったところに、需要を発生させたとい うことである。

これは大きなシステムの場合の話であるが、同じことは個人のマシンでも言え るはずであるし、似たようなことは時々ある。

たとえば、「Macが欲しいんですぅ」みたいな相談を受けた人はないだろうか。 ところがこの相談はよく聞いてみれば「絵が書けるパソコンが欲しい」という ことに過ぎず、WindowsでもLinuxでも十分代替可能であるというのは、ちょっ とアドバイスみたいなことを求められた人は経験があると思う。もちろんMac を使うことそれ自体が目的化していれば話は別であるが、たいていはそうでは ない。

同じように、「何となくWindows等を使いたい」という希望であっても、それ は必ずしもWindowsそのものを使いたいとか、Windowsでしか動かない特定のア プリを使いたいとかではなくて、ある程度の目的意識を持っていることも少な くない。そもそもが、パソコンなどという決っして安くないものを購入しよう と言うのだから、まるで目的がないというわけではないはずである。何かがし たくて購入するはずである。それが仮に「見栄」のためであっても、「見栄」 という目的は存在しているはずである。

だから個人でパソコンを使おうという場合でも、目的がないわけではない。 「Linux(or Mac or Windows)を入れてみましたが、いったい何に使えば良いの でしょう」という漠然とした疑問は確かにそこらじゅうで出される疑問ではあ るが、実はそれは本当に何もわかってないわけではなくて、「やりたいことが 可能なのかどうかわからない」とか「やりたいことをどう実現すれば良いかわ からない」とかである可能性は大である。

このような時に、アドバイスとして「あなたはいったい何がしたいですか?」 という問い返しは、あまり意味を持たない。もちろん丁寧に、

Linuxを入れましたが何に使えばわかりません
あなたは何をしたいのですか?
何となく友達に見栄が張りたいのです
どんな見栄が張りたいですか?
なんかビックリするようなことをさせたいです
どうすれば友達はビックリするでしょう?

といったようなやりとりをしてくれる人がいれば、それはそれで良いのではあ るが、newsやMLでそこまでの期待をするのは無茶と言うものである。

とは言え、このような対話をすれば、自分が何をやりたいか知ることが出来る し、上級者とそのような会話をすれば、自分のやりたいことが可能であるかど うか、また可能ならどうすれば良いかということを知ることが出来る。つまり 問題点が整理されるわけであるから、業務の時にSEに問題整理をしてもらった のと同じことが出来るのである。このようにして潜在的な需要を掘り起すこと が可能であるなら、もっとLinuxの使われる場面は増えるだろうということが 期待出来る。

ところが、唯一にして最大の問題は、そのようなことをしてくれる人は、およ そいないということである。私に言われても、一々そんな人を相手にしている 時間はない。

Linuxはなぜサーバに使われることが多いのか

話をちょっと変えよう。

Linuxの使われ方、特に商用に近い使われ方を見ると、サーバ的な使われ方が 圧倒的である。「Linuxをメシのネタにする会社」の業務にしても、そのほと んどが「サーバ構築」が本来の業務であり、クライアント系や組み込みとかと いったようなことをやっているところは少ない。これは「物が高価なので身入 りがいい」ということだけが理由とは言えないだろう。なぜなら会社に秘かに 入れられているLinuxも、「Linuxそのものの評価や実験」以外の用途となると、 サーバとして使われていることが多いからである。

もちろんLinuxがサーバ用OSとして有用であることは、現在は多くの人に知ら れている。軽いし、安いし、安定であるということで、サーバとして使うのに はいろいろ都合が良い。最近では大規模RDBMSが多数移植されているので、そ ういった意味でも採用しやすい。何にしても、多くの商業的な使われ方から言 うなら、「Linuxはサーバ用OS」ということになっている。

これは実は技術的な理由ばかりではない。商用で採用するには、いくら技術的 に優れているということを示されても、「実績」がないとあまり使いたいもの ではない。「基幹系システムでは初物は避ける」というのも、その辺の心理か らのことで、いかの技術的に優れていようと、安定して動いた実績がないと使 いたくはない。安定すれば素晴しいものになるのかも知れないし、実は最初か ら安定しているのかも知れない。しかし、そこのあたりを客観的に検証する術 はないのだから、「実績」が欲しいわけである。

その点でも最近のサーバ応用におけるLinuxは合格点で、昔と違いかなり実績 が出来て来た。昔はかなり苦労して実績を積む努力をして来たのであるが、最 近は勝手にあちこちで実績が出来るようになって来た。何にしても嬉しいこと である。

というようなマジメな分析もあるのだが、今回はちょっとヒネった分析をして みようと思う。

これは「実績」の話と関係ないわけではないが、「LinuxをサーバOSに」とい う使い方の中には、「その使い方がわかりやすい」ということがあるのではな いかと思うのである。

Windows全盛の今日で考えると、UNIXは基本的にサーバのOSである。ちょっと 前はUNIXをクライアントに使うとか、いわゆる「ワークステーション」として 使うとかのように、サーバ以外の応用も考えられていた。しかし、今ではその ような用途のかなりの部分をWindowsが占めるようになっている。SunやSGIは かなり頑張っていると思うのだが、コストパフォーマンスを考えると、どうし てもWindowsを選択することになってしまう応用が少なくない。そういうわけ で、UNIXはサーバとして使われることが多くなり、クライアントやワークステー ションとして使われるのは、かなり減って来ている。

そうなるとLinuxと言えど、UNIXの一種であるから、いきおいLinuxの応用であっ ても、クライアントやワークステーションとして使われるよりも、サーバとし て使われる場面が多くなる。もちろんLinuxをよく知る人にしてみれば、(今は それ程は言われなくなったが)Linuxはパーソナル用途向けのOSであり、クライ アントやワークステーションとしての使い方というのは、どちらかと言えば本 来的な使われ方なはずであるのに、である。

ただ、この「Linuxがパーソナル向け」であるというのは、一種の悪口のよう なものだということを忘れてはいけない。実はこのことは、アプリがいきなり I/Oポートを叩けるといった「DOS的なこと」が出来るのをマイナーにとらえた り(確かにマトモなOSで無制限にやるのは感心しない)、かつては負荷上昇につ いての考慮が足りないだとかといったといったようなことから、「ま、こんな ものはしょせんおもちゃなんだから、サーバのような大袈裟なシステムには使 えないんだよ。だったら個人ベースでUNIXごっこでもしてろ」といったような、 どちらかと言えばマイナーイメージで言われたことである。もっとも、古いバー ジョンのLinuxはやはり「個人にUNIX環境を提供したい」といった目標を持っ ていたということがあったということも、また事実ではある。とにかく、いず れにしても現在のLinuxにあてはまることではなくて、「過去の話」である。 現代はどうかと言えば、御存知のように「サーバ用のOS」としての市民権を持 つにいたったのである。

とは言え、その辺に落ちているパソコンで適当にインストールしても、それな りのUNIX環境は構築出来るということは、「でかいことが出来ないおもちゃだ から、パーソナルにでも使っておけ」的なこととは全く関係なしで、「パーソ ナル用途向け」と言っておかしいことではない。個人の環境として使えるもの であれば、個人的に使うのは悪いことではないからだ。遊んでいるパソコンが あれば、「まぁ一つくらいLinuxを入れておいても」と思うのは、普段Windows を使っている人にしても、そんなに無謀な考えではないはずである。実際にそ のようにしている人は少なくないはずで... と言うよりは、実際にLinuxを使っ ている人の大多数はそのような人であると思われる。

ところが、そのような状況とはうらはらに、「Linuxをクライアントやワーク ステーションとして使ってます」といったような事例は、あまり聞かない。まぁ 個人的にインストールして使っているようなものを、事例として騒ぎたてる人 もあまりいないだろうが、それでも母数はサーバとして使っている人よりはずっ と多いであろうから、もっとたくさん報告があっても不思議ではない。使って いる人はわかると思うが、結構便利にいろいろ使っているということは、事実 なのである。

ところがサーバとしての報告と比べれば、クライアントやワークステーション としての報告は少ない。このことを考えてみると、「サーバの方が事例として 報告しやすい」ということではなくて、「サーバとしての事例が多く報告され ているから、物事としてわかりやすい」ということもあるのではないかと思う。 つまり、使えるかどうかという問題ではなくて、「その使い方がポピュラーで あるかどうか」ということが大きなポイントであるように感じられるのである。 また、そのような使い方が多く紹介されていれば、使う方としても同じような 使い方だと安心出来るわけであるし、事例があれば類似の使い方はいくらでも 考えられる。であるから、技術的な理由とは別に、「Linuxはサーバ用のOS」 という評価を受けるようになるのではないかと思われる。つまりLinuxの使い 方は「ふつ〜サーバ」なのである。

事例

このようなささいな例を見ても、「何に使えるか」と考える時に、「他人は何 をしているか」「どんな使い方がポピュラーであるか」ということは、かなり 重要なポイントを占めているように思われる。また、アイディアというものが 常にそうであるように、現状でどのようにされているかということで、わりと ひっぱられるものである。そのようなことを考えると、最初の方に上げた「何 に使って良いのか漠然としかわからない」という人でも、目の前に実際に使わ れている応用があれば、何となくそれで考えの整理が出来るものである。そし て現実に使われているものを見れば、「何が出来るか」「どのようにすれば出 来るか」という問題も、わりと解決しやすいものである。

と言ったことを考えれば、「何が出来るか」「どのようにすれば出来るか」と いう問題を解決し、潜在的な需要を掘り起すには、「現状このように使われて いる」「それはこのようにして実現した」というような情報があれば良いよう に思われる。また、そこに定量的パラメータ(メモリをどれくらい用意したと か)を一緒に書いておけば、前回書いたような「設計の指針がない」というよ うな問題も解決することが出来る可能性が出て来る。

つまり何が必要かと言えば、いわゆる「事例」を集めるということである。事 例がたくさんあれば、「何をして良いかわからない」という人にとって、やり たいことを整理することになるし、実際にやりたいことがわかれば、その事例 をトレースすれば実現が出来るはずでである(というか、そのレベルまで書い てないと役に立つ事例ではない)。また、程々に物事がわかっている人にして も、Linuxにはまだ定量的データというのがまだ揃っていないわけであるが、 定量的データそのものはなくても、参考にはなる。実は冒頭で書いたSEの業務 でも、「事例集」という冊子を使って、その中から話のネタを取り出すという ことも少なくない。顧客にとっては、やはり具体的な例を聞くのが安心の元で あるからだ。

このように、具体的な事例を用意することで、多くの問題が解決するのである。 嬉しいことにその事例というのは、まさしく事例であって、単に事実なのであ る。だから、実際にやったことをちゃんと記録するだけでドキュメントは出来 上がる。「他人に読んでもらう」ということで、わかりやすい文章を書く努力 さえすれば、特別に難しいことをする必要はない。「○○を実現した」「○○ を実現するには、××をした」「これはどんな環境で動いている」といったよ うなことをキチンとまとめてありさえすれば良いのだ。たったそれだけで、い ろいろな人が恩恵をこうむることが出来るのである。

TODO

例によってTODOでまとめよう。

今まで述べて来たように、事例というものを集めるだけで、多くの問題が解決 し、多くの潜在需要を掘り起すことが出来る。そして、その事例を書くことは、 そんなに大変なことではないのである。本のような大袈裟なものを書くのでは ないから、特別に著述のための技術が必要なわけでもない。やる気さえあれば 誰でも出来ることである。

「何かをやったら事例としてドキュメントを書こう。そのドキュメントが多く の人を救い、多くの需要を掘り起すかも知れないのだ。」


もどる