• 検索結果がありません。

知働化の世界観 20091103 最近の更新履歴 exektlab

N/A
N/A
Protected

Academic year: 2018

シェア "知働化の世界観 20091103 最近の更新履歴 exektlab"

Copied!
37
0
0

読み込み中.... (全文を見る)

全文

(1)

EXEKT: Executable Knowledge and Texture Laboratory 1

小論

:知働化研究会 11/3/2009

文化の日特別寄稿

知働化の世界観

不確実性への対応から進化・適応プロセスによるソフトウェアづくり

大槻繁

(おおつきしげる) 株式会社一(いち)副社長

アジャイルプロセス協議会 フェロー

知働化研究会 運営リーダ

(2)

EXEKT: Executable Knowledge and Texture Laboratory 2

はじめに... 3

Ⅰ.ソフトウェアの『富の未来』... 4

【ソフトウェアエンジニアリングとは?】... 4

【でも、そこには本質的困難がある】... 6

【ソフトウェアエンジニアリング40年の歴史】... 7

【ソフトウェアの本質的困難への対応】... 9

【プログラム→システム→問題領域】... 10

Ⅱ.開発プロセス...11

【ライフサイクル論争(開発プロセスの推移)】...11

【繰返し型プロセス】... 13

【ソフトウェアは知の織物】... 15

Ⅲ.アジャイルプロセス... 16

【アジャイルソフトウェア開発マニフェスト】... 17

【アジャイルプロセス協議会のあゆみ】... 17

【狭義から広義のアジャイルプロセスへ】... 19

【価値駆動アプローチへ】... 19

【次世代の価値観】... 20

Ⅳ.知働化の取組み... 22

【知働化のコンセプト】... 22

【人働説から知働説へ】... 23

【ITシステム(抽象機械)の世界観】... 23

【E(Embedded)タイプソフトウェア】... 24

【人工物(含ソフトウェア)のデザイン】... 26

【問題フレーム】... 27

【拡張1:社会ドメイン】... 29

【拡張2:主観世界(言語ゲーム)】... 29

【拡張3:進化・適応】... 31

【ゆるさ】... 32

おわりに... 33

【本質的困難再考】... 33

【まとめ】... 34

(3)

EXEKT: Executable Knowledge and Texture Laboratory 3

はじめに

本資料は、2009年10月29日に、明治記念館で開催されたIPA Forum 2009で

の筆者の講演『ビジネス駆動の先進的なITシステム・ソフトウェアの世界観』に

基づき、講演スライドで示した図を中心に、解説としてまとめたものです。講演で

は話きれなかった事項や、周辺事情についても述べています。

表紙にも配置した歯車の図は、講演タイトルである「ビジネス駆動の先進的な

ITシステム・ソフトウェアの世界観」を直感させるために、青で示したITシステ

ム・ソフトウェア、あるいは、エンジニアリングの世界と、赤で示したビジネス、

あるいは、実世界とが、連動してかみ合うべきだということを象徴的に表現したも

のです。青と赤の色使いは、全体を通して一貫させています。

全体構成は、4部構成の起承転結スタイルになっています。前半(ⅠとⅡ)が歴

史的な潮流とソフトウェアエンジニアリングの基礎概念、後半(ⅢとⅣ)がアジャ

イルプロセスや知働化という新しい世界観の説明になっています。

Ⅰ.ソフトウェアの『富の未来』

産業、経済/社会活動の潮流から見て、ソフトウェアは知識社会の中核となっ

てきています。

Ⅱ.開発プロセス

ウォータフォール型開発プロセスの原理的欠陥を乗り越えるさまざまな取組 みがなされてきています。

Ⅲ.アジャイルプロセス

変化や不確実性への対処を標榜する軽量プロセスの実践の状況や動向につい て紹介します。

Ⅳ.知働化の取組み

実行可能知識と様相という、次世代のソフトウェアづくりを目指した取組みに

(4)

EXEKT: Executable Knowledge and Texture Laboratory 4

Ⅰ.ソフトウェアの『富の未来』

この巨大な鉄製のオブジェは、美ヶ原高原(彫刻の森)美術館のベルンハルト・ ルジンブール作『スズメを撃つのに大砲を持ち出す』です。上図は、著作権の関係

もあり、私が独自に作成したスケッチイメージです。この作品は、すばしこく飛び

回る小さなスズメを撃つのに仰々しく大砲を持ち出すということを表現しており、

我々の身近にもよくありがちな状況を表わしています。ちょっとした実験的なプロ

グラム開発に、ウォータフォール型開発プロセスを適用するといった事柄をイメー

ジできると思います。ここでの意味合いは、アジャイルプロセスや知働化の話をす

るのに、アルビン・トフラーの『第三の波』や『富の未来』を持ち出したり、仰々 しくパラダイム論を展開することを自戒的に示しています。

【ソフトウェアエンジニアリングとは?】

ソフトウェアエンジニアリングの中心的な活動というのは《記述》に関するもの

です。プログラミングというのは、まぎれも無く、プログラミング言語による記述

活動です。ソフトウェアというのは、実世界にある問題を、その要求を満たすよう

に設計され、プログラムコードとして実現されなくてはなりません。《実世界》と

いうのは、自然界、人間社会、業務世界といったソフトウェアが稼働し影響を及ぼ

すことになる対象領域です。一方、ソフトウェアを実現していく《コンピュータ世

界》があります。また、一方で、プログラムコードを記述するのは人間であり、関

数名や変数名を判りやすい綴りで記載したり、コード自身も改行や字下げ(インデ

(5)

EXEKT: Executable Knowledge and Texture Laboratory 5 いようにします。ですから、プログラムコードは《人間世界》に接しています。

ソフトウェア開発では、さまざまな言語が使われ記述活動が行われます。図は、 この状況を模式的に表わしています。

記述は、一般的に決められた言語の文法に従って記述されます。ハッカーが、直

接コードを書いてしまう場合でさえ、その記述は少なくとも二つの世界に渡ってい

ます。プログラムコードは、コンピュータに読込まれ、実行されますから、一つは 《コンピュータ世界》に接しています。

ソフトウェアエンジニアリングの難しさは、《実世界》、《コンピュータ世界》、そ

して、《人間世界》という3つの世界が複雑に絡み合っているところにあります。

例えば、ダムの制御システムを開発する場合には、ダムが建設されている自然界が

実世界です。おそらくそこは物理法則に支配された世界です。コンピュータ世界は、

レジスタ、演算処理装置、ハードディスクといった計算や情報処理に関わる世界で

す。そして、実世界の定式化、物理的な方程式によってモデリングをしたり、プロ グラミング言語でコードを書いたりするのは人間世界です。これ等3つの世界は、 もともと独立に在る世界で関係もありません。

そして、これ等3つの世界に関わる記述を中心とした言語活動に関わる知識体系

(6)

EXEKT: Executable Knowledge and Texture Laboratory 6 【でも、そこには本質的困難がある】

1975年に出版された『人月の神話(Mythical Man-Manth)』は、コンピュータソ

フトウェアの歴史の中で、長きに渡って読まれています。この分野の著作の傑作と

言っても過言ではありません。1995年にも20周年記念版として改訂版が出されま

したが、内容はほとんど変わっていません。著者のブルックスの1995年版の中で、

1975 年版からの二十年の間に初版の中で述べたことが相変わらず問題でありつづ

けていると述べています。

20周年記念版の書籍の中には1986年に発表した論文『銀の弾丸はない』も含ま

れており、この中でソフトウェアの本質的困難の話題も掲載されています。ここで

言う「本質的」とは、ソフトウェア以外には無い、ソフトウェアであるがゆえの本 当の難しさという意味です。

複雑性(complexity)とは、ソフトウェアは大きくて複雑なことそれ自身が問題な

のだということです。レゴブロックを集めて組合わせるようなわけにはいきません。

他のどのような構造物よりも複雑です。ソフトウェアの構成要素間の依存関係も規

模が大きくなるほど非線形に増大します。何千万行という規模のシステムがごろご

(7)

EXEKT: Executable Knowledge and Texture Laboratory 7 同調性(conformity)とは、ソフトウェアはソフトウェア単独で存在しているわけ

ではなく、ハードウェアやネットワーク、他のシステム、人間の行動や習慣にいた

るさまざまなものと関係を持ち続けるものであるということです。ソフトウェアの

宿命は、こういった外部に常に同調(順応)し続けなくてはならないところにあり

ます。

可変性(changeability)とは、ソフトウェアは常に変化し続けなくてはならないと

いうことです。たとえ、当初の計画通りシステムが出来上がったとしても、それを

使っているユーザはさらなる要求を思いつくでしょうし、そもそも出来上がったシ

ステムが世界を変えてしまうため、人間の認識にも影響を及ぼし、新たな要求がで

てくることになります。最近のビジネス環境の変化は激しいですし、技術進歩も速

いので、ソフトウェアもこれに常に対応していくことが要求されています。

不可視性(invisibility)とは、ソフトウェアが複雑な概念の集積であることに起因

して、それが目に見えないということです。開発プロセスや意思決定の経緯も見る

ことができませんし、単純な図面で全体が理解できるということもありません。最

近各方面での「見える化」の活動もこういった困難への一つの挑戦ともいえるでし

ょう。

【ソフトウェアエンジニアリング40年の歴史】

ソフトウェアエンジニアリングの発祥は、1968年のNATO会合といわれていま

す。以降、さまざまな方法論や手法が提唱されています。本格的にソフトウェアエ

ンジニアリングの研究が行われたのは、1970 年代からです。ソフトウェアエンジ

ニアリングの歴史を概観してみると、高々40年程度のことですが、時代背景も反

映していて興味深い徴候もみてとれます。

一方、産業論、将来の予測、未来学の分野で最も説得力があるのは、トフラー (Alvin Toffler)です。『第三の波(The Third Wave)』(1980年)では、いち早く 第 三 の 波 で あ る 情 報 化 社 会 の 到 来 を 提 唱 し ま し た 。『 富 の 未 来 (Revolutionary Wealth)』(2006年)では、第三の波を「富」の概念や規範の変化としてとらえ、金

銭経済からの脱却、「生産消費者」という消費者自らが無償の労働による生産をす

る人々が台頭してくると予測しています。

(8)

EXEKT: Executable Knowledge and Texture Laboratory 8

経済のみならず社会的活動も変化をしていくことを見抜いたところにあります。特

に、経済活動の前提となっている、生産者と消費者、ユーザとベンダといった需給

の均衡として問題を捉えること自身が古くなりつつあるということを指摘してい ます。生産消費(プロシューマ:prosumer)というのは、生産者(producer)で

あり同時に、消費者(consumer)であることを表わす造語ですが、トフラーはこ

の用語を使い『第三の波』の時に既に、知識社会でこのような非金銭経済の社会の

到来を予想していました。

筆者は、トフラーの『第三の波』になぞらえて、ソフトウェアエンジニアリング の三つの波を図のように整理してみました。

「ソフトウェアエンジニアリングの第1の波」は、農耕的とでも言うべき素朴な

プログラム中心の時代です。構造化プログラミング、構造化分析•設計法、データ フローに基づく機能を中心とした見方を中心としているのが特徴です。

「ソフトウェアエンジニアリングの第2の波」は、工業的とでも言うべき組織的

なソフトウェア開発の時代です。プログラムの総体としてのシステムが対象となり、

ものづくりの工業化と同様に大量生産/大量消費の考え方が適用され、組織的な分

業、手順化、そして、標準化の名のもとに多くの知識体系も整備されました。

「ソフトウェアエンジニアリングの第3の波」は、トフラーの言う情報化社会に

相当したものとして位置づけられます。これを我々は「知働社会」と呼んでいます。

(9)

EXEKT: Executable Knowledge and Texture Laboratory 9 様化した世界でのソフトウェアづくりが要求されるのが特徴です。

第1の波から第3の波に至る道筋は、不連続なパラダイムシフトと見なすことが

でき、そのシフトには、きっかけとなる事象が関係しています。第1の波から第2

の波へは「ライフサイクル論争」で、第2の波から第3の波へはアジャイルプロセ

スの台頭と、筆者は整理しています。

【ソフトウェアの本質的困難への対応】

ソフトウェアエンジニアリングは、前節で述べた本質的困難を解決しようとして

きましたが、そのアプローチは時代ごと、つまり、それぞれの第1 3の波ごとに

特徴があります。上図は、この状況を整理したものです。

第1の波に対応するためのアプローチは、プログラムを主対象として、良構造の

プログラムの追求、機能主体の仕様化とそれに基づく実装への展開方法が提唱され

ました。

第2の波に対応するためのアプローチは、オブジェクト指向に代表される各種開

発方法論の提唱、役割分担を行うためのインタフェースと実装とを分離するモジュ

ール化、手順や規準、多くの組織やチームが共同作業を進めるためのマネジメント

(10)

EXEKT: Executable Knowledge and Texture Laboratory 10

第3の波に対応するためのアプローチは、実世界(業務世界)やその世界での価

値を起点とした手法、ビジネスやマーケット変化に俊敏に対応していくアジャイル

プロセスなどが取組まれています。

4つの本質的困難についても、第1の波では複雑性の解決に重点が置かれており、

第2の波では同調性や不可視性の解決に重点が置かれていると思われます。第3の

波は、ビジネスやマーケット変動という外部の可変性への対応が主題となっている

といっても過言ではありません。

【プログラム→システム→問題領域】

前述のソフトウェアエンジニアリングの歴史と潮流を補足する意味で、本資料の

後半で説明する「問題フレーム」の提唱者である天才ジャクソンの業績を当てはめ

てみることにしましょう。1975 年に提唱されたジャクソン構造化プログラミング

(JSP)は第1の波に相当します。1981 年に提唱されたジャクソンシステム開発

法(JSD)は第2の波の幕開けとでも言うべき時点です。そして、2001 年に発表さ

れた「問題フレーム」は、実世界を主題にした第3の波の基本コンセプトと位置づ

(11)

EXEKT: Executable Knowledge and Texture Laboratory 11

Ⅱ.開発プロセス

1980 年 代 初 頭 に ACM(American Computer Machinery)の SEN(Software Engineering Notes)誌を中心に、「ライフサイクル論争」が起こりました。それま

で主流だったウォータフォール型の開発プロセスの原理的な欠陥が明らかになり、

それを乗り越えるさまざまな提案がなされました。この論争を契機として、第1の

波から、第2の波の時代へとパラダイムシフトが起こりました。

【ライフサイクル論争(開発プロセスの推移)】

ウォータフォール型プロセスの原理的な欠陥である、最初の意思決定の正しさが、

最後にならないと確認できないことを解決するための、論争がなされました。今で

言う、プロトタイピング、スパイラルプロセス、モデル駆動開発といった新しいプ

(12)

EXEKT: Executable Knowledge and Texture Laboratory 12

1970 年代に確立され、現在でも多くのプロジェクトで採用されている開発プロ

セスは、図に示すようなウォーターフォール型を基本としたものです。前工程で得

られた中間成果物を確定・固定化した後に、それを前提として該当する工程の作業

を行う方式です。前工程での誤りが、後工程に持ち込まれると手戻り(フィードバ

ック)を生じ、全体の工数も増加してしまうことになります。「ウォーターフォー

ル型」という名前の由来も、工程を進めるということを、滝を下ることに見立てて

いるところにあります。滝を逆に登るのが大変であることも、手戻りのコストが高

いということをうまく表しています。

仕様化、システム設計、モジュール設計、プログラミングのそれぞれの工程の正

しさを、出来上がった成果物=プログラムに照らし合わせて確認する工程がテスト

工程です。このことをよりわかりやすく表したのが、V字モデルです。工程は、図

に示す通り左から右へと進められていきます。実行可能な成果物が得られるのは、

プログラミング工程を終了した時ですから、プログラムを実行させてプログラムの

正しさを確認していくテストは、後でまとめて行うことになります。

V 字モデルによってウォータフォール型の開発プロセスを表すことによって、

旧来の開発プロセスの欠点が明らかになります。それは、最初に行った意思決定の

正しさが最後にならないとわからないことです。

プロジェクトに着手してからの要求変動に対処することは難しい問題ですが、初

段の分析や基本設計フェーズを着実に進める方法として、バリー・ベームがスパイ

ラルモデルというのを提唱しています。これは図に示すように、初段の業務分析、 要件分析、概要設計、基本設計について、計画、意思決定、分析評価を繰返しなが

ら段階的に拡充していこうという考え方です。特に、プロトタイピングやシミュレ

(13)

EXEKT: Executable Knowledge and Texture Laboratory 13

牢な基本設計に基づいて、後は、ウォータフォール型の開発プロセスで進めていく

方法です。つまり、「最初が肝心」ということを的確に進めるのがスパイラルモデ

ルです。

【繰返し型プロセス】

ウォータフォール型の開発プロセスの原理的欠陥を乗り越えるためには,仕様化

から出荷テストまでの時間を短縮することと、仕様化等の初期段階の中間成果物の

正しさをプログラムなしで確認する方法が必要になってきます。前者の解決策の一

(14)

EXEKT: Executable Knowledge and Texture Laboratory 14

節のスパイラルモデルも対策の一つですが、より高度な検証技術が必要になります。

インクリメンタル開発プロセスの利点は、顧客/ユーザの要求に関するフィード

バックを得られることの他に、実現上の見通しを早期段階で得られるところにもあ

ります。また管理上も、品質情報を随時得ることができます。製品のリリース時期

が、技術的要因以外で決定されることも多いく、常に実行可能なプログラムを確保

できるためリスク管理的な視点でも好ましいと言えます。

インクリメンタル開発プロセスでは、要求分析・定義を行った後の仕様は固定化

し、インクリメントのサイクルをくり返している時も変更しない方法です。この仕

様も、フィードバックのサイクルの中で積極的に変更・発展させてしまう方式をと

る こ と も で き こ の よ う な 開 発 プ ロ セ ス を 、「 発 展 型 開 発 プ ロ セ ス(evolutional development model)」と呼んでいます。次節で述べるアジャイルプロセスは、開

発プロセスの観点からの整理では発展型開発プロセスの一つと位置づけられます。

上記、インクリメンタル開発プロセスと発展型開発プロセスとを総称して、イテ

レーティブ(繰返し型)開発プロセスと呼ぶこともあります。これ等の開発プロセ

スは、仕様変更とその確認のサイクルを短くすることによって、同調性や可変性に

(15)

EXEKT: Executable Knowledge and Texture Laboratory 15 【ソフトウェアは知の織物】

繰返し型開発プロセスは、仕様化、実現、テストが細かいサイクルで繰り返され

ます。これはコードのみならず、その前提となる仕様、テストに関する情報、その 他さまざまな意思決定情報が同時並行的につくられていくものと見なせます。

これは、さながらソフトウェア、あるいは、ソフトウェアを開発するための様々

(16)

EXEKT: Executable Knowledge and Texture Laboratory 16

Ⅲ.アジャイルプロセス

本資料の最初に紹介したベルンハルト・ルジンブール作『スズメを撃つのに大砲を 持ち出す』に対抗して、筆者も作品を作ってみました。やはり、スズメを撃つには、

単純なパチンコがよいのです。変化に俊敏に対応できるアジャイルプロセスの象徴と

して位置づけることできるでしょう。

ソフトウェアエンジニアリングの第2の波から第3の波へのシフトの契機になっ

たのは、アジャイルプロセスの出現です。これは、社会的な背景としては、1990 年

(17)

EXEKT: Executable Knowledge and Texture Laboratory 17 【アジャイルソフトウェア開発マニフェスト】

アジャイルプロセスが脚光を浴び始めたのは、2001年頃からです。『アジャイル

ソフトウェア開発のマニフェスト』では、以下の事項を掲げています。簡潔明瞭、 判りやすいメッセージです。

図の右側にある事項より、左側にある事項の方をより重要だと考える価値観です。

アジャイルプロセスと呼ばれているものには、多くの種類がありますが、基本的な

価値観は共有していますし、従来のウォータフォール型開発へのアンチテーゼとい

う位置づけになっています。

【アジャイルプロセス協議会のあゆみ】

テクノロジックアートの長瀬氏と共同で、筆者がエクストリーム・プログラミン

グで有名なケント・ベックを招聘したのは2001年4月のことです。この時の盛り

上がりで日本XPユーザ会(通称XPJUG)が立上がりました。これが日本でアジ

ャイルプロセスが周知されたきっかけになっていると考えられます。以降、雑誌や

著作が多く出版され、急速に普及していきました。

XPのプラクティスに代表されるように、当初のアジャイルプロセスは、どちら

かと言うとエンジニアや開発者の中での実践に留まったものでした。普及していく

(18)

EXEKT: Executable Knowledge and Texture Laboratory 18

動としてのアジャイルプロセスについて検討していく意識が高まってきて、2003

年7月に組織や企業参加を前提としたアジャイルプロセス協議会を設立しました。

アジャイルプロセス協議会は、WG(ワーキンググループ)活動が主体となって

います。設立時から見積り、契約、プロジェクトマネジメント等がテーマとして設

定されていて、組織に関わる事項が採上げられているのが特徴です。

2006年頃からは、ソフトウェアセル生産、TOC(Theory of Constraint)、組込

みソフトウェア、J-SOX といったビジネスマインドや実務領域の課題に挑戦する

WG活動が活発になってきました。どの企業も、海外の書籍で紹介されているよう

なものを味見する「なんちゃってアジャイルプロセス」の時代は終了し、各企業独

自の文化にとけ込んだアジャイルプロセスを構築し始めています。

そして、今までの取組みが、どちらかと言うと第2の波へのアンチテーゼ的な位

置づけだったのに対し、本来の知識社会の価値観や世界観に基づくアプローチとし

(19)

EXEKT: Executable Knowledge and Texture Laboratory 19 【狭義から広義のアジャイルプロセスへ】

前述のアジャイルプロセスのエンジニア領域内のものから、ビジネスや経営領域

への拡大は、狭義のアジャイルから広義のアジャイルプロセスへのシフトと言えま

す。

上図の広義のアジャイルプロセスの歯車の図は、本資料の表紙にも掲げたデザイン

です。ちなみに、上図の狭義のアジャイルプロセスの歯車の図では、歯が内側に向

いたデザインになっていることに注意してください。

【価値駆動アプローチへ】

広義のアジャイルプロセスでは、ビジネスプロセスと開発プロセスとの協調・同

(20)

EXEKT: Executable Knowledge and Texture Laboratory 20

上図の3 3の《価値と解のマトリクス》は、『価値駆動アプローチ』という新

しい世界観にパラダイムシフトしていくための道標にしようと考えてみました。

「価値」とは何かというのを問い始めると哲学の世界の深みにはまってしまうの

ですが、要するに外の人々の組織・チーム・人への期待感(期待効用)だと思えば

よいでしょう。これを、ベースになるマネジメントがしっかりしているという「組

織」、ユーザに不確実性に対応するための選択肢(オプション)を与える「不確実

性」、成長して発展していく時間軸の観点からの「進化」という3つに集約してみ

ました。

「解」というのは、ここでは、主としてソフトウェアエンジニアリングの技術に

どういうものがあるかという観点から整理してみました。開発方法論、ツール、プ

ロセス等の構成要素を因数分解してみると、最終的には、「抽象化」「自動化」「モ

ジュール化」に帰着できることが判ってきました。

3つの価値と3つの解とを組み合せて、マトリクスにすると、いろいろなことが

見えてきます。伝統的なウォータフォール型、最近のアジャイルプロセス、それを

強化したアジャイル・ソフトウェアセル生産方式が、どのような価値を提供してい

るかもこのマトリクスにマッピングすることができます。

【次世代の価値観】

(21)

EXEKT: Executable Knowledge and Texture Laboratory 21 「パラダイム」という用語は、元来、科学哲学の分野で使われているもので、天

動説から地動説へのコペルニクス的転回といったように、人々の価値観や常識が覆

されるような事柄を示します。ソフトウェアの分野では、これほどの大げさなもの

ではなくても、新しい考え方の提唱や視点が変わる程度のことでもこの用語を使う

ことが多いようです。実際に上記の図でも、旧来の価値観も踏襲しつつ、新しい方

(22)

EXEKT: Executable Knowledge and Texture Laboratory 22

Ⅳ.知働化の取組み

本章では、ソフトウェアエンジニアリングの第3の波に対する本格的な取組みの

一つとして『知働化』について解説します。知働化研究会は、アジャイルプロセス

協議会のWGとして、2009年6月に設立された先端的な活動です。コンセプトリ

ーダとして山田正樹氏(メタボリクス社)、運営リーダとして筆者、現在メンバ数

23名です。

【知働化のコンセプト】

『知働化』の源流は、山田正樹氏が2003年頃から提唱してきたもので、以下の

ように集約されます。

 ソフトウェアに対する新しい見方

ソフトウェアとは, 実行可能な知識の集まりである

ソフトウェアとは, 実行可能な知識を糸や布のように紡いだもの (様相) で ある

ソフトウェアを作る/使うとは, 現実世界に関する知識を実行可能な知識の

中に埋め込む/変換する過程である

ソフトウェアを作る/使う過程では, 知識の贈与と交換が行われている

ソフトウェアを作ることと使うことの間には, 本質的な違いはない

 実行可能知識と様相/テクスチャ

様相/テクスチャとは、「動く、問題と解決の記述」のことである

「機能」を実現することから、顧客の「知識」をコンテンツ化し、実行可能

(23)

EXEKT: Executable Knowledge and Texture Laboratory 23 【人働説から知働説へ】

『知働化』のコンセプトは、かなり本格的なパラダイムシフトです。いわば、コ

ペルニクス的転回と言えます。今までのソフトウェア開発に対して、『人月からの

脱却』を標榜しつつなかなか糸口が見つけられませんでしたが、知働化はその可能

性を秘めています。考え方、手法、コンセプト、アプローチ、哲学とありとあらゆ る事項が再定義(脱構築)される新しい体系です。

【ITシステム(抽象機械)の世界観】

『知働化』へのアプローチは、各研究者によってまちまちですが、筆者はジャク ソンの『問題フレーム』をベースに展開を考えています。これについて、以降、簡 単に解説をします。

まず、「ソフトウェアを使って、実世界にある問題を解く」という立場について

(24)

EXEKT: Executable Knowledge and Texture Laboratory 24

実世界が在り、実世界と接続されたソフトウェアが稼働するコンピュータが在り、

それ等に対する要求が在ります。図はこの関係を示しています。注意してほしい事

項は、「要求」は実世界の現象を対象としているということです。「ソフトウェアの

要求」というと、コンピュータシステムを対象にした要求と誤解されがちですが、

本来は、コンピュータが接続された世界に対する要求でなくては意味がありません。

【E(Embedded)タイプソフトウェア】

マニー・レーアン(M.M.Lehmann:英国インペリアルカレッジ)が E タイプ

(Embedded-type)と呼ばれる考え方を提唱しています。英語の embedded は

「実世界に埋込まれる」という意味です。これに対し、仕様を明確にして固めてし

まい実世界の変化を受け入れない、あるいは、実世界の変化とはあまり関わりのな

いソフトウェアをS タイプ(Specifiable-type)と呼びます。さらに、問題解決型 のソフトウェアをPタイプ(Problem solving-type)と呼びます。

Eタイプは、プログラムと実世界対象は仕様のモデルになっています。もう少々

正確にいうと、実世界対象を抽象化して得られた仕様、その仕様を具現化して得ら

れたプログラムという2段階のプロセスを通じて、実世界対象とプログラムとは関

係し合っていて、それ等が正しい関係を維持できるようにすることが E タイプソ

(25)

EXEKT: Executable Knowledge and Texture Laboratory 25

仕様が、実世界とプログラムの抽象であると同時に、モデルでもあるというとこ

ろが重要です。「モデル化」というのは、あらかじめ決められた言語によって記述

するということです。つまり、言語という色眼鏡をかけて見えたものを記述すると

いうことです。色眼鏡ですから、見えないところ、つまり、捨象されてしまう事柄 もあります。ですから、モデル化には必ず抽象化が伴います。

仕様が実世界の正しいモデルになっていることを、「確認(validation)」する必要

があります。これと同時に、プログラムが仕様を満たすことを「検証(verification)」

しなくてはなりません。確認とは、記述の正しさを、実世界の状況に照らし合わせ

て人間が判断することです。実世界そのものは全て記述することができませんから、

人間が記述やプログラム動作を見て判断するしか方法がありません。これに対し、

検証とは、二つの記述の間の無矛盾生や完全生、充足可能性といったさまざまな性

質を、数学的な証明、テスト等によって判断することです。仕様が形式的な仕様記

述言語で記載された場合には、ある限られた条件下では、プログラムが仕様を満た

すことを全て証明によって判断することも可能です。

得られたプログラムと実世界との関係は、実世界でプログラムが正しく動作する

ことを「確認」することと同時に、これが「適合」していくように、実世界とプロ

グラムとが両立可能な変化をしていく必要があります。実世界はプログラムの実行

によって何らかの影響を受けますから、実世界も変化します。無論、実世界の変化

(26)

EXEKT: Executable Knowledge and Texture Laboratory 26

要がでてきます。この関係を常に保ち続けることが進化型のプログラムに要求され

ています。

【人工物(含ソフトウェア)のデザイン】

さて、ここでソフトウェアを含む「人工物(アーティファクト)」について考え

てみることにしましょう。人工物は何らかの意図をもって「デザイン」されるもの

です。最初に紹介した「スズメを撃つのに鉄砲を持ち出す」、私の自信作?「スズ

メを撃つのにはぱちんこがよい」もデザインされた人工物です。人工物は実世界に

在って、人々に影響を与え、認識も変えていきます。おそらく、読者の皆さんも、

本資料を読んだ後に、「ぱちんこ」を見た時に、今までとは違う解釈や意味を感じ

るはずです。

ソフトウェアが実世界に置かれる人工物であるということは、前述の「IT シス

テムの世界観」の図にも表わされています。ソフトウェアがもたらす実世界の振舞

いは、自然現象や装置の制御といった物理法則だけではなく、人間の社会的な規範、

文化、意味にも作用を及ぼします。

クラリス・クリッペンドルフは、『意味論的転回:デザインの新しい基礎理論』

の書籍の中で、「人間中心のデザイン」を説いています。「科学」というのは、過去

に 起 こ っ た こ と を 分 析 し て 何 か 法 則 を 見 い だ し た り 証 明 し た り す る の に 対 し て 、

「デザイン」というのは将来について意思決定していくので、ぜんぜん違う、「人

間中心」の「意味」を扱う体系でなくてはならないということを主張しています。

(27)

EXEKT: Executable Knowledge and Texture Laboratory 27 この変遷をまとめたものが、以下の図です。

初期の人工物のデザインというのは、生産者の論理で機能を提供する「製品」を

開発することで済みました。それが経済の発達により市場の論理が支配するように

なって「商品、サービス、アイデンティティ」をデザインしなくてはならなくなり ました。以降、より人間中心、意味中心にシフトしていって究極は、人工物のもた

らす意味や意義を言説や行動規範を考慮して「ディスコース」としてデザインする

時代になったというのが、クリッペンドルフの主張です。これは、ソフトウェアに

ついて当てはめてみると、第1の波が「製品」の時代、第2の波が「商品等」 「プ

ロジェクト」の時代、そして、第3の波が「ディスコース」の時代と、ゆるく対応 づけることができると思います。

【問題フレーム】

人間中心のデザインによる人工物としてのソフトウェアを、知働化のパラダイム

のもとで具体的に開発していく方法論を確立したいと考えています。その一つのア

プローチが、筆者が考えているジャクソンの『問題フレーム』をベースとしたもの

です。

(28)

EXEKT: Executable Knowledge and Texture Laboratory 28

「IT システムの世界観」で述べた、コンピュータ世界、実世界、要求との関係を

明確にすることによって、問題に集中し、これを分析・定式化していく観点を、5 つの基本的なフレーム(パターン)で提示しています。

最終的には、(抽象)機械をプログラムによって実現することになりますが、そ

の前に、実世界(問題領域)を中心にして分析を進めていきます。実世界の現象を

どのように制御したいかということが「要求」ということになります。実世界の問

題の所在を「ドメイン」で表わします。ドメインというのは、ジャクソンの『問題 フレーム』では、物理現象によって支配されるもの、装置、そして、オペレータや ユーザといった振舞いが予測できない人です。

このように込み入った実世界にある問題をソフトウェアによって解くためのフ レームが5つ提示されています。

以上が、ジャクソンの提案している『問題フレーム』の骨子ですが、筆者は、こ

れを『知働化』の世界で適用できる方法論としていくために、3つの拡張を検討し

(29)

EXEKT: Executable Knowledge and Texture Laboratory 29 【拡張1:社会ドメイン】

ジャクソンは、ドメインの種類を、「原因ドメイン」という主として物理法則に

よる因果関係に支配される世界、「従順ドメイン」という振舞いが予測できない法

則なき人間の世界、「語彙ドメイン」というデザインされるデータの世界の3つに

分類しています。筆者は、これに「社会ドメイン」という社会的コード(規範)に

よって行動の因果関係が生ずる現象領域を付加するとよいと考えています。これは、

人工物としてのソフトウェアが、人の価値や意味解釈に影響を及ぼすことを意図し

たデザインの対象となる領域です。

【拡張2:主観世界(言語ゲーム)】

クリッペンドルフの『意味論的展開』での基底にある哲学は、ヴィトゲンシュタ

インの『言語ゲーム』です。ヴィトゲンシュタインは、20 世紀初頭に活躍した哲

学者です。最終的に到達したものが『言語ゲーム』です。これは、従来の客観的、

絶対的な世界観を否定し、「物の世界」でも「事の世界」でもない、全ては「言語

的事象の世界」であるという世界観です。言葉の意味も、何か絶対的なものを指示

(30)

EXEKT: Executable Knowledge and Texture Laboratory 30

この考え方は、知働化のパラダイムに旨く適合しています。人、それぞれがもの

の見方が異なり、その解釈や意味も異なります、この主観的なものを、社会の中で

相互にやりとりしていくためには、『言語ゲーム』をベースにしたとらえ方をしな

くてはなりません。

一つの言語や概念が通じる範囲を、ここでは「ディスコース」としてひとまとま

りに考えるようにするとよいと考えています。すなわち、ディスコースとは、以下

のように定義されます。

 ディスコースは、1つ以上のドメインから構成される

 ディスコースは、一連の言語行為(理解や使用)を規定する言語ゲーム

の範囲

例えば、信号機をコンピュータによって制御して、交通を制御する場合、信号機

の装置へのパルスについては、装置のドメインの物理法則を考慮することで済みま

すが、赤は止まれで、青は進め、青の点滅は注意して進めといった事項は、社会的

な規約の問題で、これを規定する範囲をディスコースとして示しておくとデザイン

(31)

EXEKT: Executable Knowledge and Texture Laboratory 31 【拡張3:進化・適応】

ソフトウェアやシステムが実世界に置かれ、環境に適応していくものと見なすの

が「進化型ソフトウェア」です。ソフトウェアやシステムの場合には、突然変異と

いうより意図されたコードによるものですが、実世界とのやりとり、環境に適応し

ていくところをデザインする必要があります。

得られたプログラムと実世界との関係は、実世界でプログラムが正しく動作する

ことを「確認」することと同時に、これが「適合」していくように、実世界とプロ

グラムとが両立可能な変化をしていく必要があります。実世界はプログラムの実行

によって何らかの影響を受けますから、実世界も変化します。無論、実世界の変化

によって、プログラムが何らかの不都合を生じる場合には、それを修正していく必

要がでてきます。この関係を常に保ち続けることが進化型のプログラムに要求され

ていることです。

一方、人工物としてのソフトウェアは、ユーザの理解の仕方によって、ユーザの

行為や人工物から受ける感覚に影響を及ぼします。この理解の構造は、時間がたっ

たり、ユーザの置かれている環境によって変化していきます。その変化によって、

新たな、人工物と人とのインタフェースの不適合を起こしていきます。これを、プ

(32)

EXEKT: Executable Knowledge and Texture Laboratory 32 れています。

【ゆるさ】

プログラムとドメインとの適合問題というのは、「広義のアジャイルプロセス」

で述べた、開発プロセスとビジネスプロセスとの関係に対応しています。開発プロ

セスとビジネスプロセスを、固く、厳密に噛み合わせてしまうと、融通のきかない

固いシステムになってしまいます。そこには、ある程度の「ゆるさ」が要求される と考えています。

最近のクラウドコンピューティング等でも採上げられている領域では、ゆるさが

(33)

EXEKT: Executable Knowledge and Texture Laboratory 33

おわりに

【本質的困難再考】

ソフトウェアのソフトウェアであるがゆえの難しさが、知働化パラダイムの主題

の一つですが、上記で述べたようにソフトウェアを取巻く世界を含めて考えていか

なくてはなりません。ここでサービス、システム、知識といったものを含めて「困 難」というものを再定義しておきましょう。

「複雑性」とは、大きくて複雑なことそれ自身が問題なのだということです。構

成要素間の依存関係も規模が大きくなるほど非線形に増大します。自己組織化、創

発、ゆらぎといった振舞いもあり、あたかも生命的システムのようなものです。

「同調性」とは、ハードウェアやネットワーク、他のシステム、人間の行動や習

慣にいたるさまざまなものと関係を持ち続けるものであるということです。外部に

対し、常に影響を及ぼし、かつ逆に、常に同調(順応)し続けるものです。あたか も社会システムのようなものです。

「可変性」とは、常に変化し、進化し続けるものです。たとえ、当初の計画通り

出来上がったとしても、さらなる要求を思いつくでしょうし、そもそも出来上がっ

たものが世界を変えてしまうため、人間の認識にも影響を及ぼし、新たな要求がで

てくることになります。

「不可視性」とは、複雑な概念の集積であることに起因して、それが目に見えな

いということです。開発プロセスや意思決定の経緯も見ることができませんし、単

純な図面で全体が理解できるということもありません。そもそも記述されない事項、

(34)

EXEKT: Executable Knowledge and Texture Laboratory 34 【まとめ】

本資料で述べた事項の要約を以下に示しておきます。

Ⅰ.ソフトウェアの『富の未来』

・ソフトウェアエンジニアリングは、記述を中心とした言語活動の知識体系 ・記述は、コンピュータ世界、実世界、人間世界に(同時に)関係している ・ソフトウェアの本質的困難には、複雑性、同調性、可変性、不可視性がある ・ソフトウェアエンジニアリングの

第1の波(農耕的)はプログラム主体、

第2の波(工業的)は組織的大量生産と大量消費、

第3の波(知働的)は問題領域中心の多様化した世界観

・本質的困難への対応は、第1 3の波ごとに異なる ・ジャクソンは、

第1の波の時代にJSP、

第2の波の時代にJSD、

第3の波の時代に問題フレーム

を提唱

Ⅱ.開発プロセス

・第1の波から第2の波へのシフトの契機はライフサイクル論争

・ウォータフォール型開発プロセスの原理的欠陥は、最初の誤りが最後にならな いとわからないこと

・スパイラルモデルは、最初が肝心ということを的確に進める

(35)

EXEKT: Executable Knowledge and Texture Laboratory 35 Ⅲ.アジャイルプロセス

・第2の波から第3の波へのシフトの契機はアジャイルプロセスの台頭

・日本でのアジャイルプロセスの普及は、味見段階を終え、組織や企業での実践 的取組み、知識(知働)社会への脱皮の段階にきている

・開発者中心の狭義のアジャイルプロセスから、ビジネスプロセスとの協調・同 期をめざす広義のアジャイルプロセスへシフト

・ソフトウェアエンジニアリングのもたらす価値は、不確実性への対応、ライフ サイクルを通じての進化などが重要になってきている

・次世代の価値観が台頭してきている

Ⅳ.知働化の取組み

・知働化=実行可能知識と様相という、次世代のソフトウェアづくりを目指した 取組みがはじまっている

・従来の人働説(人月の神話)を超える知働説へ

・ソフトウェアを使って、実世界にある問題を解くという世界観

・進化型プログラムでは、プログラムがドメインと適合していく仕組みが必要 ・ソフトウェアは、人々との作用をデザインする人工物である

・究極的にはディスコースをデザインすること

・問題フレームは知働化方法論のベースとなるものの一つ ・社会法則、規範、文化、意味を扱う必要がある

・全てが言語的事象、言葉の意味は用法によって規定されるという言語ゲーム的 な世界観にシフト

・進化・適応では、人工物の理解のモデルと、それを修正していくプロセスを扱 う必要がある

・ビジネスと開発プロセスとの間の協調・同期にはゆるさが必要

(36)

EXEKT: Executable Knowledge and Texture Laboratory 36 【今後の探求】

本資料で述べた事項、とりわけ、知働化の取組みについては、未だ着手したばか

りのものです。研究プログラムも哲学、経済、手法(方法論)等の総合的なアプロ

ーチが必要と考えています。現段階で、筆者が考えている探求項目は以下の通りで

す。

哲学

本資料で述べたクリッペンドルフの『意味論的転回』に代表されるデカルト的世

界観からの脱却は、人間とソフトウェアとの間の関わりを抜本的に見直すことにな

ります。ヴィトゲンシュタインの前期哲学(『論理的哲学論考』)から後期哲学(『哲

学的探求』)へのシフトにも対応しています。

哲学のパラダイムシフトは、数学基礎論や論理学の世界へのシフトへ波及し、最

終的には、産業のパラダイムシフトへと展開されていきます。

知働化のパラダイムでは、我々の日常生活の中でのソフトウェアの位置づけ、価

値や意味、人間の認識の問題などについて探求していく必要があります。

経済

従来のパラダイム、第2の波の工業化の時代では、標準的な見積り手法や、コス

トマネジメントの手法が有効でしたが、第3の波の時代では、価値も多様化し、非

金銭的な性質も扱っていく必要があります。(このあたりについては、小論『知働

化経済学の射程』(2009.8.3)を参照)

筆者が重要と考えている事項は、何らかの価値に関する予測の技術です。進化・

適合のプロセスといっしょに検討しなくてはならないでしょうし、実世界とソフト

ウェア(システム)との間の作用・反作用、フィードバックも中心的な問題となっ ていくと思われます。

手法(方法論)

本資料で述べた『問題フレーム』を拡張して知働化方法論を構築していくアプロ

(37)

EXEKT: Executable Knowledge and Texture Laboratory 37

される対象領域(ビジネスドメイン)は、今までのものとは異なった世界だと思い

ますし、その世界での新しいフレーム(パターン)を発見していかなくてはなりま

せん。

手法確立をしていく近道は、具体的な問題を解きながら、共通の解き方を抽出し

ていくのがよいと考えています。

本資料は、「知働化研究会」の自由研究の一環として作成したものです。 一般の

講演原稿に基づいて書き下ろしたものですので、厳密性より判りやすさを優先して

いる箇所も多々ありますが、ご容赦ください。

基本的な考え方は、筆者著作『ソフトウェア開発は なぜ難しいのか』に書きま

したので、合わせて参照していただければ幸甚です。

皆様との交流を通じて、多くの刺激をいただき、「知働化の世界観」の確立をめ

ざして、引き続き自由研究を進めようと思います。ご協力、ご支援の程、よろしく お願いいたします。

2009年11月3日(文化の日)

大槻 繁

参照

関連したドキュメント

表-1 研究視点 1.景観素材・資源の管理利用 2.自然景観への影響把握 3.景観保護の意味を明示 4.歴史的景観の保存

 回報に述べた実験成績より,カタラーゼの不 能働化過程は少なくともその一部は可三等であ

社会システムの変革 ……… P56 政策11 区市町村との連携強化 ……… P57 政策12 都庁の率先行動 ……… P57 政策13 世界諸都市等との連携強化 ……… P58

第20回 4月 知っておきたい働くときの基礎知識① 11名 第21回 5月 知っておきたい働くときの基礎知識② 11名 第22回 6月

問 11.雇用されている会社から契約期間、労働時間、休日、賃金などの条件が示された

【サンプル】厚⽣労働省 労働条件通知書 様式

c マルチ レスポンス(多項目選択質問)集計 勤労者本人が自分の定年退職にそなえて行うべきも

タッチON/OFF判定 CinX Data Registerの更新 Result Data 1/2 Registerの更新 Error Status Registerの更新 Error Status Channel 1/2 Registerの更新 (X=0,1,…,15).