ロケットガール他

というわけで、ロケットガールの話。

いわゆる、宇宙開発に関わる話ですね。ロケットのパイロットに女子高生を乗せようという話です。最近、アニメの方を見たのですが、燃料棒自体を燃料容器にするあたりのくだりがリアルなので、少し調べてみました。すると、やっぱり原作がありました。それなりに、きちんとしたSFです。

で、宇宙開発の繋がりで言えば、

・moonlight mile 太田垣康男
・プラネテス 幸村誠
・航空宇宙軍史シリーズ 谷甲州

が(私の本棚)にはあります。
これらの共通点は、宇宙&ロケットってことなんですが、ロケットガール以外では、もうひとつ共通点があって、それが「デブリ」です。

当時、航空宇宙軍史シリーズを読んだとき(20年以上前かな)、その頃の宇宙での戦闘シーンは、宇宙戦艦ヤマトやガンダムをはじめとして、ミサイルやビーム兵器です。今でもそうなんですが、実は、もっと効果的な武器があって、それが「デブリ」なわけです。
と、言うのも、航空宇宙軍史が非常にリアルだったのは、敵艦を砲撃するのに、小さな鉄粒を放出します。近未来SFですから、ビーム兵器は出てきません。ミサイルを積むにしても、地球から持ち上げるとお金が掛かるし、宇宙で開発するとなると大変なコストが掛かます。なので、秒速7キロメートルを利用して、相対速度で敵艦に穴を空けます。
ただ、戦艦と名前が付いていますが、地球上の戦艦のように分厚い装甲が付けられるとは限りません。弾と同様に、地球上から持ち上げるとなると結構なコストがかかって、厚い装甲は難しい。なので、相対速度を利用したデブリを移出することでも、十分相手の艦に穴が開けられるし、穴が空くだけでも、宇宙空間では十分打撃を与えられる、という設定だったりしたわけです。

まあ、そのリアルさの系譜として、ロケットガールも結構リアルです。

ソロモン宇宙教会(ロケットガール公式サイト)
http://www.rocket-girl.jp/link/link.html

から

JAXA|野尻抱介 「宇宙活動は世界を活性化する」
http://www.jaxa.jp/article/interview/vol33/index_j.html
秋田大学工学資源学部附属ものづくり創造工学センター
http://www.mono.akita-u.ac.jp/index.html

なところに辿れたりします。

エンジニア路線としても興味深く、

・moonlight mile のH2Aの開発者達
・プラネテスの星野九太郎

なところが私は好きですね。

カテゴリー: 雑談 | 4件のコメント

cygwinのgcc/g++で文字化け

とある事情で「ロケットガール」を見ながら、c/c++の本を書いています。c/c++の本では、windows環境とlinux環境で動作確認をするわけですが、あっちこっちに移動するのが面倒なので、前チェックとして cygwin の gcc/g++ を使っています。

# 「ロケットガール」のほうは後日

さて、Visual C++ 2008 と gcc/g++ ですが、微妙に動作が違います。標準関数系はだいたい同じ(って同じじゃないと困るけど)なんですが、例外やらエラーの発生の仕方が異なります。なので、例外(try-catch)を使って受け取ったときに、メッセージを出力してチェックすることになります。

#include <string>
#include <iostream>
using namespace std;

int main( void )
{
 string str1(&quot;Hello C++ world.&quot;);
 int n;
 
 try {
  n = 4;
  cout << n << &quot;バイト目:[&quot; << str1[n] << &quot;]&quot; << endl;
  n = 100;
  cout << n << &quot;バイト目:[&quot; << str1[n] << &quot;]&quot; << endl;
 } catch ( ... ) {
  cout << &quot;エラーが発生しました &quot; << endl;
 }
 return 1;
}

これを、コマンドラインでコンパイルして、コマンドラインで実行、ってことになります。

cygwin のシェルを立ち上げて、実行すると

<001>
20100122_001

な具合に文字化けします。これは、cygwinをインストールした直後にシェルのLANG 環境変数を設定していない場合に、発生します。

なので、日本語(SJIS)が通るように、

export LANG=ja_JP.SJIS

を設定してやると、次のように文字化けせずに済みます。

<002>
20100122_002

そんな簡単な話なんですけどね、しばらく使っていないもので結構悩みました。
unicodeが動作するように、wstringを使ってwcoutを利用して出力、setlocate忘れ、で文字化け、なんてのはよくやるのですが。

#include <string>
#include <iostream>
#include <locale.h>
using namespace std;

void main( void )
{
 string str1(&quot;Hello world.&quot;);
 string str2;
 
 str2 = str1;
 cout << str2 << endl;
 str2 = &quot;Hello C++ world.&quot;;
 cout << str2 << endl;
 str2 = 'C';
 cout << str2 << endl;
 // Unicodeを使う
 setlocale(LC_CTYPE, &quot;&quot;); // これが必須
 wstring s;
 s = L&quot;ようこそ C/C++ の世界へ&quot;;
 wcout << s << endl;
}

まあ、ライブラリを作るときは、こういうことに悩まないためにメッセージを英語にしておくのが無難ですね。
「文字コードはunicodeで統一される」と言われて、十数年経ちますが、結局のところ統一されることはないようですので。まだまだ、ASCII(7ビット文字)が現役です。将来的に中国語がのして来るとbig5が多くなったりして。

カテゴリー: 開発 | 5件のコメント

Zaku認識(1)

年末なので、夢を語って終わりにしましょう。

夏頃から構想している動体認識=Zaku認識の話です。何故「Zaku認識」なのかといえば、当然、緑の量産ザクとシャア・ザクを区別したいからですね(ガンダムRX-78とMk-IIの違いでもいいんだけど、こちらは細部の特徴比較なので少し趣が違う、両方やるけど)。

現在の構想/妄想を公開メモしておきます。少しでも訳が分かった方はコメントなりメールなりを下されば、その先の詳細をお話することはやぶさかではありませぬ(いや、マジで)。

さて、Zaku認識のほうは、動体認識と個体認識を同時にやります。当然、動いているロボットに載せることも考慮して、背景画像からの物体抽出も入ります。いわゆる、視覚と認識の両方を一体化させます。

■前処理

色成分を残さないと、量産ザクとシャア・ザクの区別がつかないので、単純なグレー化では駄目です。
HSV成分に分解するか、グレー色調との混合による色距離を計算します。このために、

・色相、あるいは、YCbCrのCbCrのみの二次元
・明度による一次元

の2種類を使うほうが妥当しょう。

■座標補正

いわゆる、カメラのブレを計算します。移動体にカメラを載せるために、

・上下左右の二次元
・回転
・拡大/縮小

を考慮します。
先行きは、デジタルカメラの手ぶれ補正のように、加速度センサのフィードバックを含めます(そうしないと計算量が膨大になるので、ある程度「予測」を立てるため)。
また、人が頭を左右に振ったときにも、視点を固定するような自動補正を組みいれるためにも、3次元加速度センサのフィードバックが必須です。

当面は、膨大な計算量/高速化をものともしないCPUを使って、フィードバックなしで計算します。
これは、実際に移動体に載せたときには加速度センサによる予測が成り立つのですが、ゲーム画面のように静止したカメラの場合はこの予測が不可能になるためです。つまり、画面からのフィードバックだけを頼りに、動体を追跡します。

座標補正については、前処理で行った画像を元に差分を取ります。
この差分がより少ないものが、正しい背景(静止物体)の認識ができているとみなします。

■動体認識

単純な動体については、超音波センサやレーザーによる反射を使ったほうが効果的です。しかし、ガンダム無双でザクの機体を数えたり、シャア・ザクに向かったりするためには、この方法は取れません。

なので、先の座標補正を行った画像について前後の複数のフレームで比較をします。
当初は、一枚の画像からと考えていたのですが、動体認識をいれたほうがより人間の眼と認識に近いので、この方法をとります。つまりは、残像を追跡します。

動体の追跡に関しては、重心あるいは中央値の移動による計算で十分かと考えています。高速移動物体を認識することも考慮すれば、おそらく、中央値で十分かなと。

懸念事項ではありますが、アニメの切り替えのように、前のフレームが全く違っている場合(画面切り替えが行われた場合)を考慮する必要があります。

■個体認識

その物体が何であるか、を認識するには「認識票(識別信号)」を見ればいいわけですが、敵のZakuでは無理ですよね。なので、機影を確認します。これがパターンマッチングです。ただし、RX-78とMk-IIの違いを認識させるためには、ぼけぼけの画面では無理です。いや、逆にぼけぼけの画面の場合では、両者は同じものとして認識されなければいけません。
また、遠くにあって色識別が難しい場合(空気遠近法など)は、量産ザクの緑とシャア・ザクの赤は区別がつきません。あるいは、赤という色が認識できれば「シャアではないか?」という想像が可能です。

これらを考慮するために、

・テンプレートマッチング法
・特徴量抽出

の2種類を同時にこなす必要があります。

~~

さて、これらが夢なのか妄想なのか、年末出血大サービスなのかは、皆様のご想像にお任せいたします。

ええと、これらのコードを何で書こうかと画策中なのですが、高速化を含めればC言語で書いた方がいいのだけど、プロトタイプはC#で書こうかなと思っています。Javaでもいいんですが、ロジックはokなのですが、画像出力の方法をいくつか調べないといけないので、面倒なんですよね私にとって。まぁ、画像認識は、入力と出力以外は純粋にロジックなので、何で書いてもok。
# OpenCV 準拠ってのも考えたのですが、ひとまず、C#でロジックを書いた後に、C言語で書きなおしたほうが早いかな、と。

そういう訳で、Zaku認識(ザク認識)の「その1」はおしまい。1ヶ月後ぐらいに「その2」を書きましょう。

カテゴリー: 開発 | Zaku認識(1) はコメントを受け付けていません

チーム板橋起業塾忘年会

linux担当のM口さんは欠席ですが、チームいたばし起業塾の忘年会を開きました。

創業乾杯は忘れてしまったのはさておき、I島さんの壊れ具合は尋常ではないことが判明。

時代の一コマにするべきかと。攻殻機動隊とかね。

カテゴリー: 雑談 | チーム板橋起業塾忘年会 はコメントを受け付けていません

microsoft office 2010 beta をお試しインストール

一か月遅れですが、MSDNから office 2010 beta をダウンロードして windows 7 on VMWare に入れてみました。

Office 2010 ベータ版 ダウンロード提供開始!
http://www.microsoft.com/japan/office/2010/beta/default.mspx

なところでもダウンロードができます。

さて、インストールした後、まず起動するのが Excel です。仕事柄、これを起動する機会が多いので。リボンはどうなったのかなぁ、と。

<001>
20091222_01

リボンは相変わらずなのですが、左上の「officeボタン」が無くなっていますね。「ファイル」になっています。UI上、「ファイル」と「ホーム」で、どっちがどっちか奇妙な感じはするのですが、office 2007 で培った「ホーム」の名前は変えず、「ファイル」にしたんでしょうねぇ。

ところで、このリボンですが、office 2007 では最小化することができます。リボン自身をを右クリックして「リボンの最小化」を選択すると、画面が狭くなる~と悪名高いリボンが消えてしまいます。そうして、メニューをクリックすると画面に出てくる、という具合です。

このリボンの最小化、どうやら好評だったらしく、office 2010 では右上にリボンを最小化するボタンがあります。

<002>
20091222_02

ご丁寧にショートカット「Ctrl+F1」が割り当てられてる…と思ったら、このショートカットは office 2007 でも同様ですね。
リボンが消えたときはこんな感じになります。

<003>
20091222_03

縦に少し広く使いたいときは便利な機能です。

さて、肝心の「officeボタン」改め「ファイル」タブですが、クリックするとこんな感じです。

<004>
20091222_04

office 2007 では中途半端にメニューな形式だったのですが、office 2010 では画面いっぱいを使って選択ができるようになっています。こういうシームレスな感覚は好きです。

# 実は諸事情があって、adobe media player の試用版を眺めていたのですが、こんな風に画面を全面的に使い、項目と項目との入れ替えをスムースに見せるほうがいいですよね。

そういう訳で、word 2010 も立ち上げてみます。

<005>
20091222_05

もう一個、私がよく使う outlook 2010 も立ち上げます。

<006>
20091222_06

新しいメールは書くときはこんな感じです。

<007>
20091222_07

# ただし、私の場合、outlook で直接書くことはなくって、エディタで書いたものをコピー&ペーストしてします。これは「作成途中のものを間違って送ってしまう」、「宛先を間違えて送ってしまう」のを防止するためです。ちなみに、添付ファイル忘れ、宛先間違い対策用に、送信は「即時ではない」モードにしています。

outlook で閲覧するときは、こんな感じですね。

<008>
20091222_08

outlook 2007 でおなじみの、横3つのペインです。通常のメーラーで使われる、リストが上、閲覧が下の3ペインにもできます。これは、どちらがいいか微妙ですね。最近のディスプレイがワイド版で横長になったのと、リボンが付いて更に横長になったので、横3つのペインのほうが使いやすいかったりします。
なので、どっちつかずということは、メーラーは画面構成を考え直す/直せる分野かなと思っています。

power point 2010 はこんな感じですね。一見すると、2007 と大して変わりません。昔は営業さん御用達のツールだったのですが、最近は、画面デザインの仕様書や設計書なんかで使われます。

<009>
20091222_09

最後は access 2010 です。Excel で扱える件数が増えたので、今後出番が減る、のか、SQL Server に切り替えるのか、と噂が絶えないツールなのですが、未だ健在です。健在じゃないと困るユーザーさんが多いからね。

<010>
20091222_10

全体の色調を通してみると分かるのですが、リボンは白をベースにしてグレーの影が入っています。2007 の頃のリボンは、青を基調としていたので、その存在感のためか多少圧迫感があったのですが、2010 のリボンはいい感じです。

<011>
20091222_11

ちなみに openoffice 3.1 の calc は、こんな感じですね。

<012>
20091222_12

普段使いの excel 2003 は、こんな感じです。

<013>
20091222_13

未だツールバーのほうが便利で、リボンのほうは場所が覚えづらいんですよねぇ。覚えにくいUIの根拠はあるにはあるのですが、まぁ、その話は別の機会に。

カテゴリー: 雑談 | microsoft office 2010 beta をお試しインストール はコメントを受け付けていません

VB6.0.NET(仮)

MSのK高さん的には「それ意味がわからないですからw」なんですが、M崎さん的にはどうでしょう?

というわけで、少し真面目に考えてみました(ネーミングも)。
visual basic 6.0.net か、vba.net のどちらがいいか悩みましたが、ドメイン的に「vb60.net」が空いているので、こっちがいいかな、と。

■言語は visual basic 6.0 ベース

言語体系は、visual basic 6.0 がベースにします。なので、クラスはありません。継承できないクラスはあるけど、まあ、最初は実装しなくて良いでしょう。使っている人は多くないし。

なので、基本は sub/function の関数で作ります。

ただし、

set xlapp = CreateObject(“Excel.Application”)

な形で、COM オブジェクトは作れる、と。
それに付随して、.NETクラスライブラリは呼び出せたほうがいいかな、と。

文法的には vb6.0 を踏襲するので、ややこしい構文は open 何とかぐらいなものです。

■中身は IronPython と同じ?

.NET Framework は ver.4 をベースにします。これは、動的言語ランタイム(DLR)を使うためです。というか、使ってみたいがためです。

DLRを使いこなせるようになれば、LUAの移植も可能でしょう。って訳ですね。このあたり、制御用のスクリプト言語として使えるようになります。
http://dlr.codeplex.com/

■動作環境は?

DLRを使うので .NET Framework 4 限定になりますが、LUA 風に silverlight 上でも動く、というのもいいですよね。

できれば、

・visual basic 6.0 のように GUI でアプリを作る環境がある。
 → 最初から、WPF で開発環境を作るとか。
・excel や word の vba から呼び出せる。
・ついでだから、openoffice でも動かせるようにする?

というのもやれるといいかなぁと。
一見(というか何度見ても)、時代に逆行しているように見えますが、無駄な技術を削ぎ落として、コアな部分を残してみるのもひとつの進化のひとつですよね。多様性を見落とさないために。

カテゴリー: 開発 | VB6.0.NET(仮) はコメントを受け付けていません

.NETラボ勉強会12月

以前より技術系の勉強会はたくさんでているのですが、最近は月1回が限度。今のところ.NETラボだけに出ています。

そんな訳で、.NETラボでは「おいしい関係」の話をしたのですが、これは珍しいほうで、主に microsoft 系の話が中心です。その中で、今回はMSのK高さんがいらっしゃいました。。。って伏字にする必要はなくて、microsoftのエバンジェリスト日高さんの解説でした。

Code Recipe
http://msdn.microsoft.com/ja-jp/samplecode.recipe.aspx

のうち、今後の予定である silverlight で作るショッピングサイトの例です。
http://msdn.microsoft.com/ja-jp/dd266962.aspx#01

このショッピングサイト、ブラウザ全面で silverlight を使います。このあたり、よくある flash のサイトと同じです。逆に言えば、flash と同等なショッピングサイトを siverlight で作ることを目的としている、、、と思うですがどうなんでしょう?

さて、本筋の解説は日高さんが為さるということで、ちょっと横道を私なりに考察していきます。

以前、LAMP上でsilverlightを使うために、いくつか実験をしました。

手始めに Silverlight+WCFの組み合わせで実験
http://www.moonmile.net/blog/archives/358

この手のショッピングサイトで重要な層は、

・ブラウザによるUI層
・データ検索などの通信層
・サーバーでのデータベース層

の3層があります。細かい部分の違いはさておき(特にデータベース層は、DAOの違いなど異論があるでしょうが)設計段階で、どこで何の技術/言語を使うのかを選定してきます。このあたり、要求仕様段階の技術検証も必要なのですが、

・設計のしやすさ
・プログラマの集めやすさ
・人件費(外注、社内など)

も大きく関わってきます。特に外注になる場合、元請けのコンサルタントが技術面を決めてしまうことが多く、後々のコストが考慮されてない場合が多くあります。

# 現実問題として、提案する会社(microsoft や oracle など)の技術(silverlightやjavaなど)に寄ってしまうのも常だったりしますね。営業的にそういうものです。

さて、ショッピングサイトを作るにしても、外注/内製の違いあり、業務系/一般系の違いあり、というわけで、この段階で何が一番いい技術という訳でもありません。それぞれの違い、特に「得手不得手」を考慮するのが良いでしょう。

例えば、先の3つの層を flash で考えると、

・UI層 Flash
・通信層 xmlhttp
・データベース MySQL

が考えられます。

同じく、Ajax で考えると、

・UI層 ajax(prototype.js, jQuery)
・通信層 xmlhttp
・データベース MySQL

となります。

実は、このUI層はブラウザが前提になっていますが、curl などの専用アプリを用意してもいいし、windows アプリでもいいのです。

・UI層 windows/wpf
・通信層 http/soap
・データベース sql server

なんて感じもできます。

このあたり、層の間のインターフェースだけきちんと考えていけば、何にでも応用ができます。

本当のところ、web サービス、wcf、xml soap、soap なんてのはこれらの繋ぎの部分に使う技術なのですが、なんかフロントエンドが決まってしまっていて、microsoft で言えば、wpf と silverlight がうまく切り替えられないのが問題ですね、という話になります。
wpf が広まらない理由にこれも一因があると思うんです。まぁ、もっと根本的には、microsoft も含めて、この手の技術が多様になり過ぎているのが根本的なところですが(この話はまた別の機会に)

そんな訳で、最近の技術は、

・手早くできる
・分かりやすい

ことに重点が置き過ぎていて、

・汎用性/相互結合

が弱くなっているのかなぁと。軽視という訳ではないけれど、経済的に余裕がなくなっている、という印象を受けます。

それはさておき、私のほうでは、

・UI層 silverlight
・通信層 wcf/soap
・データベース php/mysql

の組合せを実験/実装していきます。

カテゴリー: 開発 | .NETラボ勉強会12月 はコメントを受け付けていません

PMBOKとCCPMのおいしい関係(仮)

急遽 12/19(土)に発表を行うことになった/したので資料作り
http://www.atmarkit.co.jp/event/calendar/detail.php?event_id=50465

今回は .NET ラボで、マネジメント関係のお話をします。PMBOK の中で、スコープマネージメントを選びます。

ネタとしては、現在手書き段階

<001>
20091217_01

実は、このステップは現在 silverlight で作成することを構想中で、その設計図です。

プレゼン資料の作成も兼ねて書き下していきます。

■WBS項目の作成/編集

最初は、PMBOK的にトップダウンで始めます。これはスコープを決めるために作業領域を決めるためです。実は、この中にゴール(完成品)から決める、後順の方式もあります。CCPMで使うWBSを作るときには、この「後順」がいいので、実際はトップダウン、ボトムアップとは別に、完成品から部分工程へ下ろす、という作業になります。

ここで都合したWBSを眺めて、欠損部分がないか確認します。
当然、「検証」が必要なわけですが、この時点では正しい検証は無理です。経験上、トップダウンのWBS作成は、欠損が多く、甘い見積もりになりやすいものです(見積もりが倍増するのは、このあたりが理由)。

ただし、ここでWBSの正確性を上げるのは妥当ではありません。なぜならば、所詮、人間の考えることだから、悲観的に見れば見積もりが多くなり過ぎるし、楽観的に考えれば見積もりは少なくなりすぎる。そして、妥当性の基準もこの段階ではありません。

なので、どうせ無理であるならば、正確性を追求するよりも、経験と雰囲気/勘からWBSを作成します。

■PERT図へ落とし込み

WBSで各作業工程を決めたら、作業順序を決めます。
情報処理試験的には、PERT図は、日数を決めることを求められるのですが、ここではざっくりとした日数だけを決めます。なぜならば、WBSと同等に、妥当性を検証する手段がないからです。

なので、各作業工程にざっくりとした日数を割り当てます。既に決まっている日数(治験の試験期間など)を書いてもいいのですが、現作業では使いません。

それよりも、前後の作業工程が重要になります。つまり

・その工程の前提条件は何か?
・その工程では何を作るのか?次の工程は何か?

を重視して、前後の繋がりを検証します。
このようにして、はじめて、並列作業ができるところ、数珠繋がりにしかさぎょうができないところ、が決まってきます。

このとき、前後の工程で足りない WBS が出てきます。
つまり、WBS 項目の抽出作業の検証がここでできます。

■工程表に直す

さて、WBS(作業単体)、PERT図(工程の関連/リレーション)ができたので、時間軸を付けくわえます。ここでは、一般的なガントチャートを使います。

よく、ガントチャートのツールを前にして、各工程(WBSなど)や関連性を入力するツールがありますが、あれは間違いです。いや、間違いというか、いきなりガントチャートを書くのは無理です。
工程表/ガントチャートを作る前に、先の WBS と PERT図が出来てないければ、ガントチャートで時間軸を付けられません。

時間軸を加えるこということで、先の並列/直列な作業が割り振れます。
工程の日数はボトムアップ的にファンクションポイント法なので、設定してもよいのですが、「プロジェクトを期日内に完遂する」という目的が多いIT業界の場合には、どちらかといえば、完了日から逆算したほうが便利な場合があります。

ここで、

・実際に作業にかかる日数(ファンクションポイント法など)
・作業に掛けられる日数(工程表にて)

の2つの日数がでます。マイルストーンなどがあれば、この工程表に入れます。
そして、この2つの日数をすり合わせます。

近寄らないようであれば、どちらがが間違っています。

■工程表を修正する

これは手書きのノートにはないのですが、工程を作成したときのバッファの考慮します。いわゆる「保険」です。
安全性を考えた(未知のWBSや、見積もりミスなどを含める)場合に、このバッファを使いますが、CCPM(クリティカルチェーン プロジェクトマネージメント)では、プロジェクトバッファという手法を使います。

プロジェクトバッファの手法を使うときに注意しないといけないは、

・クリティカルチェーンを随時観察する。
・作業実績が随時観察できること。
・工程表が柔軟に変化できること。

が必須になります。
ここで、大抵のガントーチャート型のプロジェクト管理ツールは、工程表の引き直しが非常に手間です。ここの部分、アプリケーションの貧弱さにプロジェクト管理が引っ張られてしまうという「道具のまずさ」に関わってきます。道具に縛られるという感覚ですね。

なので、人間の頭にある感覚をツールに映し込めるという、道具が別途必要になります。

■進捗をマネジメントする

工程表に従い、進捗を管理します。このときに、各工程に遅れ/進みが入った場合は、迅速に工程表を修正します。あるいは、工程表を修正する手間が膨大であるならば、「クリティカルチェーンが変わらない限り工程表を修正しません」。

この2つは一見矛盾するように見えますが、実は、進捗管理のコストを考慮したものです。
つまり、管理コスト/マネジメントコストを考えたとき(金額に直した時に)、

・管理コストが非常に安く(プロジェクト費用の1割以下など)場合には、工程表を変えて、現実から未来像を再構成します。
・管理コストが非常に高い(プロジェクト費用の1割以上など)場合には、実績の監視を重視して、工程表とのずれを無視します。

現状では、「管理コストが高い」のが常です。これは、おそらく、ホワイトカラーの生産性の悪さに関わる問題なので、ここでは議論しませんが、ガントチャートを細々と弄っているのが進捗管理だと思っているのであれば、それは間違いです。そういう場合には、未来構成をするための予定工程表と、現実を把握するための進捗管理を別に行うのがよいのです。

で、本来は「管理コストを非常に安くする」のが、プロジェクト管理の理にかなっているので(と、ドラッカーも言っているよ)、このあたりのマネジメントを現状のIT業界は考え直す必要があるでしょう。

~~

ってな話を、.NETラボの勉強会でお話ししようと思います。興味がある方は土曜日にお会いしましょう。

申し込みは http://dn-lab.net/tabid/115/Default.aspx  から。
# 今回は人数が少なそうなので、飛び込みも歓迎です。

そんな訳で、プレゼン資料はこれから作るんだよ~。

カテゴリー: プロジェクト管理 | 2件のコメント

データベース初心者の基礎知識を開始

linuxジャパンの水口さんのお誘いから、データベースの教育サイトを作り始めました。

データベース初心者の基礎知識
http://www.db-beginner.com/

教育サイトなので、ひとまず、資格を取ることが目的。
oracle 11g の bronze と silver を目指して勉強する方の指針となれば、ということで書き始めています。

私自身は、プログラミングの方が主体なのですが、自分の次の目標として、

・ひと通り oracle の DBA 機能を捉えておくこと。
・同じ機能を mysql から探し出せること。
・同時に sql server から探し出せること。

として、各々のデータベースを比較できるようになることを考えています。
勿論、ベースは「開発/設計者」にあるので、IT技術者としてIT技術を道具として持っておく、という感覚です。

同時に linux 大学
http://linux-u.com/

のコンテンツも作成します。こちらは会員制で「現在各種コンテンツを鋭意作成中!」ってことで、まだまだ月額費用にはたしていないかな、という具合ですが、データベースの構造などを中心に作成していく予定です。
さて、私のほうは microsoft の .net が主体、水口さんのほうは linux が主体。私のほうはプログラミング主体、水口さんは運用管理主体です。
一見、接点が少ないように見えますが、営業的に考えれば同じ技術を持っている人が集まるよりも、異なる技術を持った人が集まる方が窓口が広く取れます。似たところでは、LLP(合同会社)があり、それぞれの専門家が集まってひとつの会社を作る形式があります。これも営業の一本化、内部的な仕事の割り振りが基本原理にあります。

このLLP方式ですが、大切なのはそれぞれの人が独自に動けることが前提です。つまり、経営者/雇用者の関係の場合は駄目で、経営者同士、専門家同士でないとうまくいきません。専門家(スペシャリスト)の場合、営業範囲が限られてしまうため、手を広げること、あるいは仕事そのものを取ってくることが難しいものです。ですが、このような専門家を幾人かあつまる、かつ、技術が異なる人が集まる場合には、集団としての窓口を広げられます。同時に、会社とは違い、雇用的な「待ちの人」がいなくなります。

実は、似たような話は、以前(3年前だったか)、いたばし起業塾の駒林さんから聞いた「ネットワーク」にあります。最近はやりである「ソーシャル・ネットワーク」の根底にはこの思想があるのですが。ネットワーク・ビジネスという言葉が、ねずみ講とイコールとなっていて(まあ、私的に見るとイコールですね)、現在では印象がよくありません。

ま、政治的な話は別にしておいて、水口さんには頑張って貰わないと(笑)。当然、こちらはこちらで手を広げるということで。

カテゴリー: 開発, 起業塾 | 2件のコメント

品質工学(タグチメソッド)

土曜日に仕入れた情報から「じゃあ、田口玄一」も入れましょう、ってんで調べてみました。品質工学、タグチメソッド、Taguchi Method で検索ができます。

田口玄一
http://ja.wikipedia.org/wiki/%E7%94%B0%E5%8F%A3%E7%8E%84%E4%B8%80
http://ja.wikipedia.org/wiki/%E5%93%81%E8%B3%AA%E5%B7%A5%E5%AD%A6
http://en.wikipedia.org/wiki/Taguchi_methods

品質関係については、実はQCのデミング博士しか知りません。テスト工学については「ソフトウェアテスト技法」が一冊手元にあるだけで、あまり詳しくはありません。が、直交テスト、網羅テスト、ブラックボックス、ホワイトボックスなど、ひと通りものは押さえています。あと、シックスシグマに関係する管理図の話とか。

で、件の品質工学について少し調べたのですが、彼の云う「オフラインテスト」が設計による品質の作り込みにあたります。この「設計による~」の部分は、

・製造工程における、品質を均一化するための設計 → オブジェクトクラスの粒度
・製造工程における、テストしやすい環境構築 → 単体テスト(UnitTest)

に通じます。モジュール化、コンポーネント化にも対応します。コンポーネント化に関しては、swebok にも記述があります(まあ、swebok については、知識体系として覚えておくとベターという感じで)

逆に「オンラインテスト」をソフトウェア開発で対応させると、

・結合テストの実施
・システムテストの実施

にあたります。

このオンライン/オフラインの感覚を間違えると(ほとんど間違えているけど)、テスト工程に時間が掛かったり、バグ潰しに時間がかかり過ぎたり、はたまた納期に遅れたり、納品しても品質が悪かったり、ということになりかねません。

なので、「じゃあ、タグチメソッドも追加しよう」ってなわけですね。喰断かもしれないけどね。

カテゴリー: 設計 | 8件のコメント