小論:知働化研究会 11/3/2009 文化の日特別寄稿 知働化の世界観 不確実性への対応から進化・適応プロセスによるソフトウェアづくり 大槻繁(おおつきしげる) 株式会社一(いち)副社長 アジャイルプロセス協議会 フェロー 知働化研究会 運営リーダ Copyright 2009, Shigeru Otsuki, All rights reserved. 本小論は、2009年10月29日に、明治記念館で開催されたIPA Forum 2009での筆者の講演『ビジネス駆動の先進的なITシステム・ソフトウェアの世界観』に基づき、講演スライドで示した図を中心に、解説としてまとめたものです。講演では話きれなかった事項や、周辺事情についても述べています。 表紙にも配置した歯車の図は、講演タイトルである「ビジネス駆動の先進的なITシステム・ソフトウェアの世界観」を直感させるために、青で示したITシステム・ソフトウェア、あるいは、エンジニアリングの世界と、赤で示したビジネス、あるいは、実世界とが、連動してかみ合うべきだということを象徴的に表現したものです。青と赤の色使いは、全体を通して一貫させています。 全体構成は、4部構成の起承転結スタイルになっています。前半(ⅠとⅡ)が歴史的な潮流とソフトウェアエンジニアリングの基礎概念、後半(ⅢとⅣ)がアジャイルプロセスや知働化という新しい世界観の説明になっています。 (以下、各節ごとに詳細ページがあります。また、本小論をまとめたPDFファイルは、このページ下の添付ファイルをご覧下さい。) 産業、経済/社会活動の潮流から見て、ソフトウェアは知識社会の中核となってきています。 Ⅱ.開発プロセス ウォータフォール型開発プロセスの原理的欠陥を乗り越えるさまざまな取組みがなされてきています。 変化や不確実性への対処を標榜する軽量プロセスの実践の状況や動向について紹介します。 Ⅳ.知働化の取組み 実行可能知識と様相という、次世代のソフトウェアづくりを目指した取組みについて紹介します。 おわりに 【本質的困難再考】 ソフトウェアのソフトウェアであるがゆえの難しさが、知働化パラダイムの主題の一つですが、上記で述べたようにソフトウェアを取巻く世界を含めて考えていかなくてはなりません。ここでサービス、システム、知識といったものを含めて「困難」というものを再定義しておきましょう。 「複雑性」とは、大きくて複雑なことそれ自身が問題なのだということです。構成要素間の依存関係も規模が大きくなるほど非線形に増大します。自己組織化、創発、ゆらぎといった振舞いもあり、あたかも生命的システムのようなものです。 「同調性」とは、ハードウェアやネットワーク、他のシステム、人間の行動や習慣にいたるさまざまなものと関係を持ち続けるものであるということです。外部に対し、常に影響を及ぼし、かつ逆に、常に同調(順応)し続けるものです。あたかも社会システムのようなものです。 「可変性」とは、常に変化し、進化し続けるものです。たとえ、当初の計画通り出来上がったとしても、さらなる要求を思いつくでしょうし、そもそも出来上がったものが世界を変えてしまうため、人間の認識にも影響を及ぼし、新たな要求がでてくることになります。 「不可視性」とは、複雑な概念の集積であることに起因して、それが目に見えないということです。開発プロセスや意思決定の経緯も見ることができませんし、単純な図面で全体が理解できるということもありません。そもそも記述されない事項、無意識領域も対象となります。 【まとめ】 本記事で述べた事項の要約を以下に示しておきます。 Ⅰ.ソフトウェアの『富の未来』 ・ ソフトウェアエンジニアリングは、記述を中心とした言語活動の知識体系 ・ 記述は、コンピュータ世界、実世界、人間世界に(同時に)関係している ・ ソフトウェアの本質的困難には、複雑性、同調性、可変性、不可視性がある ・ ソフトウェアエンジニアリングの 第1の波(農耕的)はプログラム主体、 第2の波(工業的)は組織的大量生産と大量消費、 第3の波(知働的)は問題領域中心の多様化した世界観 ・ 本質的困難への対応は、第1〜3の波ごとに異なる ・ ジャクソンは、 第1の波の時代にJSP、 第2の波の時代にJSD、 第3の波の時代に問題フレーム を提唱 Ⅱ.開発プロセス ・ 第1の波から第2の波へのシフトの契機はライフサイクル論争 ・ ウォータフォール型開発プロセスの原理的欠陥は、最初の誤りが最後にならないとわからないこと ・ スパイラルモデルは、最初が肝心ということを的確に進める ・ 繰返し型プロセスには、インクリメンタル型とエボリューショナル型がある ・ 繰返し型プロセスは、仕様化、実現、テストを細分化して同時並行的に進める ・ ソフトウェアは、知の織物である Ⅲ.アジャイルプロセス ・ 第2の波から第3の波へのシフトの契機はアジャイルプロセスの台頭 ・ 日本でのアジャイルプロセスの普及は、味見段階を終え、組織や企業での実践的取組み、知識(知働)社会への脱皮の段階にきている ・ 開発者中心の狭義のアジャイルプロセスから、ビジネスプロセスとの協調・同期をめざす広義のアジャイルプロセスへシフト ・ ソフトウェアエンジニアリングのもたらす価値は、不確実性への対応、ライフサイクルを通じての進化などが重要になってきている ・ 次世代の価値観が台頭してきている Ⅳ.知働化の取組み ・ 知働化=実行可能知識と様相という、次世代のソフトウェアづくりを目指した取組みがはじまっている ・ 従来の人働説(人月の神話)を超える知働説へ ・ ソフトウェアを使って、実世界にある問題を解くという世界観 ・ 進化型プログラムでは、プログラムがドメインと適合していく仕組みが必要 ・ ソフトウェアは、人々との作用をデザインする人工物である ・ 究極的にはディスコースをデザインすること ・ 問題フレームは知働化方法論のベースとなるものの一つ ・ 社会法則、規範、文化、意味を扱う必要がある ・ 全てが言語的事象、言葉の意味は用法によって規定されるという言語ゲーム的な世界観にシフト ・ 進化・適応では、人工物の理解のモデルと、それを修正していくプロセスを扱う必要がある ・ ビジネスと開発プロセスとの間の協調・同期にはゆるさが必要 本質的困難は、知働化のパラダイムでも、普遍的に成立している 【今後の探求】 本小論で述べた事項、とりわけ、知働化の取組みについては、未だ着手したばかりのものです。研究プログラムも哲学、経済、手法(方法論)等の総合的なアプローチが必要と考えています。現段階で、筆者が考えている探求項目は以下の通りです。 哲学 本小論で述べたクリッペンドルフの『意味論的転回』に代表されるデカルト的世界観からの脱却は、人間とソフトウェアとの間の関わりを抜本的に見直すことになります。ヴィトゲンシュタインの前期哲学(『論理的哲学論考』)から後期哲学(『哲学的探求』)へのシフトにも対応しています。 哲学のパラダイムシフトは、数学基礎論や論理学の世界へのシフトへ波及し、最終的には、産業のパラダイムシフトへと展開されていきます。 知働化のパラダイムでは、我々の日常生活の中でのソフトウェアの位置づけ、価値や意味、人間の認識の問題などについて探求していく必要があります。 経済 従来のパラダイム、第2の波の工業化の時代では、標準的な見積り手法や、コストマネジメントの手法が有効でしたが、第3の波の時代では、価値も多様化し、非金銭的な性質も扱っていく必要があります。(このあたりについては、小論『知働化経済学の射程』(2009.8.3)を参照) 筆者が重要と考えている事項は、何らかの価値に関する予測の技術です。進化・適合のプロセスといっしょに検討しなくてはならないでしょうし、実世界とソフトウェア(システム)との間の作用・反作用、フィードバックも中心的な問題となっていくと思われます。 手法(方法論) 本小論で述べた『問題フレーム』を拡張して知働化方法論を構築していくアプローチは、筆者が現段階で思いつく最善の方策と考えています。知働化方法論が適用される対象領域(ビジネスドメイン)は、今までものとは異なった世界だと思いますし、その世界での新しいフレーム(パターン)を発見していかなくてはなりません。 手法確立をしていく近道は、具体的な問題を解きながら、共通の解き方を抽出していくのがよいと考えています。 本小論は、「知働化研究会」の自由研究の一環として作成したものです。 一般の講演原稿に基づいて書き下ろしたものですので、厳密性より判りやすさを優先している箇所も多々ありますが、ご容赦ください。 基本的な考え方は、筆者著作『ソフトウェア開発は なぜ難しいのか』に書きましたので、合わせて参照していただければ幸甚です。 皆様との交流を通じて、多くの刺激をいただき、「知働化の世界観」の確立をめざして、引き続き自由研究を進めようと思います。ご協力、ご支援の程、よろしくお願いいたします。 2009年11月3日(文化の日) 大槻 繁 ■ |