TechDaysのセッション資料が公開に!

1月末に行われたTechDaysのセッション資料、ビデオが公開されています!

Microsoft TechDays セッション
http://www.microsoft.com/japan/powerpro/techdays/

今回はDVDの配布という形式ではなくWEBで公開という形のようです。
今回のTechDaysは気になるセッションが少し重なっていたのと、途中で風邪のためにやむなく退出したりと少し悔いの残るカンファレンスだったのでこれはありがたい。ひと月で公開というのは今までと比べると比較的早いのでは?
Windows7やWindowsAzureに関してはひと月前とそこまで大きく情報が変わっているわけではないので、まだ情報としての価値は持っていると思います。ぜひチェックしてみたい内容ですね!

情報の公開がなかなか進まないWindowsAzure。3月のラスベガスで行われるMixでまた情報が出てくるんでしょう。楽しみです。
そういえば、SQL Data ServiceのTeam Blogに気になる事が書いてありましたね

SQL Data Services What’s with the silence?
Last year at Mix we told the world about SDS. This time around we will be unveiling some new features that are going to knock your socks off

SDS(SQL Data Services)は今のところ現行のSQLServerとは異なる作りでの提供を視野に入れているそうなのですが、そこにメスが入るのか。それともまた新たな機能が追加されるのか。いずれにせよ今月18日~20日のMixが楽しみなところですね。

Microsoft Mix 09
http://www.microsoft.com/events/mix/default.mspx

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

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はモバイル端末に対してアプリケーションを配布する一つの入り口としての機能を持っている。
これらの場を生かして、早く、小さくともアウトプットを出していくことが大切なのだろう。エピローグに載せられた言葉をもって今日のエントリーを締めくくりたい

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

LiveMeshアプリケーション

@ITの記事でLiveMeshに関するものが出ていた

Live Meshアプリケーションとは何か?
http://www.atmarkit.co.jp/fdotnet/dnfuture/meshappintro_01/meshappintro_01_01.html

先日のソフトウェア開発未来会議にも参加されていたデジタルアドバンテージの一色さんですね(面識があるわけではないです)。LiveMeshAppに関しては私も少し遊んでみてはいるものの、載せていいのか分からずに放置してしまっています。。。
記事にも書かれていますが、一般公開されているLiveMeshβと、CTPとして利用できる開発者向けのLiveMeshはちょっと使える機能が違っていて、データの共有とかが正常に動いてくれない。一般公開と開発CTPとで同じLiveIDを使用してログインしているにもかかわらず、共有の情報はそれぞれに持ってしまっているとかベータ版ならではのおかしなところがチラホラ。RemoteDesktopも使えないという状態だったので正直一般公開版に戻したくもなっていました。
ただ、これを見ると…

一般向けLive Meshと開発者向けLive Meshは併用することもできる。これには、どちらもインストールされていないクリーンな環境で、以下の手順を実行する。

  1. 一般向けLive Meshのクライアントをインストールする
  2. レジストリ・エディタで「HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Live Framework Client」キーにDWORD値として「AllowSxS」を作成し「1」を設定する
  3. 開発者向けLive Meshをインストールする

となっている。おー!これなら望みの物が手に入る事になる。
早速後でやってみる事にしよう。

それにしても…どうやってそんなもの気づいたんだ?

WindowsMarketplaceとMicrosoftの動向

高橋忍さんのブログでも紹介されていますが、WindowsのMobile端末向けに今までバラバラに公開されていたアプリケーションを販売する場所としてWindows Marketplaceという構想がMobile Team Blogに載っています。

Introducing WindowsR Marketplace for Mobile…  (Windows Mobile Team Blog)
http://blogs.msdn.com/windowsmobile/archive/2009/02/16/introducing-windows-marketplace-for-mobile.aspx

どう考えてもAppStoreの…ゴニョゴニョ
とはいえ、これまで自分で探し出してくるしかなかったアプリケーションがリストアップされるのは使い手だけでなく作り手にとっても価値のある事だと思う。自身の作ったアプリケーションの公開。そのいわゆる場所に関して考える必要がなくなるわけだ。使い手にとっていいものであればそれは世界へ一気に配信されることになる。開発者にとって煩わしいセールスの部分を委託できるのはありがたい事だ。
そもそもこういう構想があったのか、AppStoreの成功を見て追随したのかは不明だが、利益のある事であれば歓迎だ。

Microsoftの動き

一方でMicrosoftの動向に関しては気になる事はある。
Windows7の外観を見ていると、Mac追随の色がどうしても濃く見えてしまう。

もちろん、これまでもMicrosoftはユーザーインターフェースに関して色々と試行錯誤をしてきているのはわかる。

  1. 色々な用途に応じて表示・非表示を切り替える事の出来る豊富なツールバー(最終的には多くなりすぎて邪魔になった)
  2. Office2000の頃の普段使わないメニューを隠す機能(いつも同じ場所にメニューがあるわけじゃないので使いづらい)
  3. Office2007で登場したリボンインターフェース(最初は今までと違いすぎてメニュー位置が混乱した)

それぞれ、ユーザビリティを考えてあれこれやってきた歴史がある。もちろん、それが効果をあげたかどうかは別ではあるけど。

別に私はMacが嫌いなわけではないし、使いづらいと言っているわけではない。正直言うと、大学時代に少しの期間使っていただけなので使いづらさ等に関してコメントできるほどの経験がない。だからWindows独特の良さがどこにあるのか?という問いに正確に答えるのは難しいだろう。
ただ、そんなに私はWindowsが嫌いではない。Microsoftに肩入れするわけではないけど、私は十分に恩恵を受けているのは間違いないし、少なくともこの先Windows上での開発から離れる事はないだろうと思う。
良いと思ったものを素直に取り入れていくのはもちろんいいことだ。ただそれがただの追随にならないようにこれからWindowsを発展させていって欲しい。

プログラマの技術尺度

まずはこちらを

技術者・SE・プログラマ面接時の技術的な質問事項(無精で短気で傲慢なプログラマ)
http://68user.blog27.fc2.com/blog-entry-41.html

プログラマー面接時の技術的な質問事項(アプレッソ版) (小野和俊のブログ)
http://blog.livedoor.jp/lalha/archives/50254634.html

キャー。やめてよして聞かないでボロが出るから。
あ、すでにボロ丸出しでしたね。すいません。

ってわけで、まともに教育を受けていないで実戦に投入された私としてはとても耳が痛い話ばかりです。いや、正確に言うと就職してからしばらくの間真面目に取り組んでいなかったことも…と、できていない理由をあれこれ述べることはできるけど、ここはわかっちゃいたけど自分の実力のなさを再認識してこれからを考えなければいけません。

課題がわかるか

両者ともに共通しているのは、WEB関連の技術が中心になっているように見えることだ。特に”無精で~”の方はそう。両者共通して.NETのかけらすら出てこないのはやはりそれぞれの会社で行っている業務がそうなんだろう。
なので言語に関する事はこの際割愛して考える。その上で、残された問いに対しての分野。特に共通して考えられていることに関しては一つの技術評価の尺度として考えられる。私自身のレベルアップはもちろんのこと、周りを巻き込むことでOJTを充実させていくことができればと考えた。
自社に閉じこもってしまうと、、、、これは中小のソフトウェア開発会社では多くあり得るのでは?と思う事なんだけど、自社で必要な内容だけで手いっぱいになってしまう可能性が高い。特に、既存アプリケーションに対しての保守や拡張を繰り返すような開発を行っていると特にその色は強くなる。
そういう意味では様々な案件ごとに技術選定を行うような受託開発を行うところは状況が異なるのかもしれない。ソフトウェア開発の多くはISVではなく受託による開発らしいので、私の考える理論は通じない可能性が高い。

では何を?

読んでみると、”無精で~”の内容はかなり細かい。いろいろなことを聞いているけど、たとえば遺伝的アルゴリズムなんて使ってるのかな?色々と疑問がわいてくる。色々な手法を使っているというよりも、技術知識全般に関してその人が何に興味を持ってこれまで従事してきたかをみたいのだろうとは思うけど。。。
ふむ。
共通点を~~って見ようとしたがそもそも共通点があまりない。言語に関係なく考えるのであれば小野氏側の内容を参考に考えていくのがいいように思える。
特にデザインパターンに関しては何となく既存のソースから読んで知っている部分はあるんだけど、ちゃんと学んだわけじゃない。というわけでまずはデザインパターンに関して勉強していこうと思う。
さてはて。どう勉強していこうか。

仕事はストーリーで! in 築地朝食会

今日は朝から築地で朝食会。本日のゲストは”仕事はストーリーで動かそう”の著者である川上徹也さん

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

築地朝食会への参加はこれで2回目。まだまだ朝が苦手である。
築地朝食会は、著者の方からお話を聞く時間は短い。ただ、その分テーブル内でディスカッションする事が出来るので、自分たちの話題で掘り下げることができるのが面白いところですね。
4人テーブルの中でいろいろな話を聞かせていただきました。特におもしろかったのが、自分史を一人30分。4人で2時間話し合うという集まりを開いたという方の話。
確かに自分のこれまでを振り返って、しかもそれを人に話すなんて機会はほぼない。自分が面白かったり、辛かったりした部分と、聞き手が感じる部分は異なるかもしれないし、そこから新たに気付かされる部分は出てくるのかもしれない。
自分のこれまでのストーリー。そしてこれからのストーリー。
さてはて、どう描こうか。何を描こうか。うむむ

f:id:krote:20090220115935j:image

川上さん提供のくじ引きで引き当てたタレコミシート。広告塔となるべく配らねば

Microsoft Recite

高橋忍さんのブログでReciteなるものが紹介されていた

Microsoft Recite (高橋 忍のブログ)
http://blogs.msdn.com/shintak/archive/2009/02/15/9424448.aspx

MSDNのBlogはこちら
http://blogs.msdn.com/recite/archive/2009/02/15/announcement-microsoft-recite-technology-preview.aspx

なにやら音声による備忘録。ボイスレコーダーとしての機能と、音声を使った検索を行う事もできる見たい。ボイスレコーダーというものはちょっと興味があったけど、実際には持っていないんだよな。正直言ってボイスレコーダーに吹き込んでいる姿というものに少し恥ずかしさを感じてしまう。私だけだろうか?
面白そうなものは試してみないと!って事で早速Advanced/esにインストールしてみた。

インストールするためには
http://recite.microsoft.com
にアクセスするか
http://recite.microsoft.com/Base/DownloadAgent.ashx?cab
をダウンロードしてインストールする必要がある。

インストール後の画面
f:id:krote:20090217000254j:image

画面の”Remember”ボタンを押す事で記録する事が出来る。記録の終了は”Fnished”ボタン。

f:id:krote:20090217000255j:image

記録した内容から検索をするときは、一覧表示の状態から”Search”ボタンを押して音声検索を行う事が出来る。

f:id:krote:20090217000802j:image

記録した音声を削除するのにどうすればいいのか考えた

f:id:krote:20090217001759j:image

上の絵を見てわかるとおり、ここの記録音声を選択するとバツボタンがあるんだけどどれだけタップしても反応してくれない。かといって、他にメニューはなさそうだ。しばらく一生懸命タップしたのちに、キー操作でバツボタンにフォーカスをあてることを知った。わかりにくいな。

使ってみた感想

今まで、少なくともこの手のソフトを触ってきていないだけなのかもしれないけど、使い勝手には手間取った。ただ、そもそも備わっている機能が多いわけではないので覚えてしまえばそれほど苦にはならないだろう。
音声の解析に関しては、軽く試してみた限りではそこそこのヒットはする。まだ、そんなに多いデータで試しているわけじゃないからどこまでヒットするのかはわからない。その前に、一生懸命データを入れるのに苦労しそうなのでデータが溜まるまでお待ちください。
ただ、検索機能が付いていたとしても、もう少しメモを整理する機能がほしい。せめてあらかじめ指定した分類を設定できるとか、階層構造をとる事が出来るとか。
また、容量も気になるところだ。というか、どこに保存されるのかわからない。フォルダ自体はデバイスの「\\Program Files\Recite」と、「\\Application Data\Microsoft\Recite」の二つにできている。ただ、音声ファイルやそれっぽい更新日付のファイルが見当たらない。音声ファイルは下手するとサイズが大きくなるので空き容量が不足する日が来ないか心配だ。どこに保管しているんだろう…?
また、音声の判別をどうやっているんだろう。ぶっちゃけ、自分の声でしか検索はヒットしないかな?気になるけど、人に試してもらうのも微妙だ(笑)

どう使ってみよう

うーん、どう使ってみようかな。ボイスレコーダーとしての機能では終わらずに、最終的にはボイスメッセンジャーに対してこういう技術を適用していくのかもしれないんだけど、現状ではボイスレコーダーだよね。どう考えても。
ボイスレコーダーの一般的な使い方ってどういう時だろう。前、ほしいと思ったのは会議やセッションの内容を記録しておきたいからだった。私の場合、話を聞きながら考え事をしてしまう事があるので、聞き逃してしまう時がある。そういう時にあったらいいな~って思っていた。
ただ、Advanced/esだとさすがにそこまでの集音機能はないので使えない。あくまで自分のメモ代わりに限られるだろう。
そうなると…出勤退勤の途中…かな・・・。
だれか、ボイスレコーダーを有効利用している人いないかな…
そのうちナイトライダーみたいに認識してくれないかな

あぁ、テストエンジニア

いちばんやさしいソフトウェアテストを読んだ

いちばんやさしいソフトウェアテストの本 (技評SE新書 19) (技評SE新書)
石原 一宏 布施 昌弘
技術評論社
売り上げランキング: 14416

ソフトウェアを開発するうえでテストというものは必要不可欠な話である。ただ、ソフトウェアのテストエンジニアや品質管理者というものを目指す!という話をあまり聞いた事がない。これは私が聞いた事がないだけの話かもしれない。
本書はその現状を打破するために作られた本ではないかと思う。
テスト工程は、あくまでテストする対象となる機能。ここで言うとプログラムがない限りは実際のテストは出来ない。もちろん、仕様上の不備・不具合を指摘したりそれに合わせてテスト計画を練る事もとても重要な作業だ。ただ、肝心の開発が予定通り進む事は稀で往々にして遅れが発生する。その時に削られるのはまっさきにテスト工数がやり玉にあげられる。
バグを見つけたら見つけたで開発側からは裏切り者扱いされたりもするかもしれない。もちろん、バグを見つけたという事は間違いなく評価されるべき事で、そのままプログラムが世に出た時の被害を考えれば素晴らしい事。ただ、納期が迫ってただでさえ遅れが発生している開発担当者の感情的な心根としてそういう発想につながってしまう事もあるだろう。
本書でも第6章で涙ぐましい対策が語られている

常に挨拶と礼節を心がけ、開発者とチームメンバーとよりよい関係を目指します!
(中略)
そこで、テストエンジニアは常に開発者と良好な信頼関係を保ち気軽に話ができるようになっておく必要があります。(P126)

開発側に属する私としては色々と頭を下げたくなる内容だ。
これからのソフトウェア開発を考えると品質というものはより求められ、それに比例するかのようにテストエンジニアの価値というものはどんどん上がっていくだろう。
本書がそのきっかけとなってくれる事を願う。

ただ、本書は対象とする読者をどこに置いているのだろうか?実際に開発に携わっている人間にとっては本書は優しすぎる。そうなると、対象読者はだれになるのだろうか?
第1章は優しいものの、その後はV字モデルの説明、W字モデル。名前だけならAllPairsや直交表も出てくる。
うーん、対象は学生なのかな?

MSN相談箱と教えてGoo

私が使っているTOSHIBAのDynabookには、ドライバやユーティリティソフトを格納している「TOSAPINS」というフォルダがある。それなりに領域の取るこのフォルダに対しての扱いに実は困っている人は多いようで、時々私のブログにもアクセスがあるんだけど、そのアクセスログを見ていると・・・

MSN相談箱
http://questionbox.jp.msn.com/qa3974814.html

教えてgoo
http://oshiete1.goo.ne.jp/qa3974814.html

たまたま並んでいたから気が付いたけど、両方とも同じ「qa3974814.html」で、質問者や回答者まで全部同じ。ということは、この二つのサービスで利用されているデータベースは同一のものを参照しているということなのか?
ということが気になって両方のページを見てみると、一番下のほうに「Powered by OKWave」ってロゴが貼り付けてある

OKWave
http://okwave.jp/

そこで、ためしにOKWaveで「TOSAPINS」で検索してみた。結果は”該当なし”。むむむ???MSN相談箱で「TOSAPINS」で検索するとちゃんとヒットすることから考えるとキーワードがおかしいというわけではないんだろうけど。OKWave本体が保持しているデータベースとは別なんだろうか?それはそれで効率の悪そうな話だし。なんでだろう?まさか会員登録の有無で検索結果が変わるのか???

会員登録してみた

結果は変わらなかった!謎がますます深まった
うおおおお。なんでだー!

あ、これOKWaveで質問したら解答来るかな

時間の使い方を再考

PRESIDENTのムック本「24時間の達人」を読んだ

24時間の達人
http://www.president.co.jp/book/item/322/7047-6/

色々な方の一日の過ごし方。また、年収2000万円のビジネスマンと600万円のビジネスマンとで時間の使い方にどういう違いが出てくるのかを取り上げていました。
年収の違いによる時間の使い方の差は、色々な面で比較してあるものの余り何かの参考になるようなデータってわけでもなかったかな。
ただ、色々な方の時間に対する考え方を知ることで自分自身の時間管理やスケジュール管理。特に休日の過ごし方に関して再考する必要性を強く感じたのが一番の収穫であった。
私はこういう本を読んだ後、1~2週間くらいはそれなりにスケジュールを組んで動いたりするのだけど、ちょっとしたきっかけでやらなくなってしまうという事を繰り返してしまっている。ちょっとしたハネムーン効果だ。多分、短期的な目標や・・・いや、余りちゃんと目標や目的というものを考えずに取り組んでいるのが行き当たりばったりになってしまっている行動の一員になってしまっているのだと思う。
自分の人生において、何が重要で何を目標にするのか
常に考えながらベストな時間をすごせるように気をつけていかなければいけない。