dotkuwaの日記: アジリティについての別表現 1
日記 by
dotkuwa
アジャイルなんかで、「開発工程を繰り返せ」と言う
ことを言いますが、
自然言語⇒プログラム言語の一方向作用でなく、
自然言語⇔プログラム言語の相互作用である様に
工程を設計すれば(プログラム工程の下流となる
自然言語工程を作れば)十分で、
上位の工程から下位の工程までフルフルで繰り返す
のはむしろ過剰で、無用にヴォラリティを増やすだけ
に見えます。
2回目、3回目の繰り返しは、あくまで1回目のものの
下位部分をねらうに過ぎないとするだけで十分だと
思います。
ヴォラリティについて (スコア:1)
2つの言語ですが、
・自然言語は、開いた発展する(否が応でも時間とともに発展してしまう)
・プログラム言語は、閉じて発展しない(ここに有る物がすべてで収束する)
という違いがあります。
この違いは、
・自然言語は「何々全て」を言えない。プログラム言語は容易に言える。
という違いを生み出します。
(日記「オタ芸」で、簡単に「全計算」なんて事を言えたのも、自然言語で書く
基本設計の次工程に、プログラム言語で書くデータ中心のプログラミング工程を
持ってくると想定した為。)
プログラミング工程の上流である、基本設計工程では
・もれなく要件を列挙する
・(言い方は悪いですが)ぼやかして書く(「このCSVが」とかはまずい)
という特徴が有りますが、この用途には自然言語が好適です。
ですが、基本設計工程の次工程は必然的に“収束の工程”となるべきで、
どんな手法でもその点については争いが無いと思いますが、その工程を
自然言語で行う、詳細設計工程はこの時点では不適切だと思います。
さて、ヴォラリティですが、
反復して
・自然言語工程→プログラム言語工程
を行う際、2通りやり方があり、
1.2巡目以降の自然言語工程はプログラム言語工程の下流では無く、
プログラム言語工程で一応の収束を観た結果に拘束されず、再度
自然言語工程で要件を列挙する。
2.2巡目以降の自然言語工程はプログラム言語工程の下流である
とし、収束結果を踏まえ、その列挙された項目(インターフェースや
パッケージなど)単位に、要件を列挙する。
で、どう考えても、1.だとヴォラリティが高すぎる(いわゆるちゃぶ台返し
になる)と思います。せっかく(「全計算」など)「何々全て」を考察できる
工程を経たのに、2巡目の世界でも再度やり直すのは、発注側にあまりに有利
(もちろんいいなりにお金が出るなら受注側にあまりに有利)です。