実行可能知識と様相研究所
ソフトウェアを実行可能な知識が紡ぐ様相 (texture) として考える
実行可能知識と様相
ここでは, 「ソフトウェア」を従来の一般的な考え方とは少し違う視点から見直してみます. といっても, まったく新しいソフトウェア技術を導入したり, 開発コストが百分の一になるなどと言うことを主張したいわけではありません. 「ソフトウェア」に対する見方を変えたいのです.
要素技術の8割方はもう揃っています. 見方を変えることによって変わるのは, おもに今のソフトウェアの作り方や使い方, 社会やビジネスにおけるソフトウェアの位置付けでしょう. ソフトウェア産業の構造も変わらざるを得ないかもしれません. いや, むしろソフトウェア産業の構造を変えたいのです. 今やソフトウェアはあまりに面白くない, イノベーティブ/クリエイティブでないものに成り下がってしまっていますから.
ソフトウェアとは「機能」の集合であり, どんな機能が必要かは「要求」に寄って決定される, というのが, ソフトウェアに対する普通の見方ですね. それに対して我々は次のように考えます.
- ソフトウェアとは, 実行可能な知識の集まりである
- ソフトウェアとは, 実行可能な知識を糸や布のように紡いだもの (様相) である
- ソフトウェアを作る/使うとは, 現実世界に関する知識を実行可能な知識の中に埋め込む/変換する過程である
- ソフトウェアを作る/使う過程では, 知識の贈与と交換が行われている
- ソフトウェアを作ることと使うことの間には, 本質的な違いはない
従来のソフトウェアの考え方とはずいぶん違いますね. ソフトウェアをこのように見ると何がどう変わるのでしょうか.
今, ソフトウェアは
- 顧客やユーザが「要求」を定義し
- 開発組織がそれを元に「機能」を実現して納品する
- 納品されたソフトウェアの機能をユーザが使う
- 使えなくなったら「保守」や「更新」を行う
というライフサイクルを前提として, 開発と利用が行われています. そしてこのライフサイクルが, ユーザにとっても開発者にとっても不利益をもたらしています. つまり
- 顧客やユーザは, いきなり「よい」要求を定義したり開発したりできない
- 開発者は, 要求だけではなく問題領域に関するさまざまな背景知を必要とする
- それにも関わらず, 短期間で要求を定義し, それに基づいてソフトウェアを作り, 最終製品として納品しなければならない
- ソフトウェアを使い続けることによって変化し, 成長するが, 誰もその面倒を見ることができない, もしくはコストがかかりすぎる
- ソフトウェアの更新によって, せっかく蓄積された知識がリセットされてしまう
ソフトウェアは知識の固まりであり, (レゴブロックを組み合わせるのではなく) 知識を編み上げたものと考えれば, このようなやり方がうまく行かないのは明らかですね.
我々の立場からすれば, ソフトウェアのライフサイクルは例えば次のようになります.
- 開発者は問題領域の知識を編み上げて, それを見たり触ったり動かしたりできるようにする (様相)
- 顧客やユーザは, 知識を見たり触ったり動かしたりすることによって必要な機能を見出す
- 必要な機能の一部は開発者が作り, 一部は自然に提供され, 一部はユーザが自分で作り込む
- ユーザは, 開発者やソフトウェアの助けを借りて知識を紡ぎ続ける
- 開発者は, 知識の質を維持したり, 新しい, あるいは見落としていた知識を拾い集めて, 様相に織り込んでいく
この考え方では, ソフトウェアは機能/機械と言うよりは, コンテンツです. ソフトウェアを作ると言うことは (一部に機能の実現ももちろん含まれますが) 顧客やユーザと一緒にコンテンツを作り, コンテンツを利用する環境を提供することになります. 「ソフトウェア開発」の意味が, 顧客やユーザにとっても, 開発組織にとっても大きく変わってくるのです.
この実行可能知識と様相研究所では, このようなビジョンのもと, それを裏付ける理論や事例, 実現のための技術や方法論を少しずつ作り上げていきます.
-
言語, 認知, 領域からのソフトウェア構築 - Grailsをベースとして
- 2010年4月19日, QCon Tokyo 2010での講演
-
実行可能知識を織る
- 実行可能な知識をどうやって織り上げていくのか. その実例を順を追って見ていきます.
-
機能はただである
- 2008年6月25日~27日, ソフトウェア・シンポジウム2008 モデリング・ワークショップにポジション・ペーパ「機能はただである」をもって参加しました.
-
機能はただである (ポジション・ペーパ)
-
Phantasmagoric Executable Knowledge
- @ITに約3年に渉って連載した「変幻する実行可能知識」索引です. 実行可能知識についてさまざまな側面からエッセイ風に書いています.
-
実行可能知識チュートリアル - 入門編
- ここでは「実行可能知識」とは何かを, オセロ・ゲームを例題として解説します. 本来は実行可能知識はもう少し複雑で規模の大きい問題を念頭に置いているので, 「何でオセロでこんな大げさな!?」と思うかもしれませんが, 入門編チュートリアルとしてお読みいただければと思います.
-
実行可能知識とは (ハンドアウト)
- 2006年7月20日, 某研究会でプレゼンテーションした, 実行可能知識に関するハンドアウトです
-
知識創造とソフトウェア開発
- 2003年4月15日, Software People誌 Vol. 2に掲載された記事の原稿を, 技術評論社のご厚意により掲載しています.

