SSブログ

すばしこき この世界

2001年頃から、ソフトウエアのアジャイル開発手法という言葉を聞くようになりました。注目された「スクラム」の提唱者ジェフ・サザーランドは大野耐一のトヨタ生産方式(TPS)に着想を得たとしていますが、「一人一人が無駄をなくす意識を持ち、常に改善を心がける」といった背景の思想に触発されたのであって、TPSもスクラムも、適用に当たってはテーマや適用範囲の設定には細心の注意が必要だと思います。

かつて自分が担当者・プログラマとして関わった車両制御の組み込みソフト開発では、確かにウォーターフォールモデルやV字開発に固執する上司に違和感を感じており、(アジャイルという言葉が工学分野で使われる前のことですが、)「ソフトそのものが仕様書」「正式な仕様書は後回し」などといって、特に寒冷地試験の時は集中的にデータを取り、それを使ってどんどんアルゴリズムを追加していくなど、今でいうアジャイル開発に近い考えで取り組んでいたように思います。

但し、当時の比較的簡単なシャシー制御のプログラム(最初は1万ステップ程度のアセンブラ言語で一人で担当できました)といえども、対象はブレーキという極めてミッションクリティカルなものですので、スクラッチからアジャイルでやる訳ではなく、全体のアーキテクチャやハードウエアに存する部分の枠組み(あるいは大日程)をまずしっかり作り、つまりアジャイルにやる範囲をまず定義して、日々の(シミュレーションはパラメタ適合までの精度が出ないため)実際の試験車による実験で得られるデータを使いカイゼンのループを速く回していく、車の試作時期などに同期して仕様まとめ/リファクタを行う、といった事だったと思います。

yajirushi_fast_.png

一部のアジャイル手法で違和感があるのは、最後のドキュメントや仕様、一般的な設計の言葉でいうrationale(根拠:どうしてその設計・仕様に決めたのか)の記録と伝承を軽視しているように見えることです。分厚い設計仕様書や検討書は残念ながら誰も読まないということは「その通り」と思いますので、ソフトであれば適切なコメント、図面であればその図面にハイパーリンクで簡潔なメモが残っていることが望ましいと思うのです。機械CADのCATIAにはそのような機能があり、少なくとも一時はTRIZのアイデアデータベースとのリンクすらできたと記憶しています。こういう工夫がないと、社内向けのいつまでも手直しし続ければよいようなソフトはいいですが、自動車のBSWや少しづつバリエーションを増やし長く広く使っていこうという多くのシステム(ハードとの関わりの深い組込み系ならなおさら)となると、再現性・展開性が担保できず困ってしまうはず。優秀な「スクラム」チームを長期間維持することは極めて困難ですので、「動かない(保守できない)システム」を生み出す温床にすらなり得るのでは?(人材の流動性の高い米国では特に深刻な問題のはず。)

もう一つは、冒頭に書いたような適用対象です。サザーランドの著書「スクラム」には「トヨタは構想から完成まで十五ヶ月間でプリウスを開発した」という全く事実に反することが宣伝のように書かれていますが、純粋なソフトウェアプロジェクトに対しても賛否両論、いや、「成功例もあるようだ」という程度の「スクラム」の状況に照らして、あまりに罪作りな誤解を招く表現と言えます。

ちなみに、私が、日本人ではあまりなじみのないアジャイル(agile)という英単語に触れたのは、’94-'96の米国留学中に、本当にすばしこかった長男(当時1-2歳)を見た米人の友達に"He’s so agile!"と言われた時でした。その時、 "You need a leash!" (犬みたいにリードを付けないと!)とも言われたのですが、これは、上記の「アジャイル開発は、その適用範囲を定義すべし」に通じることなのかもしれません。こじつけ気味ですが。


nice!(1)  コメント(0) 

TRIZの「進化のトレンド」は「何を作るか」の指針でもある

設計の過程で生じる物理的矛盾を解決するヒントを出すのがTRIZですが、もう一つ「進化のトレンド」という興味深い項目があります。この「進化のトレンド」は「どう作るか」を超えて「何を作るか」に示唆を与えているといえます。潜在するニーズを見出すといったことではなくて、システムがどのような方向で進化するかの法則性を考えることで、製品・サービスがどのような方向に進化するかのヒントも得られる、という感じです。

「進化のトレンド」とは、システムが進化する過程のパターンを整理したもので、私のお気に入りは、例えば以下のようなものです。

『似た機能の単体(モノ)→二体(バイ)→多体(ポリ)の進化』トイレの手洗い場のハンドドライヤーが、下向きに(弱い)温風を出す「単体」から、三菱電機ジェットタオルのように向かい合わせの温風の間に手を差し込むようにして性能を上げた「二体」、さらにダイソンのようにさらにエアブレードを構成した「多体」のシステムに進化。

『異なる機能の単体→二体→多体の進化』手洗いシンクそのものに蛇口だけでなく、液体せっけん、ハンドドライヤーなどの異なる機能を盛り込み、一か所で様々な機能を実現。

『エネルギー変換回数の減少』 200年以上の歴史を持つ内燃機関ですが、燃料を霧状にして空気と混ぜ圧縮して点火するという、実に複雑なエネルギー変換を行っています。そのため、トルク(回す力)が出せる範囲が狭く応答も遅く、トランスミッションやとトルクコンバータといった複雑な機構が必要になります。この進化の法則によれば、FCを飛ばしてEVへ向かうことになるのでしょうか。

car_suiso_nenryou.png

※ハイブリッドシステムは、さらに複雑なエネルギー変換を導入してしまったともいえますが、異なる機能を組み合わせて効率を大幅に上げているので、電動化時代に向けて想像以上の「ロングリリーフ」になっていることも納得できます。ガソリンスタンドでの給油という、既存のインフラと使い勝手を変えることなく、2倍以上の効率化を実現しています。航続距離が伸び給油の頻度が下がることは、喉元過ぎてオイルショックを忘れ、税制優遇のある個人向け小型(といってもでかい!)トラック市場が沸騰している米国のユーザーでも嬉しいはず。ハイブリッドは乗り味がスポーティーとは言えませんが、「パワーモード」に入れると、(燃費のことはさておいて)エンジンとモーターが力を合わせて目覚ましい加速を見せてくれます。

また「進化のトレンド」の中にその見出しはありませんが、リソース活用の究極の姿として『機能だけがある状態への進化』というものもあります。ある機能を「他のもの」で肩代わりしたり、マクロ・ミクロの構造を見直すことで「もの(物体)がないが機能が実現されている」という状態に進化させることができます。例えば、自動車のアンテナは、ポールアンテナから短いロッド型やシャークフィン型へと小型化、あるいはガラスアンテナに進化し、受信性能を確保しつつ「アンテナが存在しない」という状態に近づいています。PCやテレビでスクリーンそのものがスピーカーになる製品がありますが、これも同様の例です。

nice!(0)  コメント(0)