2006-04-26

アメリカ人と日本人

ピープルウエア―働きやすい職場をつくる人間関係の極意』(日経BP社)の著者で構造化分析手法を生み出し、プロジェクトマネジメントの“人間系”にいち早く注目したソフトウエア分野の有名人であるトム・デマルコ氏は2004年のソフトウェアテストシンポジウム JaSST'04 に招かれ、基調講演でISO9000やCMMIといったプロセスアプローチをボロかすに言った。(このときのインタビュー記事
JaSST'04 のパネルディスカッションでは、広島市立大学の大場充先生(最近の著書:ソフトウェアプロセス改善と組織学習―CMMを毒にするか?薬にするか?)を相手にソフトウェア工場的な考え方についてもかなり否定的だった。あまりにも、きっぱりと否定するので「そこまで言うことはないんじゃないか」という気にさえなった。(大場先生も上記の著書で、きちんとCMMのとらえ方について解説している。)

今、組込みソフトの世界では ISO9000やCMMIといった国際標準となった没個性的な規格・基準に取り組もうをしている組織も多いと思うが、一方でIT系ではeXtrem Programming やアジャイルといった、プログラマ個人にスポットを当てたソフトウェアの開発アプローチが注目されている。端から見ていると没個性に反発したソフトウェアエンジニアがプログラマの復権を目指して一揆を起こしているようにも見える。

どちらが正しいとか間違っているとかいうことではなく、今日のテーマは、日本の組込みエンジニアにとって ISO9000やCMMI は「何か違う」という違和感を感じませんか という問いかけである。

違和感の一番の原因は、多くの日本の組込みソフトウェア開発では開発の最初から最後まで、特定のエンジニアがずっと関わっているため、開発の工程をブチブチ切って、工程の切れ目でいちいち成果物を審査するのがまどろっこしく、開発効率を落とすことにしかつながらないように感じるからではないかと思う。しかし、それとは別に欧米人が作った(正確には欧米人の声が大きいので彼らの主導になりやすい)規格・基準に違和感を感じるのは、欧米人と日本人の考え方の違いの差に何か原因があると常々考えている。

そこで、欧米人(特にアメリカ人)と日本人の考え方の違いについて理解するのに役立つ本を紹介したい。

アメリカ人と日本人―教科書が語る「強い個人」と「やさしい一員」

比較文化論の本は星の数ほどあると思うが、この本は絶対におすすめだ。もし、グローバルマーケットで商売をしており、海外からの監査で「何であいつらはこんな要求をするのだろう」と悩んでいるソフトウェアQA担当がいたら、この本を読むといい。

なぜ、この本がいいのか。それは理由がある。なぜなら、アメリカ人と日本人―教科書が語る「強い個人」と「やさしい一員」は、今井康夫さんという通産省(旧名称)の役人が著者であり、自分の子供達が小学校で受けたアメリカで教育と日本の教育の違いに驚き、アメリカの小学生の教科書と日本の小学生の教科書を客観的に比較して分析しているからである。

教科書が元ネタなので、主観が入りにくいし、日本人から見てどんなに違和感があっても、アメリカの小学校の教科書に書いていることだから、アメリカ人にとってはすんなり受け入れられているという確証がある。

この本はたまたま、リアル書店の池袋ジュンク堂で見つけた掘り出し物だ。

この本を書いた今井康夫さんは通産省の役人でアメリカワシントンDCに勤務していた3年間で自分の子供が接したアメリカの教科書と日本の教科書の内容を分析した。

対象としたのは国語の教科書であり、特に思想を教育するための教科書ではないため、そこに取り上げられた題材はすべて一般的なアメリカ人や日本人が当然と思って感じているという点が客観性を高めている。

この本には数々のおもしろい話しが載っているのだが、ここではひとつだけアメリカと日本の象徴的な違いの例を引用しようと思う。

まず、本の中で今井氏は「創造性と個性にあふれた強い個人」のアメリカと「あたたかい人間関係の中のやさしい一員」の日本というように書いている。この認識は一般論として我々もある程度わかっていたと思う。

しかし、以下の例を見ると具体的にその違いがわかる。

アメリカ人と日本人―教科書が語る「強い個人」と「やさしい一員」から引用】

以下のクイズは アメリカの教科書を題材にしたものである。

 :
 :

クイズ2 『絵は苦手だ』(アメリカの1年生の教科書)

図画の時間、将来、何になりたいかを描くことになり、クラスメートは、医師や弁護士、科学者、ダンサー、サーカスの団員といろいろな絵を描きました。しかし、ジムは絵が苦手だし、何になりたいかもわからないといって、何も描きません。

問1 そんなジムに教科書の中の先生はどんな指示をしたか?
問2 この後のストーリー展開は?

答1 先生は、それなら何を描いてもいいよと指示する。
答2 ジムは、抽象的な絵を描いた。すると、その絵がとてもすばらしかったので、ジムは友達に、大きくなったらきっと画家になるよとほめられ、先生にも、画家になれるよといわれる。やがて、ジムはみんなのことばを信じ始める。それは美しい絵だったし、ジムがそれを描いたのだ。

それぞれの人間の【個性を尊重すべし】という話しである。日本的なしつけの観点からは、少々抵抗感がある。先生のいうことが聞けない子供を、教科書の中で先生までがほめてしまうのは、日本人には容認できない内容であろう。

この話しの最後のシーンは、クイズ1で紹介した「ニックの仲間入り」にとても似ている。絵が苦手だったジムが足が不自由で車いすを使っているニックが、他の子供達よりもすばらしいことを成し遂げた時の誇らしく、高揚した気持ちが伝わってくる。アメリカの子供はこうして自信を付けていくのだ。
 :
 :

クイズ5 『二人はともだち』(二年)

リスが森に引っ越してきた。アヒルはすぐにリスと友達になり、リスのためにウェルカムパーティを開いた。熊はいちご摘みや雑草取りが忙しく、リスに関心がなかったので、パーティに贈り物を持って行かなかった。

問 さて、この後、クマはリスと友達になるのだが、その契機は何か?

A) リスが黙って、クマの畑の雑草取りを行い、クマに喜ばれ、二人は仲良くなる
B) ホストとしての責任を果たせなかったアヒルが、二人だけをもう一度自宅に招待し、仲を取り持つ
C) ひとりだけ贈り物を持って行かなかったクマが、非礼に気づき、恥ずかしく思い翌日リスを自宅に招待する。

答 A)

【強い個人】を核としてできているアメリカ社会においては、人間みな兄弟、みんな仲良しと唱えるだけで友人ができるものではない。「友人をつくるにも努力が必要」なのである。

教科書には、クラスで一緒に考えてみましょうという設問コーナーがあり、そのひとつに「結局、何がクマにリスと友達になろうと決心させたのか?」というものがある。これに対する教師用の解説書での模範解答は「リスがクマの畑の雑草取りをして、自分がよい友達であることをクマに示したから」とある。これが日本の教科書なら、相手の気持ちを考えなかったクマが何かをきっかけに、それに気づき、反省するという話しになったであろう。
日本では友達は自然にできるものであり、米国では友達は努力してつくるものである。
 :
 ;

【引用終わり】


「創造性と個性にあふれた強い個人」の分析として

・強い個人
 自分が自分であることを明確に意識し、
 たとえ、つらいことがあっても、きちんと自己の置かれた状況を認識でき
 恥ずかしがらずに、自分の主張を堂々と行い
 人に頼らず、自立心、独立心が旺盛で、
 自ら責任を負い、他人や社会に転嫁することなく
 強い意志を持ってパニックに陥らず、難局に立ち向かう

・創造性と個人に富んだ個人
 ひとりひとりの創意工夫を重んじ
 なにごとにも興味と関心、好奇心を持ち
 新しいことに果敢にチャレンジする精神を持ち
 画一化を止めず、それぞれの個性を尊重し
 人それぞれに長所があることを信じ、長所を発見、尊重する

・親子、兄弟であっても基本的には別々の個人
・友達をつくるのにも努力が必要
・「フェア」「アンウェア」という言葉の広さと深さ
・人種や祖先への細かい配慮
・機械や技術を素直に評価する態度
・「fun」を好み、ユーモアを楽しむアメリカ人の陽気な性格

「あたたかい人間関係の中のやさしい一員」の分析として

・暖かい人間関係の一員
・やさしさを持つこと、相手の気持ちになることが大切
・自己犠牲の精神に与えられる高い価値
・高い評価を受ける求道精神、名人
・社会問題や戦争など社会派的な読み物
・公徳心やしつけに関するもの
・自然、科学、歴史、伝記など価値中立的で解説的な読み物
・「深刻な話」に取り組む日本人の生真面目な性格

といったことがまとめられている。

この本で紹介されているアメリカの小学校の教科書の内容はとてもおもしろいので飲み会の席では上記のクイズを出して話を盛り上げるのに使わせてもらっている。

国家の品格を読むのもいいが、こちらの本の方がより客観性があって説得力がある。「強い個人」と「やさしい一員」これって、当を得ていると思う。

2006-04-23

Lifehacks って知ってた?(僕は知らなかった)

最近はアマゾンなどのインターネット書店をバーチャル書店、街の本屋さんとリアル書店というらしい。近頃、目的もないのにリアル書店に立ち寄ることが多くなった。白状すると『組込みソフトエンジニアを極める』がどのように置かれているか、売れ行きがどうかを眺めに行っているのだ。

先日、新宿の紀伊國屋書店でしばらく売り場を観察していたら『組込みソフトエンジニアを極める』と『Software People Vol.8』をまとめて手にした20代くらいの技術者らしい人がいた。その人がレジで本当にこの2冊の本を買うまで後をついていったことは言うまでもない。

リアル書店の売り場を眺めているとき、いい位置に並んでおり結構な確率で手に取られる雑誌が『Life Hacks PRESS ~デジタル世代の「カイゼン」術~(ライフハックプレス)』だ。

最初、この雑誌の表紙を見たとき、これはWEBデザインか何かの雑誌だと思い、ソフトウェアに関係する内容が書いてあるとは夢にも思わなかった。

みんなが手に取るので手にとってページをめくってみると、ソフトウェア開発を成功させるためのヒント集のような記事がたくさん載っている。

恥ずかしながら、lifehacks ということばも百式管理人 の田口 元さんという方も初耳だったのだが、実は国内外で話題になっているらしい。

「やる気を出す10の方法」
「すぐやる技術」
「ミーティングで眠くならない方法」

といった生活と仕事をシンプルかつ快適にするさまざまな技が lifehacks ということのようだ。hack というとハッキングするとか、ハッカーとか悪い印象の方が先に思いつくが、以下のようにhackには2つの意味があり、hack とはプログラマが自分の仕事を片付けるために書いている、自分だけの小さなプログラムのこととのこと。

hack:

Ⅴ 〔電算〕《口語》
1 〈プログラミングに〉取り組む.
2 〈コンピューターシステム・データなどに〉不法に侵入し改変[盗用]する, ハックする.

New College English-Japanese Dictionary, 6th edition (C) Kenkyusha Ltd. 1967,1994,1998

そういう意味では『組込みソフトエンジニアを極める』第4章-品質の壁を越える- 図4.12 組込みソフトウェアプロジェクト簡易評価指標 (ジョエルテスト The Joel Test: 12 Steps to Better Code をアレンジしたもの)も、lifehacks のひとつかもしれない。
Life Hacks PRESS ~デジタル世代の「カイゼン」術~ 初版(たぶんシリーズになると思う)の中身は以下のようになっている。

巻頭企画 lifehacksベストセレクション―lifehacksとは何かを探る
総力特集 「あれもこれもやらなくちゃ」を解決。今すぐ始めて、効果抜群 GTD―シンプル&ストレスフリーの仕事術
特集2 Gmailも地図も、徹底的に使い倒す Google全サービス活用
特集3 仕事で、生活で、発表の場でプレゼンが簡単にうまくなる
特別企画 図解思考で「脳」を整理 はじめてのマインドマップ

GTD(Getting Things Done)仕事を成し遂げる技術―ストレスなく生産性を発揮する方法ということばも初耳だったが、仕事を成し遂げる技術の玉手箱のような内容でおもしろい。紹介されていたものの中でひとつだけすでに実践しているものがあった。それは4色ボールペンをいつも携帯するというものだ。

自分は4色ボールペンを常に携帯している。よくなくすのでのべ7本くらいは買っている。記事を校正するとき、資料の大事なところに線を引くとき、誰かにアイディアを説明するときなど4色あるといろいろな表現が可能になる。

そういったちょっとしたくふうを紹介する雑誌が創刊され、さらに結構売れているというのが驚きである。

ちなみに組込みソフトの世界でも、SESSAMEのメンバーで lifehacks に精通している人が改善の旗手になっているケースを知っている。ただ、ひとつ気をつけなければならないのは手段が目的にならないようにすべきだということだ。

職人は道具を選ぶのにも気を遣うべきだが、職人がいい仕事をしたかどうかはできあがったものがユーザーに満足されるかどうかで判断されるべきだと思う。

ただし、昔ながらの職人も自分の世界に閉じこもっていて世の中では電動ドライバーが主流になっていることに気がつかないのはまずい。

2006-04-22

どんな本を読むといいか?

どんな本を読んでいるのかがわかるとその人がどんなことを考えているのか分かることがよくある。最近雑誌に書評が掲載されることが少なくなったが、書評のランキング記事はいつも人気がある。人がどんな本を読んでいるのかを眺めているとおもしろい。

今回は、『組込みソフトエンジニアを極める』の巻末に掲載した参考図書を掲載したいと思う


【参考図書より 引用】

-マイコン・リアルタイムOSー

マイコン・リアルタイムOSを使いこなすには座学だけでは難しいものです。実際に動くターゲットマシンをさわりながら学習する必要があります。

[1] 各マイクロコンピュータのデータブック
ぼろぼろになるまでマイコンのデータブックを読み込む。これが基本です。

[2] リアルタイム/マルチタスクシステムの徹底研究―組み込みシステムの基本とタスクスケジューリング技術の基礎
TECHI 藤倉 俊幸 (著) CQ出版社 2003年
リアルタイムシステムについてとことん突きつめたい方におすすめです。

[3] μITRON4.0標準ガイドブック
トロン協会 (編集), 坂村 健 2001年 パーソナルメディア
μITRONのガイドブックは一冊持っていると辞書代わりになります。

[4] CPUの創りかた
渡波 郁 (著) 2003年 毎日コミュニケーションズ
CPUをICの組み合わせで作る方法が書かれた本。データブックや回路の読み方、テスターの使い方まで解説してあります。電気回路の知識がまったくないソフトウェアエンジニアに最適です。


-オブジェクト指向設計・UML-

オブジェクト指向設計を習得したいのなら、自分にとってわかりやすい本を一冊選び、まずはUMLを書いてUMLの経験者にレビューしてもらいましょう。それが一番の早道です。

[5] 組み込みUML―eUMLによるオブジェクト指向組み込みシステム開発 
渡辺博之、渡辺政彦、堀松和人、渡守武和記 著 , 翔泳社 2002年
組込みソフトでオブジェクト指向設計を適用する詳細を解説した数少ない書籍のひとつです。

[6] オブジェクト指向でなぜつくるのか―知っておきたいプログラミング、UML、設計の基礎知識―
平澤 章 (著) 2004年 日経BP社
なぜ、オブジェクト指向に関心があつまるのか、オブジェクト指向でプログラムを作るとどんなメリットがあるのか初心者にもわかりやすく解説しています。

[7] ダイアグラム別 UML徹底活用
DB Magazine SELECTION, 井上 樹 (著) 翔泳社 2005年
UMLの書き方はマスターしたけれども、UML経験者が近くにおらずもう一歩先に進めず停滞している人にお勧めの一冊。

[8] 初めてのEnterprise Architect
河野岳史・益田志保 著 星雲社 2005年
UMLの初心者からUMLを使いこなすベテランまで広範囲に使える安価で高機能なUMLツールのマニュアル本。UMLはまず書き始めるにことが大事です。


-C++-

CからC++に移行するときの壁は非常に高く感じられます。いきなりC++でソースコードを書き始めるには無理があります。初心者向けの本をマスターしてからコードを書き始めましょう。

[9] C++プログラミングスタイル
山下 浩 (著), 黒羽 裕章 (著), 黒岩 健太郎 (著) 1992年 オーム社
基礎をしっかり身につけ、後で調べものをしたいときに役立つ本です。C++の入門書として優れています。

[10] C++のからくり  
スティーブン・R. デイビス (著), Stephen R. Davis (原著), 瀬谷 啓介 (翻訳) ソフトバンククリエイティブ 1999年
CからC++に移行するとき、「なぜ、できないの」と悩むときの答えがこの本に書いてあります。演習問題を解きながら理解できるのでC++初心者の教育にも使えます。

-プロジェクトマネージメント-

[11] 人月の神話―狼人間を撃つ銀の弾はない
新装版 Professional Computing Series
フレデリック・P,Jr. ブルックス (著), Frederick Phillips,Jr. Brooks (原著), 滝沢 徹 (翻訳), 富沢 昇 (翻訳), 牧野 祐子 (翻訳) ピアソン・エデュケーション 2002年
やみくもにプロジェクトに人を投入するとどうなるのかが分かります。ソフトウェアプロジェクトの失敗学の原点とも言える一冊です。

[12] 製造業のためのソフトウェア戦略マネジメント入門―組み込みソフトの開発・人材・組織
前田 卓雄 (著), 重岡 毅 (著)  生産性出版 2003年
ソフトウェア開発におけるプロジェクトマネージメントの入門書で、ソフトウェア事業のマネジメントという視点で書かれた本。


-ヒューマンスキル-

[13] ピープルウエア 第2版 - ヤル気こそプロジェクト成功の鍵
トム・デマルコ (著), ティモシー・リスター (著), 松原 友夫 (翻訳), 山浦 恒央 (翻訳), 日経BP社 2001年
プロジェクトマネージメントをテクニックではなくヒューマンとして何が必要かを説いています。ソフトウェアエンジニアのやる気を科学していると言えるかもしれません。

[14] スーパーエンジニアへの道―技術リーダーシップの人間学
G.M. ワインバーグ (著), 木村 泉 (翻訳)   共立出版 1991年
技術リーダーとしてどのように振る舞えばよいのか、また、リーダーどう育てるのかが分かります。

-テスト-

ソフトウェアテストに関する解説書は皆無に等しかったのですが2002年頃から次々と良書が出版されています。

[15] 実践的プログラムテスト入門―ソフトウェアのブラックボックステスト
ボーリス バイザー (著), Boris Beizer (原著), 小野間 彰 (翻訳), 石原 成夫 (翻訳), 山浦 恒央 (翻訳) 日経BP社 1997年
テストについて学習したいのならこの一冊から。新人からベテランまで使えます。

[16] ステップアップのためのソフトウエアテスト実践ガイド
大西 建児 (著) 日経BP社 2004年
実際のテスト工程の進め方や注意点が筆者の経験をもとに詳しく書かれています。テスト計画をどのように進めればよいかが分かります。

[17] 初めて学ぶソフトウエアメトリクス~プロジェクト見積もりのためのデータの導き方
ローレンス・H・パトナム (著), ウエア・マイヤーズ (著), 山浦 恒央 (翻訳)
日経BP社 2005年

ブラックボックスになりやすいソフトウェアをいかに計測し、品質管理に活かすかを解説した本です。プロジェクトマネジメントやソフトウェアテスト管理に役立つ一冊です。


-ソフトウェア品質-

[18] ソフトウェア品質保証の考え方と実際―オープン化時代に向けての体系的アプローチ
日科技連出版社 1995年, 保田勝通,
ソフトウェア品質保証の基礎から応用まで隅々を網羅しています。1995年の初版から10年経過しても古さを感じさせない充実した内容です。

-マーケティング-

[19] 通勤大学MBA1 マネジメント
通勤大学文庫 グローバルタスクフォース (著)  総合法令出版 2002年
MBA「Master of Business Administration(経営学修士号)」の概略が分かるもっともコンパクトな一冊。マーケティングの基礎を短時間に学ぶことができます。

-体系的再利用・プロダクトライン-

[20] ソフトウェアプロダクトライン―ユビキタスネットワーク時代のソフトウェアビジネス戦略と実践
Paul Clements, Linda Northrop, ,前田卓雄(訳),日刊工業新聞社,Sep. 2003
原書はCMMI(Capability Maturity Model:能力成熟度モデル)を主導するカーネギーメロン大学ソフトウェア工学研究所(SEI Software Engineering Institute)が10年近く検討を進めている Product Line Systems Programの中核となる出版物。プロダクトラインについて学ぶなら手元に置くべき一冊でしょう。

[21] ソフトウェア再利用の神話―ソフトウェア再利用の制度化に向けて
ウィル トレイツ (著), Will Tracz (原著), 畑崎 隆雄 (翻訳), 鈴木 博之 (翻訳), 林 雅弘 (翻訳)  ピアソンエデュケーション 2001年
ソフトウェアの再利用がいかに難しいかが分かる本。ソフトウェアの再利用にどんな壁が立ちふさがるのか筆者の経験が豊富に織り込まれています。

-日本の組込みソフトウェアの強み-

[22] 日本のもの造り哲学
藤本 隆宏,,日本経済新聞社,2004年
製造産業としての日本の強みと特徴を具体的な生産現場の視点から分析している。すり合わせと組み合わせの違いについて納得させられる一冊。

【引用おわり】

この中でもおすすめなのは、[19] 通勤大学MBA1 マネジメント 。この本は文庫本サイズで税込み893円というお手頃な価格だ。通勤大学シリーズはシリーズになっていて他にもいいものがあるが、何しろMB1 マネジメントはシリーズ全体の概要をつかむ意味でも有益だと思う。難しい本を読むよりも、この本を暗記するくらい熟読した方がいいような気がする。

学生の頃、薄いいい本を一冊選んでその本をぼろぼろになるまで読め!と言われたが、まさにそのとおりである。

2006-04-17

リアルタイム設計技術の難しさ

ソフトウェアプロダクトライン』『People CMM』などの翻訳や、『ソフトウェア・ジャストインタイム』などの著書でおなじみの前田 卓雄さんから、『組込みソフトエンジニアを極める』の感想が届いた。

前田さんとは、Inteface誌2003年12月号に「
具体例で学ぶ組み込みソフトの再利用技術」という特集記事を書いた後の EEBOF の飲み会で初めてお会いした。その後、前田さんとは何回か会ったがいつも当を得た暗示を与えてくれる。

Inteface誌に書いた 具体例で学ぶ組み込みソフトの再利用技術」はカーネギーメロン大学のソフトウェア工学研究所が研究している“ソフトウェアプロダクトライン”を日本向けにテーラリングしたもので、『組込みソフトエンジニアを極める』の第3章にリプレースされている。

前田さんから 具体例で学ぶ組み込みソフトの再利用技術」の感想として「難しいことをわかりやすく書きますね」と言われた。そして、「酒井さんの考えておられることを組織の中で受け入れてもらうには、組織の山全体を動かしてレベルを上げなければいけないでしょう」という暗示をもらった。また、「待つ」と「相手に花を持たせる」ということが大事だとも言われた。

おそらく2003年当時の自分は文章にもトゲというか他の者を押しのけるような横暴さのようなものがあったのだろう。

だいぶ角が取れたという意味で『組込みソフトエンジニアを極める-外伝-』のWEBサイトに隠された本のメイキング日記の中で、自分はR40だと紹介している。


組込みソフトエンジニアを極める-外伝- 著者の日記より引用】

酒井 由夫 (さかい よしお) R40(※1)
書籍 『組込みソフトエンジニアを極める』 の著者

※1
ここでのRは(Restrict:制限)のRではなく、40代くらいの丸みを持つエンジニアという意味。機械図面で R40 といえば角の半径(Radius)が40mmであることを示す。R20でとがっていた性格は歳を重ねるごとに丸みを増している。

【引用おわり】

こう書いたように、Interfaceで特集記事を書いた2003年から3年たって、だいぶ皮肉るような表現が減って丸みが増したように思う。

前田さんの『組込みソフトエンジニアを極める』の感想は要約すると2つあって、一つめは「これまで実行してきたことが本の中に想像され、組込み技術者であれば誰もが理解すべき、地に足のついた内容と思う」ということ、もう一つは、
「1つの大きなステップを極められたのではないかと思い、このステップをベースに、新たな出発をするのではと推察する」という内容だった。

ハッと思ったのはこの本はフィクションで自分の本業とはまったく関係ない電子レジスターメーカーを舞台に物語りを展開させたにもかかわらず、「自分の実行してきたことが本の中に想像される」と見抜かれたことと、「新たな出発をするのでは」というところが図星だった点だ。

前田さんに指摘されて改めて本に書いた「リアルタイム設計技術」「オブジェクト指向設計」「体系的再利用技術」「ソフトウェアの信頼性向上技術」の4つの技術が自分がたどってきた道筋そのものであることに気がついた。そして、その期間の構成は
「リアルタイム設計技術」が約20年、「オブジェクト指向設計」が約5年、「体系的再利用技術」が約3年、「ソフトウェアの信頼性向上技術」が約2年といったところである。

「リアルタイム設計技術」に関わった期間がいかに長いかということを再認識した。それだけ、組込みソフトは制約条件が厳しい中でリアルタイム性を実現することは使いやすさ、使う者の心地よさにつながっており難しい技術であるということだ。

そう考えると、『組込みソフトエンジニアを極める』の第一章「時間分割のハードルを越える」は他の章よりも凝縮度が高いかもしれない。

少なくとも、ビジネス系のソフトウェア開発をしている技術者の方には、まったく縁のない内容だと思う。逆に言えば、この部分が組込みソフトが組込みソフトであるゆえんでもある。

ちなみに、前田さんは最後に「ひとつの著書をまとめるには、相当のエネルギーが必要であったと推察する」と書いているが確かにその通りで相当エネルギーを使った。

そのメイキング日記はWEBサイト『組込みソフトエンジニアを極める-外伝-』に隠されているので是非入り口を見つけて、この企画が舞い込んできてリリースされるまでのストーリーを読んでいただきたい。

2006-04-16

マーケティングの重要性

必ず読むブログに “R30::マーケティング社会時評” がある。なぜならR30氏の書く記事を読むと世の中の特にIT系のマーケティングの潮流を理解し先取りすることができるからだ。

自分の処女作である『組込みソフトエンジニアを極める』は組込みソフトの技術解説書でありながら、本の全体に渡って「組込みソフトでクリエイティブな仕事をしたいのならマーケティングは大事だよ」と主張している。

第3章の“再利用の壁を越える”では、ユビキタスが定着した未来のスーパーに登場するナビゲーションカートが電子レジスターを不要にする存在になりうるという話しを書いた。

【組込みソフトエンジニアを極める -第3章 マーケティングの重要性- より引用】

顧客駆動型の考え方が必要だという具体例を示しましょう。図3.4をご覧ください。無線ICタグと呼ばれる、微小なICチップの実用化が近いことをご存じの方も多いでしょう。無線ICタグは識別する物体についての情報が格納されており、無線ICタグリーダーから発信される電磁波をエネルギー源として情報を出力します(そうでないタイプもあります)。無線ICタグのコストが5円程度に抑えられれば、スーパーマーケットで食材のパッケージなどに利用され普及が促進すると言われています。図3.4は無線ICタグが普及した際のスーパーマーケットの「ナビゲーションカート」の利用例です。

スーパーマーケットの買い物客が、本日の特売品のキャベツをナビゲーションカートに入れました。ナビゲーションカートには無線ICタグのリーダーがついており、カートにキャベツが入れられたことを認識します。すると無線ICタグに記録されているIDから情報を検索し、価格や産地などの情報をディスプレイに表示します。

買い物客は今日の夕食の献立のヒントを得るためにナビゲーションカートのディスプレイ上の献立ナビを押します。そして、携帯電話で自宅に電話し、ホームゲートウェイ経由で家電ネットワーク対応の冷蔵庫にどんな食材が入っているかを問い合わせます。受信した食材情報はブルートゥース無線通信で携帯電話からナビゲーションカートに送信されます。そして、ナビゲーションカートは購入したキャベツと自宅冷蔵庫にある食材で作ることのできる料理をデータベースから検索し、おすすめ献立としてディスプレイに表示します。

ナビゲーションカートのディスプレイにはおすすめ献立の食材を全部そろえると合計でいくらになるかも表示されます。さらに、詳しいレシピや、追加食材の売り場の場所もナビゲーションカートを使って知ることができます。

ナビゲーションカートはかごに入れた食材の合計金額を瞬時に計算できてしまうので、わざわざ食品の金額をレジで打ち直す必要がありません。ナビゲーションカートと電子レジスターが無線で通信すれば、レジでは合計金額の支払いだけをすればよいことになります。セルフチェックアウトシステムによってユーザー自身が決済することも可能になるかもしれません。操作がわからないときの案内係がレジ数台に1人ついていればよいのでスーパーマーケット側にとっては人件費の削減につながります。

フィルムカメラがデジタルカメラに切り替わりつつあるように、ときに技術革新はメーカーがそれまで作っていたものの価値を大きくシフトしてしまうことがあります。それまでスタンドアロンの電子レジスターを作っていたメーカーが、ナビゲーションカートのようなシステムは自分達の領域とは無縁のものと考えるとそれまで持っていた市場を失ってしまうかもしれません。

電子レジスターを購入するユーザー(スーパーマーケット)は、スーパーマーケットにやってくる買い物客に役に立つサービスを提供したいと考えており、レジ打ちのパートさんの人件費も削減したいと考えています。ナビゲーションカートのような存在は、既存の電子レジスターを脅かす可能性があるのです。

メーカーが既存製品を通してしか市場や顧客を見ていないと、技術革新が起きたときに市場の変化について行けず自分たちだけ取り残されてしまう危険性があります。図3.3の右の図のように、顧客が組織を駆動しマーケティングが各機能を統合するようになっている必要があるのです。新たな技術革新によって顧客や市場がシフトした場合は、それに合わせて製造、人事、財務もシフトすべきです。新しいデバイスを使いこなす技術がないという理由で、市場と製品との距離が離れると負のスパイラルに陥ってしまいます。

スーパーに訪れる買い物客の真の目的をよく考えてみると、それは必ずしも“食材を買い求めること”ではないことがわかります。スーパーに訪れる買い物客は購入した食材を使って、自分や家族のためにおいしく栄養バランスのよい食事を作りたいと考えています。また、できるだけ安価に短時間で食事を用意したいと考えています。そう考えると、スーパーに訪れる買い物客の目的はおいしく栄養バランスのよい食事を安価に短時間で作ることであり、“食材を買い求めること”はその目的を達成するための工程のひとつでしかないことがわかります。

電子レジスターは“おいしい食事をできるだけ安価に提供したい”という要求を満たす過程で必要となる組込み機器となるわけですが、その買い物客の目的が達成できるのであれば、目的を達成するための工程は変化してもスーパーに訪れる買い物客に不利益を与えることはありません。無線ICタグの普及とナビゲーションカートと携帯電話による電子決済は、“おいしく栄養バランスのよい食事を安価に短時間で作る”という目的により近づくことができるため、その結果電子レジスターは不要になる可能性もあるということです。

市場が変化することで新しい技術に対応する必要が出てくると、エンジニアは新しい技術を習得しなければいけない場合があり、再利用資産の寿命にも影響を与えます。したがって、マーケティングや技術予測は組込みソフトエンジニアにとっても重要です。

【引用終わり】

ここで引用したように市場の変化や新しい技術の出現にアンテナを張っておかないと、今自分たちがせっせとお金と時間をかけて作っている資産の寿命が短いことに気がつかないという危険がある。

そんなことが、R30氏の書評:「グーグル 既存のビジネスを破壊する」 にも書いてあった。内容はオリジナルを読んでもらうとして、この記事の中で googleをテーマにした2つの本のスタイルが比較されており、片方はまず最初に抽象的な結論が提示され、その論拠として二項対立的なフレームが並び、事実がそれらに沿って整理されていく、経営コンサルタントが使う典型的なプレゼンテーションの手法だと書かれている。

R30氏はこのタイプのプレゼンは、抽象的な結論が非常にすっきり頭に入ってくる一方で、疑り深い人は「本当にそうなのか?これらの事実は、自分の説に都合の良いように選り分けたのではないか?」という疑念もよぎらせるデメリットがあると言っている。

まさに、その通りだと思った。昔々HPの営業マンがツールの説明をするとき、まず最初に結論となる「このツールはあなた達にどんなメリットがあり、どんな問題を解決できるのか」を最初に語っていたことを思い出す。自分は過去何回か講演会でプレゼンテーションをしたことがあるが、これを参考に最初に結論のスライドを持ってきたりしている。

でも、確かに結論となるテーゼ→その根拠をいう流れがぴたっとはまりすぎると確かにうさんくさいと感じることがある。

だから、いつも気をつけているのはひとつの提案、施策に対してできるだけメリットとデメリットの両面を書いて、自分のドメインに適応させるときのヒントとなるようにしていることだ。

『組込みソフトエンジニアを極める』では、R30氏が比較したもう一方の本のスタイルである、事実を提示し→なぜ?という問いかけをし→その意味を考える という書き方をするように気をつけたつもりである。その方が信頼感があるからだ。

だけれども、それだけだと一貫したコンセプトを貫くことが難しく、おもしろみのない単なる技術解説本になってしまうので、仮想の電子レジスターメーカーとそので働く組込みソフトエンジニアやマネージャを登場させ、ストーリー性も絡めてコンセプトとなるテーゼを主張した。

自分なりにR30氏が比較ひた二つの本のスタイルのいい面を合わせたつもりである。でも、無意識にやっていたので、今回自分自身で「なるほど、そういうことだったのか」と納得させられたのである。

優秀な分析者の価値は高い。

2006-04-12

缶バッジ

4月11日は、『組込みソフトエンジニアを極める』の打ち上げだった。メンバーは日経BPの編集の柳田さんと、人物イラストをデザインした武工房の武田亜樹さんと、制作会社のクニメディアのお二人と自分の5人。

この打ち上げに前に、何か記念になるものを作ろうという遊び心が沸々とわき上がってきた。そこで、思いついたのが缶バッジだ。缶バッジとは、金属の丸い素材に写真やイラストを丸く切ったものを重ね、さらに薄い透明のフィルムを重ねて、缶バッジ製造器でまず上から押さえ込んで包み込むようにして、その後下からベース素材をはめ込んで、最後に安全ピンがついた部品を差し込んで完成となる。

これは子供のおもちゃ(約4000円)なのだが、完成したバッジは売り物にできそうなくらいきれいになる。

通常は印刷した写真や缶バッジ製造器に付属のイラストでバッジを作る。それだけでも子供は大喜びなのだ。でも、大人が作るからにはちょっと工夫したい。そこで、武田さんが作った本に登場する主人公の組田鉄夫のイラストをベースにクニメディアのデザイナーさんが作った本のタイトルロゴを使いスタッフバッジを作った。そして、スタッフリストで中央のデザインをくるんでみた。

打ち上げの席でも好評だったので、失敗を繰り返しつつ完成させた甲斐があった。最初失敗したのは、イラストをきれいに出すためにプロフェッショナルフォトペーパーという写真印刷用の用紙を使ってインクジェットプリンターで印刷したのだが、これが紙の厚みがかなり厚かったため缶にくるめたあと、ベース素材がうまくはまらないのだ。かといって通常のコピー紙を使うと色がきれいにでない。紙質(厚み)と発色のきれいさをトレードオフしながらちょうどいいところをねらって試行錯誤を繰り返していたら結構な数の失敗作ができてしまった。

でも、よく考えるとこれって組込みソフトの開発によく似ている。すり合わせで試行錯誤しながら完成させて満足がいく結果が出たときの喜びは大きい。さらに、できあがったプロダクトがユーザーに評価されれば喜びは倍増する。

『組込みソフトエンジニアを極める』でも書いたが、市場やユーザーの求めているものと、組織の目標とエンジニアの思いの3つのオーバーラップが大きければ大きいほどすべての人がハッピィになれる。

なかなか、現実は厳しいもので、思ったようにはいかないが、常に Win & Win の関係になれるように努力していけば仕事へのやりがいが増すはずである。

やっぱりものづくりは楽しいのでやめられない。

2006-04-11

すり合わせと組み合わせ

4月7日の東大工学部でのSESSAMEの例会の後、MMRC/東京大学21世紀COEものづくり経営研究センターで組込みソフトのすり合わせ開発と組み合わせ開発の話しをしてきた。MMRCにお呼ばれしたのは、2006年1月23日に開催された SESSAMEのワークショップのパネルディスカッションで自分がモデレータとなりMMRCの研究員である立本博文さんがパネルメンバーで組込みソフトエンジニアの将来について議論したことがきっかけである。このパネルディスカッションの中身については技術評論社が発行している『組込みプレス vol.3 』の中で紹介される予定になっている。

実際には1月23日のパネルディスカッションでは用意したテーマをすべて議論することができず、後日あらためてパネルメンバーのみなさんに集まってもらって討論した座談会の際に、私が話した内容に立本さんが「この話しはおもしろい、是非MMRCでもう一度話しをして欲しい」と言われ実現した。

当日は、東京大学ものづくり経営研究センターのセンター長で 東京大学 大学院経済研究科 教授 の藤本隆宏先生にも話しを聞いていただいた。藤本先生は、長年、日本や海外の製造業における製品開発や生産等の「ものづくり」について研究しておられ、『組込みソフトエンジニアを極める』でも藤本先生の著書である『日本のもの造り哲学』の図を一点使わせていただいた。

上の図はプレゼンテーションの後、藤本先生に「この図はいいね」と言ってもらった図である。『組込みソフトエンジニアを極める』では、p149 図2.23 「制約条件をクリアしつつ最適化を図る」で登場する。

図の中でハードウェアは変型しにくく、ソフトウェアはハードウェアとハードウェアの隙間を埋める糊のような役目を果たしていた。グニャグニャしているソフトウェアがすり合わせたソフトウェアのイメージとなっている。一方、ソフトウェアの規模が大きく(10万行以上)なってくると、とてもすり合わせでソフトウェアを作っていたのでは追いつかず、外からOSやミドルウェアなどのソフトウェアモジュールを買うようになった。しかし、そのような組み合わせ部品となっている市販のソフトウェアは他社も容易に導入できるので、その商品にしかない独自の強み(コアコンピタンス)には成り得ない。上の図で魚が組み合わせ用のソフトウェアモジュールをパクパク食べてしまっている様子がこれを表している。

10万行、100万行といった規模の組込みソフトから成る組込み機器が競争優位を保つには、キーとなるハードウェアデバイスとそのキーデバイスを制御するソフトウェア、そして自組織で作り上げた再利用可能なソフトウェアモジュールをパッケージにしてコア資産とすることが重要であると本の中で書いた。

【組込みソフトエンジニアを極める -プロローグ-より引用】

日本の組込み機器はすり合わせ型の開発だと言われています。すり合わせ型開発の対極は組み合わせ型開発です。すり合わせ型とは試行錯誤や調整を積み上げていく開発方法、組み合わせ型は仕様通りに作られたモジュールを定められたインターフェースでつなげていく開発方法です。
これまで日本は、独自の強みを持った多くの組込み機器を少数の技術者によるすり合わせ型開発で生み出してきました。省スペース、低消費電力化、高信頼性、リアルタイム性、独特なユーザーインターフェース、ユーザーニーズの全体最適化などの機能・性能を、ハードとソフトのトレードオフや、専用のソフトウェアを作ることで実現してきました。これらの強みの多くはエンジニア個人の能力がベースになって生み出されたものです。個々のエンジニアの技術を尊重し、それぞれの強みの最大公約数をまとめ上げる製品開発は日本独自の手法であり、このようなすり合わせ型開発こそが組込み製品の競争優位を保っていたのです。

一方組み合わせ型開発はトップダウン的なアプローチが有効です。開発の当初から機能を分割し、独立性を高めたサブシステムを定義し、サブシステムごとにプロジェクトを立ち上げ、できあがったものをつなげるというスタイルです。このような組み合わせ型の開発は大規模なソフトウェアに向いており、アメリカや中国が得意な手法です。組み合わせ型開発で作った製品はすり合わせ型開発で作った製品に比べて最適なトレードオフがしにくいので、リアルタイム性やユーザーニーズの全体最適化といった点で不利な面があります。

ところが、近年日本においても、ユビキタスの時代が到来すると言われ、組込みソフトに期待される要求が多様化し規模が拡大しています。このため、これまで行ってきたすり合わせ型の開発では、ソフトウェアの品質を確保し、計画通りの日程で製品をリリースすることが難しくなってきています。
これからの組込みソフトエンジニアには、従来から日本が得意だったすり合わせ型の開発技術と、欧米型の組み合わせ型の開発技術の両方のスキルを習得し、これらのスキルをともに活かせることが要求されています。すり合わせ開発では先輩から後輩へ、上司から部下へ技術を伝承するOJT(On the Job Training)方式が効果的です。一方組み合わせ開発ではプロセスを重視したトップダウンの教育が効果的です。組込みソフトの世界に足を踏み入れた若いエンジニアは、すり合わせ開発も組み合わせ開発もどちらも経験していないため、その両方を学ばなければなりません。

【引用おわり】

プロローグに書いたように、規模が大きくなった組込みソフトウェアを全部すり合わせで作るのは辛い。ただし、組込み製品の全体を把握しながら、ハードウェアをすり合わせるソフトを作り全体最適を行ってより使いやすく洗練させるという行為に組込みソフトエンジニアは喜びを感じるものである。

組み合わせだけでものづくりが完成してしまうのはつまらないものである。したがって、エンジニアのモチベーションを下げないようにして、品質の高い商品を作るにはすり合わせと組み合わせのバランスをどこに持っていくのかがとても重要な要因となる。

2006-04-08

新人技術者へのハードルは確実に高くなっている

R25というフリーペーパーをご存じだろうか。R25はリクルートが発行している25歳以上の男性ビジネスマン向けの情報誌だ。 R25のRとは(Restrict:制限)のRである。R25は毎週木曜日に駅などに置いてあるのだが人気があるのですぐになくなってしまう。

3月にR25の特別版のR17とR22が発行された。たまたま、どちらも手に入れることができた。R17は高校を卒業した卒業生に向けて、R22は新社会人に向けての記事構成となっている。

この二つの特別版のうち、R17がおもしろかった。今時の高校生が何を考えているのかわかる。R17世代にとって一番大切なことは? という質問に対しての答えで「思いやりの心」「人への気配り」「自分を理解してくれる友達」「友達を大事にする」といったものが目につく。

平和で何不自由のない恵まれた世の中のせいか、それとも日本は根っからの性善説の世の中なのか? 若いのに鋭さがないと感じる一方で、人の良さにほっとする面もある。

もう一つの質問で 夢は何ですか? の答えがおもしろい。 「スポーツライター」「グローバルな女」「イベントプロデューサー」「映画監督」「中国で会社経営」「料理人になりたい。食べるのが大好き。」「夢のない人に夢をあげられるようになる!」「歌手、楽しく気持ちよく歌っていたい。」

これらのR17の声を分析すると、テレビやインターネットで見た「かっこいい」と思った職業や特定のスターのようになりたいと単純に考えているのではないだろうか。そこには、かっこよさの裏にどんな世界が広がっているのかについては深く考えていないような気もする。

20数年前、ニンテンドーの初代ファミコンがまだ登場していなかったころ、やっと買えるようになったパソコン PC-6001 を手に入れテレビにつないで BASIC で初めてプログラムを書いていた。プログラムは雑誌に書いてあるリストをせっせとキーボードから打ち込んでは動かして喜んでいた。

ASCIIというパソコン雑誌に南青山シンドロームという、テキストベースのロールプレイングゲームのコードが16進数で何十ページにもわたって掲載されており、この16進数のコードを何日もかけて打ち込んだことを思い出す。

16進数のコードは当然打ち間違いをするのだが、ちゃんどページごとにチェックサムがついているので打ち込みが間違っているかどうか確認ができた。

当時はゲームの攻略本など存在せず、インターネットもなかったので南青山シンドロームの解き方は結局分からずじまいで最後までたどり着けなかった。

今はどうだろうか? ゲームの完成度は高く、若者はゲームを遊ぶことに夢中で、ゲームを作る楽しみに触れる機会がない。攻略本もあるので、ゲームの最後まで到達できないという挫折感もない。欲しい情報は自分で努力しなくても手に入る。サービスを受ける側とサービスする側、ものを使う側と作る側、物事には2つの側面がある。今はサービスをする側、ものを作る側の体験をする機会が極端に減ってしまった。

サービスする機会はアルバイトで経験できるが、ものを作る機会へ減ってしまったのは問題だ。冒頭のR17の夢の話しに戻れば、R17はかっこいい、華やかなスターがそこにたどり着くまでにどんな苦労をしてきたのかについて予想がつかないのは、自分自身で何かを企画しやり遂げるという経験をほとんどしていないからのように思える。

毎年入社してくる真っ白な新人技術者を見ていつも考えるのはオリンピックのレコードのことだ。オリンピックレコードは毎回毎回更新される。20年前と現在で生まれてくる子供達のスポーツへの素養はそれほど変わっているようには思えない。変わっているのは食物やトレーニング技術や道具類だが肝心の生身の人間の方は20年前と今とでもそう変わりないのである。

そう考えると20年前に生まれてくる選手よりも、今生まれてくる選手の方が越えなければいけないハードルが確実に高くなっている。

組込みソフトウェアの世界もオリンピックと同じだ。毎年毎年入社してくる新人技術者は学習しなければいけない知識・スキルが年々増している。にも関わらず、ものづくりをする側の経験が乏しくなっていると、ますます教育する側の負担が増える。

『組込みソフトエンジニアを極める』では、「実現したいユーザーニーズ」→分析→「技術的な難しさ」→克服→「ユーザーニーズの実現、商品の売り上げアップ」→満足感→「難しさを克服した喜び」→さらなる欲求→「実現したいユーザーニーズ」というサイクルを回すことが重要であると書いた。

このようなサイクルを何度か回すことができれば、エンジニアは自立走行する訓練を積むことができる。しかし、本当は社会人になるまでに、「自ら選択する」→「作業に関わる」→「集中する」→「満足感・達成感を得る」というサイクルをたくさん経験して欲しいのだ。