『ファミコンの驚くべき発想力』〜制限から生まれる工夫

ここ最近では一番面白かった。
僕はファミコン世代の人間だけど、実はゲームはするより、作るほうがおもしろかった。小学校当時PC6001で一番最初に作ったのは確かじゃんけんゲーム。その後数年かけてアドベンチャーゲームとか、RPGとか、シューティングとか対戦格闘とか一通り作った(全部BASICだったけど)。

ファミコンの驚くべき発想力 ?限界を突破する技術に学べ? (PCポケットカルチャー)

ファミコンの驚くべき発想力 ?限界を突破する技術に学べ? (PCポケットカルチャー)

この本の良いところは、古き良きファミコン時代のノスタルジーを喚起するだけでなく、コンピュータの基礎が学べるところ。CPUとかメモリとか、レジスタとか。シフト演算で乗算と除算を行うと軽い、など組込み開発でも通じるテクニックとか。

ファミコンというハードのすごいところは、本書にもある通り「遊べる性能」とコストとのバランスだと思う。あと、ROMカートリッジを採用したことによる拡張性の高さ。だからあれほど長い間遊ばれることになった。(そういえば、当時のコナミのゲームの拡張音源は素晴らしかった!)

そして、制限の中で闘ったプログラマの工夫の一部が技術的に垣間見れるのも面白い。ドルアーガの塔の迷路は実はランダム(ステージ数をランダムのシードにしている)で、容量圧縮のためだったとか、最終フロアは偶然あの形になったとか、ドラクエのストーリー進行は7ビットで復活の呪文に保存されている、とか。オールドゲーマーの自分にとっても新鮮な情報も。

気楽によめつつ技術的な内容も充実しているので、ゲームマニアじゃなくても読む価値あり。ファミコン時代の古い話だけでなく、オブジェクト指向やガーベージコレクションなど、「現代プログラミング」の功罪についても若干触れており、フレームワークや用意されたAPIなどのプラットフォーム前提で開発することが現代の開発者にとっては考えさせられる。

2011年の一文字は「幸」

新年あけましておめでとうございます。今年は前厄ということで、昨日お祓いに行ってきました。早いもので40歳になっちゃう年なのです。
いまさら昨年を振り返ると、アウトプットの乏しい1年でした。業界というか人様のために役にたつ成果を残せませんでした。理由はいろいろあるのですが、あえて一言でいえば様々な迷いの中で自分を見失っていた気がします。
ということで今年は原点回帰を目指し「幸」という一文字を抱負にします。「幸」は私の名前(の一部)であり、生まれながらに背負っている文字です。40年近く前、両親が私に込めた祈りの文字。その意味をもう一度考え、仕事やプライベートでお会いする人全ての幸せ+に寄与できるよう、よりアクティブに行動します。
本年もよろしくお願いします。

組込みプレスVol20

本日発売の組込みプレスVol20の特集2「ICTから学べ〜これからの組込み開発者に求められるスキル&マインド」に、永和システムマネジメントのメンバーが執筆しています。

組込みプレス Vol.20

組込みプレス Vol.20

「第2章 コンポーネント指向による要求分析/ 設計の実際〜UML/DFDの活用」と「第3章 組込み開発でテスト駆動開発は有効か」がそれです。いずれも現場で主導的な立場で動きつつ、バリバリ開発をしているメンバーによる実践的な内容が特徴となっております。
まず第2章。コンポーネント指向は組込み開発でも取り入れられつつあります。筆者の藤井さんはそれを現場で実践し、UMLだけでなくDFDを組み合わせたモデリングをしています。実情に合わせた工夫をしているのがユニークで実戦的です。
第3章の筆者森さんは、アジャイルの肝となるテスト駆動による開発が、組込みでも使えるのかどうか、テストツールやカバレッジツールの説明を交えながら解説しています。
また、今回の特集のもう一つの特徴は「コラボ」です。第1章では、自動車業界におけるTier1サプライヤである三井金属アクトさんによる「MBDを品質確保とコスト削減に利用する」という取り組み。第4章は全社的に要求開発に取り組まれている大阪NDSさんによる、「組込み分野における要求開発」という取り組み。いずれも弊社とのご縁から、今回の特集に協力していただいております。
第1章・第4章とも、「これからの組込み開発者に求められるスキル&マインド」という大きなテーマにフィットするように、それぞれの業務における実体験を抽象化し書いていただきました。

組込み開発者に求められるスキルは年々高まり、必要となる知識もIT関係だけでも広がる一方である。機能が複雑になればなるほど、コアロジックや特定分野の制御技術だけでなく、ネットワーク機能やユーザインターフェースといったレイヤの機能開発も避けられない。ひと言でいうなら、組込みデバイスとPCの境界がますますあいまいになり、それぞれの応用分野におけるオーバーラップが大きくなっている。
このような大規模開発では、専門分野ごとにモジュールやコンポーネントの分離、分業が進んでいるが、製品やシステムの設計者、マネージャは全体を把握する必要がある。現場の開発者も、プロジェクトの規模によっては、自分がカバーしなければならない領域が得意分野や専門分野とは限らない。
この特集では、ICTというアプリケーション開発やシステムインテグレート(SI)という視点から、組込み開発にも応用できるプラクティス、開発スキームはないだろうかということを掘り下げる。

以上は特集の扉ページからの引用ですが、あらためて第1章から第4章まで読んでみると、随分幅広いテーマになったものだと感じます。エンジニアには当然スキルが必要ですが、同様に「もっとよいものを、もっとよいやり方で作りたい」というマインドも大切です。具体的なスキルについては第1章から第3章が、マインド面については主に第4章がカバーします。現場で実際に開発をされているエンジニアから、マネージャ層まで、幅広く読んでいただける内容になっていると思いますので、是非一度手に取ってみてください。

『ETの開発現場で求められている人材像と育成方法 〜アジャイルの活用事例〜』

来る7月29日、ETロボコンでおなじみアフレルさんと永和システムマネジメントで、プライベートセミナーを開催します。テーマは『組込み開発現場における人材育成』。
私は、アジャイルなプラクティスの導入事例についてお話する予定です。プライベートセミナーなので、話す人と聞く人の距離が近く、双方向なコミュニケーションで進められたらいいなと思っております。まだ空きがありますので、ご興味のある方は応募ください。

◇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━◇◇
【ご案内】プライベートセミナーを開催します(7/29)
『ETの開発現場で求められている人材像と育成方法 〜アジャイルの活用事例〜』
◇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━◇◇

大規模、複雑化するソフトウェア開発の現場において、従来型のプロジェクト運営だけでは、顧客の求める機能・品質・納期に応えるのが難しくなってきています。そこで、より俊敏でかつ柔軟なプロジェクト運営を実践するアジャイルが注目を集めています。
これまで日本では一部の開発チームで試験運用されているイメージが強かったアジャイルですが、様々なプロジェクトでの採用が急速に進み、実用段階に入ろうとしています。この流れはITだけにとどまらず、ET(組込みソフトウェア)開発の世界でも普及し始めています。

アジャイルの導入目的は多岐にわたり、属人性の排除、企画/メカ/エレキ/ソフト等の組織間の壁・対立や、現場のモチベーションアップ/コミュニケーションアップまで千差万別です。これらの課題を人材育成や、組織の活性化で解決しようとしています。

セミナーでは、現在、組込み開発で求められる人材像や人材育成企画の考え方や育成事例、または導入しやすいアジャイルラクティスをご紹介します。

『ETの開発現場で求められている人材像と育成方法 〜アジャイルの活用事例〜』
日 時:2010年7月29日(木) 13:50〜(13:30〜開場)
場 所:株式会社永和システムマネジメント 東京支社(上野、御徒町)
参加費:無料(事前申込制)

▼プログラム
1.ETの開発現場で求められている人材像と育成方法(仮)
2.ETの開発現場で役立つチーム運営手法と開発技術(仮)
3.ETの開発現場でのアジャイル(開発)の始め方
4.質疑応答、個別相談

▼詳細情報およびお申込みはコチラ↓
http://sec.tky.esm.co.jp/2010/06/29/private_seminar10/

制御の世界

私は業務システムの開発を中心にキャリアを積んできました。UNIXでのクラサバからVisualBasic、WebではJavaが多かったです。アーキテクチャや業務内容に多少の違いはあれ、いずれもソフトウェアだけで完結する世界でした。
この「業務の世界」にすっかり慣れ親しんだ自分にとって、組込み、特に制御の世界はまったくの未知数の分野です。ソフトウェアは制御にとって道具に過ぎず、「実際に動くモノの挙動」に心血を注ぐ世界だと雰囲気ではわかっているつもりですが、具体的にどのような仕事が必要で、何が課題になっているのか、もっと具体的に理解する必要があると感じています。

そんなとき、次の連載を読むことで随分理解が助けられました。

体験! MBD&MDDによる組み込みシステム開発(4)制御の世界のモデルベース開発とは?

※ちなみに記事中にも触れられているPID制御については、こちらを併せて読むとさらに面白いです。

制御モデルとはつまり業務知識そのもので、モデルベース開発をすることで、業務知識をそのまま動くソフトに変えることができる。これが組込み制御系の世界では実際に起きていることです。
業務系・ビジネス系ではなかなかこうはいかないことは肌身で分かっています。ただ、制御の世界から何かヒントが得られるかもしれません。普段とは違う刺激を求める業務系のソフト開発者の方にもお勧めできる内容です。ご一読ください。

MBD&MDDによる組込みシステム開発

弊社組込みグループでは、組込み開発をビジネスの柱にしようと日々奮闘中です。とはいえ、実績が少ない中で認知度を挙げ案件に結びつけるには、サイトを立ち上げたり名刺を頼ったりといった営業活動に加え、自分たちで学ぶことで技術力を身につけ、その技術がどのようにお客様の役に立つのかアピールする活動も必要です。
そのような問題意識を持ったメンバーが率先して始めた活動が、自分たちの知見を世に問う執筆であったり、自分たちの技術を競う「ETロボコン」への参加や運営協力です。実は他にもいろいろ活動中なのですが、今回はモデル駆動とその実践の場としてのロボコン活動について紹介させてください。

モデル駆動開発ロボコン活動で評価する

業務やWebなどICT系の開発では最近あまり話題に上がらなくなった感のあるモデル駆動開発ですが、品質を上流から作りこむことを重視する組込み開発において、その有効性は期待されています。私たちもその有効性を実際に体験・評価したいと思い、ETロボコンの活動を通じて実践をしています。

@IT MONOist-続・ソフトウェアのモデル駆動開発にチャレンジ!

詳しくは上記@ITモノイストの連載記事を読んでいただきたいのですが、ロボコンメンバーは、astah*でUMLモデルを書き、そこからコードを自動生成するツールを自作することでMDDを実現しています(ツールはダウンロードできます)。この仕組みは実際に私たちのロボコン活動で使われており、繰り返しチューニングが必要なロボットの実装において、「見通しがよい」「途中参加のメンバーでも理解しやすい」という好感触を得ております。
製品の量産開発でそのまま適用するには課題はあるでしょうが、基本的な考え方や手法を身につけるという意味では意義があると感じます。

「ICTの技術をETに融合する」第一歩として

私たちが組込み分野にチャレンジする際掲げているキーワードは「ICTとET技術の融合」です。「ICTの技術」が具体的に何で、どのような嬉しさがあるのかはこれからも突き詰めていきますが、MDDに代表されるモデル駆動の手法は、長らくオブジェクト指向に取り組んできた私たち永和システムマネジメントにとってのアドバンテージになると実感しております。
ロボコン地区予選まであと数カ月、当然コンテストに勝つという結果も求めていきますが、モデル駆動を実践評価し知見を蓄えるというゴールも追及していきます。

受託にも必要なイノベーション

以前私は、受託からはイノベーションは生まれないしその必要もない、と言っていました。

おっしゃるとおり、受託からイノベーションは生まれません。受託はイノベーションを目的として行うものではありませんし、イノベーションが必要条件でもありません。

今でも受託からイノベーションは生まれ難いとは思いますが、受託をするにしてもイノベーションが必要なことは最近わかってきました。ただし、ここでの「イノベーション」とは技術的革新という意味よりは組織の変革であり、仕事に対する取り組みや考え方を変えることです。

ビジネスとしては同じ受託だとしても、今までとは違う顧客セグメントや技術に取り組む、それだけのことでも組織にはイノベーションが必要となります。具体的には、営業のやり方、メンバーに対する意識付け、案件を受注する/しないの判断基準、教育予算の振り分け方までも変えていく必要があるのです。

この違いはやってみるまで実感できません。少なくとも私はそうでした。

実は、この春から私の所属するグループを中心に組込み系の開発ビジネスを始めました。私たちはもともとオブジェクト指向技術やアジャイル手法など、ICTを由来とする技術を強みにしてきましたが、これらの技術を組込み分野に持ち込み、よりよい開発をお手伝いすることをビジョンに掲げています。まずは組込みLinuxAndroid、自動車業界の次世代標準AUTOSARといった技術に対する知見を売りとした開発受託ビジネスからスタートします。詳しくは、永和システムマネジメント組込みグループのサイトをごらんください。組込みグループメンバーのブログや執筆などのコンテンツもありますよ。
http://et.esm.co.jp/site/index.html

ここ数カ月、ビジョンやコンセプト作り、Webサイトの立ち上げに営業訪問といった活動をメンバーと共に行ってきました。正直、戸惑いや不安も多かったのですが、メンバーや会社の支援もあり、なんとか離陸に向けて機首が少し上向いたかな、といった感触です。
しばらくは受託を中心に「お客様のイノベーション」をサポートしていきたい。そのような気持ちにあふれています。何とぞ、よろしくお願いします。