雑記帳または /dev/null

ソフトウェア開発、哲学、プログラミング、その他雑多なものもののメモ

設計のメタ性について

主題

「設計がメタ性が持つ」というとき、そのメタ性は何に対するどのようなメタ性なのか。換言すれば、「設計」は何に対してどういった形で「メタ」としての地位を持つのか。

「設計」と定型作業について、「設計」からメタ性が失われた時、それは定形作業と化し、もはや「設計」ではないという。この関係性および変化のプロセスは、どのように説明できるだろうか。

この問いについて、G.ベイトソンの議論を援用しながら検討してみる。

前提

ここで言う「設計」は、ソフトウェア開発の文脈で語られる「設計」の範囲に、一旦限定する。 議論の内容自体は、およそあらゆる人工物の「設計」活動一般に適用できるだろうと目論んではいるが、今の所「設計」という活動について筆者自身が知見を持っているのがソフトウェアの領域に限られており、一般に適用できているか検証する能力が筆者に無い。そのため、ここではソフトウェアの開発プロセスにおける「設計」についての検討として、一旦範囲を狭めている。

ベイトソンによる論理階型のはしご

ここでは、『精神と自然』においてG.ベイトソンが提示しているフォーム-プロセスという構造を参照してみる。というのも、ベイトソンが『精神と自然』とで論じているフォーム-プロセスという形式が、設計のメタ性を検討する上で良く適合しそうに思われるからだ。

『精神と自然』においてベイトソンは、プロセスの観察とフォームの形成を繰り返して異なる論理レベル(論理階型)へと上がることを繰り返す構造、「フォームとプロセスを行き来する弁証法的ジグザグ梯子という形」という構造およびそれに基づく分析を提唱した。この構造を、ベイトソンは下のように図示している。

G.ベイトソンにおけるフォームとプロセスの図(佐藤良明 訳, 岩波文庫, p.360)
G.ベイトソンにおけるフォームとプロセスの図(佐藤良明 訳, 岩波文庫, p.360)

この図式の基となったニューギニアのイアトムル族文化研究において、ベイトソンは以下のような分析を行っている。

  1. 部族の行動を記述(プロセスの観察)
  2. 部族における男・女それぞれの類型化(フォームの形成)
  3. 男女がどのように相互作用するか、男たちの行動が女たちの行動をどう規定し、またその逆がどう起こるかについての観察(プロセスの観察)
  4. 対称型-相補型という相互作用の類型化(フォームの形成)
  5. 対称型-相補型という異なるプロセスがどのように相互作用するかの観察(プロセスの観察)
  6. 相補的な主題動詞が結びつくケースについて、「末端連結」というラベルを導入(フォームの形成)

プロセスの観察を通じてそこに様々な類型・分類が見いだされ、その類型・分類はフォームとして一定の形式・名称を与えられる。 さらにそのフォーム同士が相互作用する仕方についてさらなる観察と類型・分類が行われ、より高次のフォームが形成される。より高次な論理レベル(論理階型)へ、すなわちよりメタな次元へと上がっていく分析パラダイムとして、このような「ジグザグ梯子」をベイトソンは考案・提唱した1

この「ジグザグ梯子」についてベイトソンは次のように語る2

ここでの論点は、右のパラダイム(引用注:「ジグザグ梯子」のこと)の有効性が、私という特定の精神による特定の理論の成立過程に限られるものではないということだ。 (中略) 加えて私は知覚自体、このパラダイムに従う性質のものだと考える。学習のモデルも、この種のジグザグ型パラダイムの上に築くべきだろうし、社会生活においても、愛と結婚、教育と地位との関係が、やはり同種のパラダイムに必然的に従うと思われる。進化に目を向けても、体細胞的変化と系統発生的変化との間や、ランダムなものと選択されたものとの間に同様の関係があり、さらに変異(バリエーション)と種分化(スペシエーション)、連続と非連続、数と量といった抽象的レベルにおいても、同様の関係が広がっているようである。

ベイトソンはこのパラダイムをイアトムル族の文化研究という過程で見出した。しかし、このパラダイムベイトソン個人に依存するものでも、文化研究という特定理論に依存するものでもないとしている。むしろ、知覚・学習・社会生活・進化、さらに抽象概念においてすらも、同種のパラダイムが成立しているだろうとベイトソンは言う。 筆者の目から見た時、設計という活動もまた、このパラダイムに従う形で説明できるように思える。そしてその説明過程で、掲題である設計の「メタ性」についても具体化できるのではないかと思う。次章では、実際にこのパラダイムに基づいて設計を分析してみる。

設計が「メタ」となる対象について

こうしたベイトソンの「ジグザグ梯子」を道具として、設計が何に対するどのような「メタ」として位置付けられるのかを考えてみる。さしあたって、「設計」と「設計する」の区別をしておくと良いだろう。ここでは以下のように定義する。

  • 「設計」 = 名詞。プロセスから抽出された類型・分類。
  • 「設計する」 = 動詞。名詞としての「設計」を形づくる過程。類型化・分類化。

「設計する」を実践する時、私達は様々な要素を抽出し、類型化・分類化する。そうして得られた分類・類型は、時にパッケージという形で、時にクラスという形で、時に代数的データ型という形で、ソフトウェア上に表現される。この過程を経て、私達はソフトウェアの「設計」を形成する。すなわち、「設計」とは「設計する」という類型化・分類化を通じて得られた形式、すなわちフォームである。

「設計」がフォームであるとするなら、このフォームを形成するために観察されるべき個別のプロセスが存在するはずである。「設計する」はこの意味におけるプロセスではない点に注意。「設計する」は、プロセスの観察からフォームとしての「設計」を形成する過程であって、ベイトソンの「ジグザグ梯子」におけるプロセスの位置にはいない。むしろ、プロセスからフォームを導く矢印が「設計する」と照応すると考えた方が良いだろう。

では、ソフトウェア開発において「ジグザグ梯子」内のプロセスに該当するものは何か。ユースケース、ストーリー、業務フローなどといったものが考えられるだろう。実際、ソフトウェア設計において設計は常にユースケース、ストーリー、業務フローといった何某かの行動・活動(=プロセス)を観察することから始まる。これら個別のプロセスを観察し、各プロセスで取り扱われる要素を抽出し、抽出した要素を類型化・分類化してモデル化する。こうした過程を、すなわち「設計する」ことを経て、「設計」というフォームが獲得される[^2]。

ユースケース、ストーリー、業務フロー、etc...といったプロセスの類型化・分類化を、すなわち「設計する」ことを通じて、「設計」というフォームを得る。この関係をベイトソンの図に当てはめると、以下のようになるだろう。

ユースケース、ストーリー、業務フローといったプロセスに対して、「設計する」という行為を通じた類型化・分類化がなされることで、フォームとしての「設計」が形成される
フォームとしての設計と、プロセスとしてのユースケース、ストーリー、業務フロー

こうしたプロセスとフォームの関係、すなわち、あるプロセスの観察からあるフォームを導出するという関係性について、ベイトソンは「論理階系の梯子を上がる」と表現している。これは、「よりメタな次元に移行する」とも言いかええて良いだろう。この図に基づくなら、「設計」はユースケース、ストーリー、業務フローといった有る種のプロセス群に対して、一段メタの地位に立っていることになる。そしてここで言う「メタ性」は、個個別別のプロセスについてその知識や構造を類型化・分類化したものとしての「メタ性」となる。例えて言うなら、秋田犬・プードル・ドーベルマンといった個に対する「犬」という類の関係と同じあるいは近しい、となるだろうか。

以上を以て、一つ目の問いに対する結論を定める。

「設計がメタ性が持つ」というとき、そのメタ性は何に対するメタ性なのか。換言すれば、「設計」は何に対して「メタ」としての地位を持つのか。

設計のメタ性は、ユースケース、ストーリー、業務フローといったプロセス群に対するメタ性である。またこのメタ性は、個(プロセス)に対する類(フォーム)として成立する。

設計からのメタ性喪失と、定形作業について

「設計からメタ性が失われると、定型作業になる」という命題について、これはいかなる現象なのか。メタ性の喪失によって、どのように「設計」が定形作業へと変化するのか。この問についても、引続きベイトソンの「ジグザグ梯子」を用いて分析してみたい。

第一に、定型作業について検討してみる。先のフォーム-プロセスで構成される「ジグザグ梯子」において、これはどのように位置付けられるか。ここで言う定型作業とは、「設計からメタ性が失われたもの」として定められている。すなわち定型作業 = メタ性を伴わないものであるのだから、定形作業はフォームではありえない。フォームは常にプロセスに対する類型・分類として、すなわちメタとして位置付くからだ。ならば、定型作業が立ちうる位置はプロセスしか残っていない。

ここで改めて、「設計」「設計する」の区別に基づいて話を進めたい。「設計」は名詞であり、フォームである。定型作業は一つのプロセスである。これを「設計からメタ性が失われると定型作業になる」へ字面通りに当てはめるなら、「設計」というフォームからメタ性が失われるとプロセスになる。すなわち、フォームがプロセスへ変化するということになる。しかし、このような変化は実際に可能なのだろうか。下表は、プロセスとフォームの特徴を並べたものである。

静的か動的か 個に関するか類に関するか
フォーム 静的 類に関する
プロセス 動的 個に関する

メタ性の喪失によって フォーム → プロセス という変化が生じるのだとすると、メタ性は動と静を、個と類を相互に変換する能力を持っている、ということにならねばならない。しかしこのような「メタ性」は、ここまで語ってきたメタ性とは異なっている。ここまでのメタ性は「個に対する類型・分類」としてのものであって、現象を変換する類のものではなかった。プロセスを分類・類型によってフォームに変化させるのではなく、あくまで、プロセスを類型化・分類化することでフォームを形成するものだった。フォームをプロセスへと変化せしめるような「メタ性」も存在するかもしれないが、それは少なくともここで扱っているものではない。

ここで二つの選択肢が考えられる。一つは、「設計からメタ性が失われると、定形作業になる」という時のメタ性は、ここまで議論してきたメタ性とは全く別種のものであるとして、新たな「メタ性」を検討する道。もう一つは、あくまでここまで扱ってきたメタ性と一致するものであるとして、元のテキストを再解釈する道。今回は、後者の方向で検討を継続してみる。

「メタ性」についての議論が整合するように元のテキストを再解釈するとして、どのような解釈になるか。元テキストの"設計"が、フォームとしての「設計」ではなく「設計する」という過程の方を、すなわち プロセスからフォームが形成される過程の方を指していると読み替えれば、成立するのではないだろうか。

「設計する」という過程は、プロセス類型化・分類化を通じてフォームというメタ(類型・分類)を形成する過程である。この過程からメタ性が、すなわち個に対する類という関係が抹消された時、何が起きるか。第一に、「設計する」という過程が個から類を作り出す過程、すなわち「個に対する類という関係」を構築するものである以上、「設計する」という過程自体が成立しなくなる。「設計する」という過程が喪失したならば、プロセスからフォームとしての「設計」を形成するルートも存在しなくなるのだから、「設計」もまた成立し得ない。結果残るのはプロセスだけ、ということになる。こうして残ったプロセスをいわゆる「定型作業(パターンが決まっている、変化が少ない作業)」とするなら、「設計(をすること)からメタ性が失われると、定型作業になる」が導出できるだろう3

以上より、「設計からメタ性が失われると定型作業となる」について、次のような現象であると説明できるだろう。 設計からメタ性すなわち「個に対する類」という関係性が失われた時、メタ(類型・分類)としての設計自体および設計を形成する過程も消失する。そのため、メタ性の喪失の後に残るのはプロセス ≒ 定型作業のみである。

まとめ

  • 設計のメタ性は、ユースケース、業務フロー、ストーリーといった各種プロセスに対するメタとして現れる。
  • ここで言うメタ性は、個別プロセスに対する類型・分類として発揮される
  • 「設計する」という過程からメタ性(類型・分類)が喪失した時、「設計する」「設計」双方が失われ、後には個別のプロセス(定型作業)のみが残る

参考資料


  1. G.ベイトソン『精神と自然』p.356-361

  2. このように考えるなら、ユースケース、ストーリー、業務フローは設計の制約や前提条件を与えるのみならず、「設計する」という行為や「設計」というフォームの成立条件としても機能することになる。すると、ユースケース、ストーリー、業務フローといったプロセスが定義されていない場合に設計が上手くいかないのは、「制約や前提条件が少なく、自由過ぎるから上手く行かない」というだけでなく、そもそもの成立条件が欠落しているが故である、とまで言えるだろうか。すなわち、プロセス定義の不備による影響は「設計が難しくなる」という程度に留まらず、「設計する」という行為も「設計」というフォームもそもそも成立不可能な事態である、とまで主張することはできるだろうか。

  3. ただし、こうして残ったプロセスが「定型」である保証は、少なくともこの議論においては登場しなかったし、保証を組み込めるようにも今の所思えない。実際のところ、「設計からメタ性が失われる」ことによって現れてくるのは、未分類な個別のプロセス・手続き群というところが精々という気もする。それらが定型か非定型かは定かではなく、かつ類型も分類もされていないどこまでも"個別"なものとして発生してくる。