ソフトウェア開発」カテゴリーアーカイブ

ソフトウェアアーキテクトが知るべき97のこと

O’REILLYから出ている「ソフトウェアアーキテクトが知るべき97のこと」を読んだ

ソフトウェアアーキテクトが知るべき97のこと
オライリージャパン
売り上げランキング: 747

珍しくAmazonが新刊を速攻で届けてくれた。つまり、予約があまりされなかったということだろう。技術書なんてそんなものだ…。

本書は、読んで字のごとくソフトウェアアーキテクトが知っておかなければいけないことや、何に注力していかないといけないのか?ということに関して数々の人がその考えを述べている。
本全体としてまとまっているというわけではなく、どちらかというと「あなたはどう思いますか?」って感じの質問に対しての解答集のようなものだ。

ちなみに、日本語訳は無いが原文はこちらにある

97 Things Every Software Architect Should Know – The Book
http://97-things.near-time.net/wiki/97-things-every-software-architect-should-know-the-book

日本語版である本書は、上記97の内容以外に日本人アーキテクトによる追加の内容11本を含んでいる

何を知るべきなのか

実際には、それぞれの立場や会社の性質。従事しているプロジェクトの内容やチーム編成によっても立ち位置は変わってくると思うので、「おー!そうだよね!!」って思うこともあれば「ふーん」と思うこともあった。
ただ、まとまっていないといっても、考えることというのは比較的似通っていて、言っていることはある程度のカテゴリに分けられている

  1. 技術を正しく把握・使うことの重要性
  2. コミュニケーションの重要性
  3. ビジネスを考えることの重要性

とってもざっくばらんに分けるとこんな感じじゃないかな?
たぶん、この人たちにとっては”ソフトウェアや技術に対する知識を持っているのは当たり前”で、プラスして何が重要かということが言いたいんだろう。技術ばっかりの頭でっかちになってはだめですよって。本書でたびたび出てくるところの「象牙の塔」ですね

  • 象牙の塔 http://ja.wikipedia.org/wiki/%E8%B1%A1%E7%89%99(Wikipedia:象牙)
    • 現実からかけ離れた夢想の世界。学者が閉じこもる研究室の比喩。ミヒャエル・エンデの『はてしない物語』にも登場する

面白いと思い、やはり悩ましいのはコミュニケーションだろう。

そんなときに必要なのは、昔から定評のあるテクノロジーです。実際、そのテクノロジーは、人類の歴史で最も重要な技術上のイノベーションです。何だと思いますか。それは話し合いです(P.6 Mark Ramm)

ソフトウェアアーキテクトをビジネスとデベロッパーの間に置くとなると、やはりこのスキルは必須になるだろう。これはプロジェクトをチームとして、会社として成功に導くためには間違いなく必要なことだ。
その割に、これにかかるコストだとか労力というものは軽視されがちで、結果としてプロジェクトはとん挫したりする。
また、もうひとつ。重要なコミュニケーションがある

ソフトウェア・アーキテクトは、どのプラットフォームの仕事をしているかにかかわらず、相互のコミュニケーションを円滑にするための手段を持たなければなりません。その手段の1つが、アーキテクチャー/デザインパターンによるコミュニケーションです。(P.84 Mark Richards)

そう。同じプラットフォーム、同じ言語で開発を行ったとしても別のチームのプログラマがすぐに他のチームで活躍できるとは限らない。仕様書が情報を知るための重要なリソースになることもあるが、プログラマであればまずソースを見ることが多いのではないか?その時に内容を理解したり、プログラムの意図や流れというものを理解するのにこれらデザインパターンというのは間違いなく威力を発揮する。
逆を言えば、本来であればデザインパターンを適用すると効果的な場面において適用されていないとすると、不必要な誤解を招く可能性まであるということだ。

私自身は、デザインパターンに対して習熟しているとはまだまだ言えない。
一人の技術者としてのコミュニケーションがとれるよう、勉強していかなければいけないと痛感することになった。

SilverLight2の情報更新

SilverLightはMicrosoftが提供するRIA技術として現在バージョン1.0がリリースされている
2.0が先日めでたくβ1のリリースを迎えたわけだが
まだまだ日本語の情報は少ない。

仕事ではちょっと使えるかどうかはわからないが個人的には気になる技術なので
少しずつ独学になってしまうだろうが勉強していきたいと考えている。
注目の技術ってやつだ

そんなわけで狭い範囲ながらも多少のアンテナを張っていたのだが
「Dan Wahlin’s WebLog」が更新されていた

Dan Wahlin’s WebLog
My SilverLight Articles
http://weblogs.asp.net/dwahlin/archive/2008/03/12/my-latest-silverlight-articles.aspx

SiverLightでのアニメーション作製においての導入部分といったところだろうか。
記事が追加されていた

Silverlight XAML Primer 11: Getting Started with Animations
http://visualstudiomagazine.com/columns/article.aspx?editorialsid=2530

記事のど真ん中にIBMのバナーがあったのだが、当然のようにFlashで作成されていた。
SilverLightのアニメーションの記事なのに~って思ったが現在のWebバナーの常識を考えればしょうがないか。

SilverLightを勉強する上で参考になるBlogとしてScottさんのブログがある

ScottGu’s Blog
First Look at Using Expression Blend with Silverlight 2
http://weblogs.asp.net/scottgu/archive/2008/02/28/first-look-at-using-expression-blend-with-silverlight-2.aspx

このあたりの情報を参考に勉強していかないといけないなぁ

革新的ソフトウェア企業の作り方

Eric Sink著。青木 靖訳の「革新的ソフトウェア企業の作り方」を読んだ。内容は、Eric Sinkという人がMSDNのコラムにしるしたものを集めたのだと思う。

Eric Sink on the Business of Software 革新的ソフトウェア企業の作り方
Eric Sink エリック・シンク
翔泳社
売り上げランキング: 24226

本書はソフトウェア開発者に向けられて作られた本であるけど、実際の内容は完全なビジネス書だと思う。著者はもっと多くのソフトウェア企業が世の中にはあるべきだと考え、マイクロISVという形態を提唱している。
本書で言うところの「マイクロISV」というのは、個人がISV(Independent Software Vendor:独立系ソフトウェア会社)を立ち上げる事になる。ただ、本書で薦められているものは脱サラ起業ではなく、いわゆる”週末起業”的な話。技術者であるソフトウェア開発者がそれを行おうとした場合に何に留意するべきか。どういう方向性で考えて行くべきかが本書では指南されている。
先般、ソフトウェア開発未来会議においてクラウド・コンピューティングが話題になった。ここで個人からみた視点として、iPhoneで言うところのAppStoreを例に挙げ、個人が作成したソフトウェアを世界に向けて配信する方向性の話が聞けた。オフライン会議に参加して、ここに強く共感を覚えたのはおそらく本書を読んでいる最中だったからだろう。

かなり刺激的な内容で、私自身も小さいながらISVに努めている事から色々と学ぶ事が多い一冊だった。また、昨今のクラウドに対する考え方やMarketPlaceがこの時期に出てきたのはもはや自分のためにあるのではないかと甚だ恥ずかしい勘違いをしたくなった。
また、ソフトウェア開発者であるならばぜひ読んでいただきたい私にとってお勧めの本となった。

何を作るのか

どんなアプリケーションを作るのか。技術者の多くにとって不足しがちな商品開発におけるマーケティングの重要性があげられている。私もどちらかというとそうなのだが、”この技術を何かに使えないか?”という出発点ではなく、”この内容を実現するのにはどの技術が使えるのだろうか?”という、本来当たり前の出発点が必要になる。

「重要なのはユーザーにとってどうかということ」というのを覚えておこう。ユーザーが普通の人たちなら、彼らが.NET CLRをダウンロードしインストールする準備ができているだろうか注意して考える必要がある。普通の人々はすべてが「当たり前のように動く」ことを期待している(P.174)

そう、結局のところ技術は技術者にとっては主役なんだけどユーザにとってはどうでもいいことなんだ。Silverlightがどんなに操作性が良くても.Netの生産性が高くて製品の値段が抑えられても、インストールの手間がかかっていたのでは障壁になってしまう。これは意外と馬鹿に出来ないコストだ。言ってしまうと、我々開発者はその技術が一般化するまでは待たなければいけないことになる。ユーザーがアプリケーションを仕事として使っているのでない限り。

また、製品のマーケットの中での位置づけはどうするのか。
最近よく読む”週末起業”だとかの中では主に”その分野の先がけ・パイオニアになれ”という事がしきりに言われている。本書でのアプローチはこうだ

競合を避けることの大きな問題は、それが顧客をも避けることになるという事だ。競合の存在はお金を払っている顧客の存在を意味する。あなたのアイディアで商売をしている人が誰もいなかったとしたら、それが本当にお金になる事なのか怪しいと思うべきだ
(中略)
彼は、一番良いアプローチは「大きくて無能な」競合を見つけることだと言っている。(P.144-145)

完全に新しいマーケット。ブルーオーシャンは認知されるまでに大変大きい労力を要する。個人が週末レベルでそれを広めているのでは何年先になるのかがわからない。また、それがマーケットとして成り立つのかが不明だ。
マーケットの中で出来るだけ無能な競合を選び、そことの差別化を図る。製品の値段を決定する場合にも競合製品と見比べ、さらに価値を高めて値段を上につけて売り出す。もちろん、差別化した内容が、その価格差に適合しているのかは見極めないといけない。
だが、これらを考える基準を作る事が出来るのも競合がいて、そこのビジネスが成り立っているからであろう。やみくもにブルーオーシャンを探してニーズを無理に自分で想像していないか、確認する必要がある。
もちろん、そこにマーケットを見つけ出せるのであればブルーオーシャンを否定するものではない

より多くの失敗をしろ

この本で面白いのは、この主題を書きあげるためにEricが自らソフトを作って試してみたということだ。彼が作った”必ず勝つ方法があるソリティア”。その名も「Winnable Solitaire」だ。だが、彼の試みた今回の挑戦は結果として失敗した。

2004年9月29日の時点で、Winnable Solitaireは6本売れ、あんまりすごくない合計42ドルの収入を上げた。
支出が0だったなら、新たに得られたこの富で豪勢に買い物をするところだが、開発の際、アートワークのために379ドル使った。また、リリースして以来271ドルを広告で使っている。<中略>結論として、私の損益計算書には現在純損失626ドルと記されている。(P.50)

この失敗に対してEricは10の考えを記事にしている。「勝てる」というのは差別化要因としては弱かったのか?別な種類の製品であったなら?等々
これはよく言われる話ではあるけど、成功するためには多くの失敗をし、その多くの失敗から学ぶ必要があるという事だ。今回もEricは「これは素晴らしい失敗の仕方だと思う」、「小さな失敗で私が傷つくことは全くないと思う」等々の記事を記している。
結局のところ、多くの失敗をして学んだとしても次につなげることができなければ最終的な成功を収めることはできない。そのために致命的な失敗をしないための保険なりをかけておくべきなのだろう。
作ったばかりで売れてもいないソフトウェアに一人で惚れこんで、勢いあまって会社を辞めてしまうようなことはするべきじゃない。そこまでしなくてもマイクロISVという形態であれば十分可能性を試すことができるんだよってことだろう。

実際のところ、環境は整ってきていると思う

実際のところこのマイクロISVという事を実践するための環境は着実に整ってきているのではないだろうか。
クラウドコンピューティングは多くの開発者にサービスを提供する場を与え、AppStoreやWindowsMarketPlaceはモバイル端末に対してアプリケーションを配布する一つの入り口としての機能を持っている。
これらの場を生かして、早く、小さくともアウトプットを出していくことが大切なのだろう。エピローグに載せられた言葉をもって今日のエントリーを締めくくりたい

(君の考えは)クールなアイディアに聞こえる。実装はそう難しくないだろう。君にはそれをやる時間がある。基本的に心配すべきリスクはあまりない。このアイディアが良いものか見極めようと多くの時間を使ったところで。結局確かなことはわからないだろう。そうする代わりに、同じ時間をこのアイディアの実装に使う事も出来る。そうすればこのアイディアが良いものかどうかが本当にわかるだろう。

うーん

久しぶりに、疲れた。

いや、いつも疲れるには疲れるんだけど、今日は自分に直接ではない。
今進めているプロジェクト。キーパーソンになっているメンバーに任せている周りの進捗がおもわしくない。あまり口を出しても変に自尊心を傷つけてもあれなので、もう少し見守っていくつもりだったが、ここにきて別プロジェクトが火を吹き始め、その原因が何を隠そうこの本人であった。
今日のところはとりあえずは任せたが、明日からは本格的に立て直しにかからなければいけないだろう。それ自体はいいのだが…。
うーむ。
明日からはちょうど来る台風並みに荒れることにならなければいいのだが。いや、荒れさせてはいけない。

のだが。。。。
うーむ。

SilverLight2 インストール!

ようやく、SilverLight2をインストールしてみました!
仕事ですぐに使うわけではないのですが、面白そうだから!

VisualStudio2008でSilverLight2を作るのは今の所、以下のモジュールを使う事になる。
VisualStudioだけでも開発は出来なくは無いが、見た目をもう少しいじりたいのであれば
デザイナツールであるBlendも見逃せない。
と言うか、XAMLをゴニョゴニョするの大変

Microsoft SilverLight Tools Beta 1 for Visual Studio 2008
http://www.microsoft.com/downloads/details.aspx?FamilyId=E0BAE58E-9C0B-4090-A1DB-F134D9F095FD&displaylang=en

Microsoft Expression Blend 2.5 March 2008 Preview
http://www.microsoft.com/expression/products/download.aspx?key=blend2dot5

SilverLight Toolsのインストール

ダウンロードしてきたファイルをインストールします
f:id:krote:20080316235121j:image
ぽちっとな
f:id:krote:20080316235120j:image

インストール、結構時間が掛かりました。
私の開発環境としてはそんなに素晴らしい~~環境ではないので
時間が掛かっただけなのかもしれませんが。
VisualStudio2008のインストールもとっても時間が掛かりましたし。。。
いや~~。懐がキビシー

Blendのインストール

f:id:krote:20080316235119j:image

Blendは比較的すぐに終わったかな?
この状態でVisualStudioを立ち上げてみると。。。

f:id:krote:20080316235118j:image

あったあった!
これで一応作る事が出来ますね~。

とりあえず、先に紹介したScottGu’Blogにあったチュートリアルを色々と試してみています。
うーん。ちょっと面白いかも。

ただ、XAMLでGUIをいじるのはやっぱりめんどうだなー

f:id:krote:20080317002555j:image

せっかく上にデザインが出ているのに!!!
そこで編集したいんだぁーーー!!!

あ、おとなしくBlend使えってやつですね。そーですね。ハイ
ごめんなさい

基幹システムにパッケージの適用は?

ZDNetに日本でSaaSが普及しない理由として、各企業内での独自システムに関して記事が載っていた

日本でSaaSが普及しない理由
http://japan.zdnet.com/sp/feature/enterprise-trend/story/0,3800089971,20389127,00.htm?ref=rss

記事を読んでいると、SaaSが普及しない理由というよりは基幹システムをパッケージソフトウェアに一新する事の難しさに対する理由が書かれているように感じた。

独自のシステム

記事にもあるとおり、日本の企業。特に中小~中企業では自社システムを手組で作っている場合が多い。
欧米で主流となるトップダウンな効率化と違って、日本では効率化の手段を現場主導で行う場合が多い。そうなると、どうしてもこの記事の中にあるとおり”その企業内での最適化”という形になってしまう。ましてや終身雇用が約束された時代に作られたシステム。業界内のシステムがどうであれ、あまり関係のない話だ。そして現場手動で作り上げた”その企業にとってかゆい所に手が届く”システムだけに現場が現行システムに対して思い入れを持っている場合も少なくない。
パッケージソフトウェアのビジネスは、基本的には業界で一般的であろうモデルで作られたパッケージソフトに対し、社内の業務を改革して適応させていく形が望ましいと私は考えている。パッケージに含まれる機能が不十分であるのであれば別ではあるが。
ただ、実際の導入事例を見ているとそのほとんどがアドオン等のカスタマイズ開発を要している。企業独自の付加価値を見出すような機能を追加しているのも多いが、そもそもパッケージの原形をとどめていないくらいのカスタマイズが入る案件も中にはある。この場合、パッケージ費用よりもカスタマイズ費用のほうが多くなり、なぜこのパッケージを選定したのか疑問が出てくるくらいだ。
この一つの要因が、現行システムの存在だ。カスタマイズを、”現行システムでこう動いているから”という理由だけで行っている場合もあれば、現行システムの全容を把握していないがために、あとから追加の機能に気付き、追加カスタマイズを要する場合もある。なかなか難しいものだ。なにせ導入企業自身が、自分の欲しい機能(現行システムが保持している機能)を知らないのだから。

決して個別企業における最適化が間違いだとは思わない。事実、それによって力をつけてきた企業は日本には多いと思う。経営のスタイルとして現場手動での最適化を目指すのであれば、結局のところ現状のようにカスタマイズ前提の基幹システムは続くのだろう。逆にトップダウンで動くのが主流になるのであればパッケージに適応させるような現場の改革が行われることになる。
それ抜きにSaaSへの移行は難しいのではないだろうか

所有する事への安心感

仮にパッケージを受け入れたとしてもSaaSに踏み切りづらい理由の一つに、システムを外部に置くことに対しての危機感があると思う。企業にとっての生命線ともなるべき財務や顧客の情報を社外に持つことそのものに対する恐怖感があるのだろう。
ただでさえ個人情報保護法等が施行されたり情報流出、内部統制だの言われている中でこの問題にどう対応をするのか。そういう懸念を抱く層が多いのだと思う。たぶん、手元に持っておきたいのだろう。気持ちはわかる。

これに対してはSaaSプロバイダー側がある程度の保障や、障害児の対策を明確に提示する必要があるだろう。セキュリティ等は確かに懸念される点ではあるかもしれないが、普通に考えると自社に持つよりも”場所”としてのセキュリティはしっかりしている可能性が高いのではないだろうか。また、自社でデータセンター並みのセキュリティを整備しようとすると初期コストだけでなく維持にもかなりのコストがかかるはずだ。
以前、企業内におけるITに対するコストのそのほとんどが、現状システムの保守に対して割り当てられているという調査結果を見たことがある(確かMicrosoftのカンファレンスか何かだったと思うがうろ覚え)。自社で運用するという事はそれ相応の保守のためのコストもかかる事を忘れてはいけない。コストのほとんどが現状維持のために使われている状態は決していい状態とは思えない。
経営資源の有効活用という意味でも一考の価値があると思われる

日本でのSaaS

全ての企業において基幹システムがSaaS形態になるかというとそんなことはないと思う。
現在、日本で出始めているのはCRMや営業支援関連のパッケージがSaaS形態で提供されているように見える。これから少しずつ他のシステムにも波及していくのだろう。アプリケーションを提供しているベンダーもSaaS対応を考慮しているが、オンプレミス環境でのシステム提供がなくなるわけではない。そうなると、比較的乗り換えが容易なSaaS形態で複数のシステムを試し、決定した段階で自社保有するような形をとる場合なども出てくるのかもしれない。
いずれにしても各パッケージベンダーがどういう対応を取ってくるのか。今後が楽しみではある

iPadにインストールしたアプリあれこれ

自分用に購入した訳ではないので、特に持ち歩いている訳でもなく自宅におきっぱなし状態にしています。
3GではなくWifi版なので特別持ち歩いたからといってうれしい訳でもないので。

また、6月の頭にはお袋に渡すことにしているので、あまりSafariのブックマークを変更するのもなぁ~と思って比較的標準に近い状態。
とりあえず嫁に日中触ってもらって、「これはどう?」ってアプリケーションをインストールすることにしました。

iPhone専用アプリが多い

とりあえずいくつかiPhoneでお世話になっているアプリケーションをインストールしてみたのですが、iPadに対して互換でしか起動しないアプリが多かったです。
天気予報アプリとしていつもお世話になっていたWeathreeNewsタッチとかも互換になってしまいました。
また、iPhone版とは別にiPad版を出しているのもそれなりの数があったのですが、、、うーん。

互換は、一応、機能としては使えなくはないものの互換ではやはり面白くも何ともない。
そうなるとちゃんとiPad対応をしているアプリから選ばないといけない。
でも、意外とiPad対応しているアプリって少ない。

やっぱりiPhoneの方が圧倒的に数としては多い分充実していますね。iPadに関してはまだまだこれからといったところでしょうか。
とりあえず、私が現在インストールしているアプリをご紹介。

Weather HD Free App

カテゴリ: 天気

価格: 無料

天気予報アプリとしては迷ったものの、これをインストールしました。
英語表記というところが少しネックでしたが。。。まぁ、天気予報はネットさえつながれば何とかなりますしね。

ぐるなびレシピ App

カテゴリ: ライフスタイル

価格: 無料

何となくレシピ集を。
お袋がこういったものをみるかどうかはわからないけど、普段の生活の中で使えるものの方がiPadが放置されずにすむんじゃないかな?って思ったから。
うちの嫁は興味津々だったけど、どれも有名シェフのものばかりで少し敷居は高そうだった。
うちの食卓に並ぶことはあるのだろうか・・・

Echofon for Twitter App

カテゴリ: ソーシャルネットワーキング

価格: 無料

当然のようにお袋はTwitterって何それ?状態だろうけど、とりあえずいれておいた。
アカウントはとっていないけど、興味を持ってくれればそれでよし。

Evernote App

カテゴリ: 仕事効率化

価格: 無料

正直いれるかどうか迷ったけど、とりあえず「メモ帳代わりに使いな」って感じでインストールした。
メモ帳そのものは最初から入って入るんだけど、検索とか考えるとEvernoteのほうがいいように思えたからだ。
iPhoneと違ってiPadくらい画面が大きいとみやすいね。

とりあえず、今のところ親向けにインストールしたアプリはこんなもの。
オセロのような簡単なゲームでもインストールしておいてみようかな?とは思うものの、この先は自分で選ばせようと思う。
GMailのアドレスはとってあるから、調子に乗ってきたらブログを書かせるなんて言うこともありかもしれないけど、そこまで定着するかどうか?この辺りは様子見かな。

勉強は何のためか

今日、ちょっと縁があって某大手データベース会社の研修プログラムを営業している人と話をした。ありていに言うと営業を受けたわけだが。
現状で、組織でまとまった研修プログラムを受ける予定は無いということを前提に、そもそもどうやって”勉強することが大事であるか”や、”技術力を高めよう”という方向に社員を向かわせることが出来るだろうか?ということを切り出してみた。

技術者というものはどちらかというと、専門分野に関して突き詰めて調べたり、あれこれと興味を持って動く人物であることが多いと思っていた。
ただ、最近入社してくる人を見ると必ずしもそうではないことが分かる。語弊はあるかもしれないが、数ある職業の中からたまたま選んできたのだ。
会社として、業務命令として勉強させたり資格に向かわせたりすることはできなくはないけど、それはそれでさみしいことである。出来れば、本人の興味を向かわせたほうが結果としては全体のプラスになるのではないかと思う。

さて、あれこれと話したのだが最終的にはやっぱり”ストーリー”を提示することだろうということになった。
会社の今後のストーリー。製品のこの先。それらのストーリーを実行するためには今何が足りないのか。それらを共有したうえでそのストーリーを実現するためのキャストとして登場してもらう。

言うのは簡単だけど、すっげー受け入れられるか、すっげー白い目で見られるかのどっちかだなぁ。
ふむぅ

仕事はストーリーで動かそう
川上徹也
クロスメディア・パブリッシング(インプレス)
売り上げランキング: 21974
おすすめ度の平均: 4.5

5 仕事にストーリーはあるか?
5 物語のチカラ
4 手でつかめない「商品」を売った人の気づきは参考になる
3 ストーリーの重要性には納得
4 ビジネスを、そして人生のすべてをエンターテインメントに

Mac?

MacBook Air 11インチ欲しい!

冒頭から何を言い出すんだと言われるとちょっと困るんだが、”はてな”がキャンペーンでブログを書けば抽選でMacが当たると言うので書いてみることにする。

WindowsとMacと私のこれまで

大学時代は、個人ではWindowsPCを持っていたのだがサークルで所持していたのがMacだったので、実際にはMacのほうが使用量は多かった。
ただ、研究室のPCはMacではなくWindowsPCだったので大学4年以降はほぼWindowsということになる。会社でももちろん大多数の人がそうであるように、Windowsだ。
実際問題、職場で使うPCに関して言えばよほどの働きかけがない限り自分でOSを決めることは難しいと思う。ただ、個人で持つPCに関して言えばそんな制約は実際のところないはずだ。にもかかわらず、家のPCもWindowsPCを使っている。

Windowsを使う理由

日常的にWindowsを使う利点は、細かい設定や機能を実際に自分が使うことで知るようにしているからだ。仕事でももちろん使っているのだけど、お客様からソフトウェアと直接的には関係ない質問を受けたりもする。お客様からしてみたら「プロなんだからちょこっと教えてよ」的な軽いノリなんだけど、ときとしてこれは答えに詰まる場面がある。
自分で日常的に使っていると、自分にとっての不便な点は調べてなんとかしようとするので、その”救える幅”を広げることができる。
もちろん、そんなことはまれなうえに万人に言える話ではないのであくまで私としてはだ。
ただ、お客様に限らず友人や親類に至るまで使っているPCが圧倒的にWindowsが多い以上、そこに対する知識を持っていることは役に立つ確率は高い。
だからこそ、知ってる人が少ないMacをやっていればより役に立つよ!って話はもちろんあって、もっともだと思うんだけど、別にそれを生業にしているわけでもないしね。。。

Macに興味が出てきた?

正直言ってMacには興味がなかった。
性能だとか使い勝手に関してはそれほど気にしてなかったんだけど、「Mac素晴らしい。まだWindows使ってるの?」みたいに見下したような言い方をする人がチラホラ見えたことが原因。
少数派に見られがちな少数派カッコいい的な話にうんざりしてしまった面が強いともいえる。まぁそれらは人の問題であってMacの問題ではない。やはり、Macを使わなきゃいけない場面がなかったというのが大きいのかな。

ところが、それはそれとしても興味が出てきたのはやっぱりiPhoneの影響だ。
もちろんiPhoneはWindowsPCとも連携できるのだけど、Macとであればもう少し色々できるのではないか?と思ってしまう面もある。これは想像。
単純に長年Macを離れていることもあるので、今どうなっているんだ?って言うのもある。
でもまぁ、やっぱり一番気になっているのはiPhoneアプリ開発じゃないかな?iPhoneアプリってMacじゃないと開発できないんだよね、基本的には。正直そういう戦略を取るのってどうよって気がしないでもないが、まぁそれはそれだろう。
実際に開発している時間なんてあるのか?と言われればなかなか答えに窮するところはあるが、それでもやってみたいものはやってみたいものだよね。

ってわけでください(笑)

仮想化への道

今月の日経SYSTEMSに富士フィルムで行われた基幹システムの仮想化に対する取り組みが紹介されていた。

仮想化そのものは大変有用で、私も検証環境や社内での客先環境を模すのに良く使用している。実機を使用しなくてよいというこの利点にはかなり恩恵を受けている。なかったらと思うとちょっと怖いくらいだ。
ただ、富士フィルムの例でみられるように実際の基幹システムに仮想化を取り入れるには実のところ、未だに多くの問題を抱えている。
私が感じる一番の問題は、アプリケーションのサポートだと考えている。これは私自身がアプリケーションを作成するベンダーの立場であり利用する立場でもあるからだとは思う。

アプリケーションのサポート

私が仕事で主に使用しているデータベースはOracleなのだが、Oracleは仮想化上での動作をOracleVM以外ではサポートしていない。実際のところ、VMWareやVirtualPC。Hyper-Vでも動いてはいるのだけど、障害時を考えると少し怖いものだ。Oracleも決してバグの少ない製品とはいえない事はこれまでも身をもって知っているし。
いくつかのアプリケーションベンダーの仮想化に対する対応はマチマチ。いくつか細かい違いはあるようだけど

  1. 物理環境で再現出来たらサポートします
  2. 仮想環境が原因だったらサポートしません

という2種類が多いように思える。字面の問題のように見えるが、前者はユーザー側で確認をするのに対して後者はベンダー側で確認をするというスタイルだ。
比較的容易にインストールさせる事が可能なソフトウェアであれば前者で問題ないだろうが、大規模なシステムであった場合にはそもそもインストールが困難なので後者が選ばれると思う。ただ、ここで問題になるのがベンダー側の対応。サポートの仕方はベンダーで異なるだろうが、おおむね

  1. 現象の再現確認
  2. 再現結果からの調査・修正等の対応
  3. アナウンス

のような流れになると思う。ここで問題になるのが、ベンダー側の環境で再現しなかった場合にそれが”本当に仮想化が原因”かどうかの判断をどうつけるのかではないだろうか。実際のところ、物理環境であっても現象によっては必ず再現するとは限らなく、いくつか複数の要因が重なって初めて発現する問題もある。また、仮想化が原因であるというのであれば、ベンダー側で仮想化環境を構築して検証を行う必要が出てくる。
となると、ベンダー側はユーザー側が使用している仮想化ソフトに対しての知識や、環境を用意しておく必要が出てくる事になってしまう。サポート部隊の涙目が見えてきそうな話だ。おそらく、そもそもの仮想化ソフトを限定しているのかもしれないが…。実際のところ、どうなのだろうか。気になるところだ。

ちなみにWindowsは以下の仮想化環境でサポートをしているようだ

  1. Cisco WAAS Virtual Blades 4.1
  2. Citrix XenServer 5 Embedded Edition
  3. SUSE Linux Enterprise Server 10 SP2
  4. VMWare ESX 3.5 Update 2
  5. VMWare ESX 3.5 Update 3
  6. VMWare ESXi 3.5 Update 3
  7. Xen Server 5

http://www.windowsservercatalog.com/svvp.aspx?svvppage=svvpsupport.htm

上記一覧にOracleVMがまだ入ってない事を考えるとWindows+Oracleの環境で公式のサポートを得る事は難しいという事か。いずれにしても、綱渡りである事に変わりはない。

<2009.03.07追記>
コメントに情報をいただいていますが、OracleはWindows,Linux以外の環境ではサポートを表明しているようです。
http://www.oracle.com/technology/products/database/clustering/certify/db_virtualization_support.pdf
HP-UXやAIXは正直私は触ったことがないです。Solarisくらいかな・・・。Oracleの利用目的から考えるとこれらを選択肢に入れるのはいいかもしれませんね。私はその前にこれらOSの知識を手に入れないと不安でしょうがないですが…。
でも、たとえばHPのnParそのものはWindowsやLinuxもサポートしているのになぜHP-UXのみに限定しているのか。そしてOracleVMではそのWindowsやLinuxをサポートしているのか。
このあたりは企業戦略が見え隠れしているような気がしなくもないですねぇ。純粋に信用していないだけなのかもしれませんが。

ではどうするのか

さて、困った。どうしたものか。
仮想化環境を提供しているベンダー。VMWareやMicrosoft。Oracleもまたそうなのだが、これらの中でどこかが明確な方針を出してくれれば少しは動きやすいとは思うのだけれど、現在のところ主だった動きはないように思う。サポートの手厚さでは24時間サポートを打ち出しているOracleVMが手厚そうと言えば手厚そうだ。
シェアで言うと先行していたVMWareが大きいのではないかと思う。
いずれにしてもベンダーがいくつかのアプリケーションベンダーを巻き込んでサポート体制の新しい枠組みを作っていかなければいけないのではないかと考えている。望むならば申し出のあったアプリケーションベンダーに対して仮想化環境を提供。検証するための枠組みを作っていって欲しいと考えている。
もちろん、星の数ほどあるアプリケーションベンダーそれぞれに対してそのような事が可能かどうかというと、無理があるのかもしれない。かといって仮想化に対するユーザーのニーズというものはこれからも増え続けて行くわけで何かしらの対応をとっていかなければいけないだろう。