手段が構えに及ぼす影響

「Smalltakはテスティングの習慣がある。ちょっとプログラムを変更したら、ちょっと動かしてみる。というインクリメンタルなサイクルを回す。」Kent Beck

「肩凝り」に相当する英語は無いらしい。英語でそれに近い表現は、”pain on the back”であり、単純に、肉体的に痛む部位を示しているにすぎない。一方、日本語の「肩凝り」は、肩を中心とした筋肉が痛いというだけではなく、社会的、精神的なストレスの訴えをも表明している。

私たちは、言葉を使うことによって、私たちの周りの価値観や価値体系を、自立的に表現していると思っている。しかし、事実はその逆であることをソシュールは教えている。私たちが、満天の冬の星空からオリオン座を切り出すことができるように、言葉を使うことそれ自体によって、ものの見かたや考えかたが、私たちの中に強く存在するようになる。私たちは、言葉を使うことによって、すでにある価値体系や概念、そして思考体系の中に無意識的にも取り込まれているのである。

アジャイルは、しばしばプロセスのテーマとして議論されている。しかし、開発に使用する言語が、アジャイルという作法を強く誘導している(していた)ことについては、多くが語られていない。

現在、主流であるC、 C++や Javaなどの言語は(モデリング方法の如何を問わず)、その動作を検証する(つまり、人から見て意味のある動きをしているかどうかを確認する)ために、早い段階での結合が求められる。すなわち、遅延結合ができない言語である。そのために何が起こっているかというと、学習曲線の低い段階で、実装の対象である現実世界をできるだけ正確にモデル化することが求められる。さらに、固定化した現実世界のモデルからシステムモデルへ正確につなぐ技術が必要となる。というのは、現実世界をモデル化し、それを入力としてシステムモデルを作成するという変換モデルに従っているためである。

学習曲線の低い段階での結合が求められる早期結合言語では、What -Howのギャップが大きくなる。C、 C++や Javaなどの言語でテンプレートが利用されているのは、そのギャップを埋めるためである。

このような、遅延結合ができない言語の場合、工学的には、ソフトウェアというよりも、むしろ、建築やハードウェアの構築モデルに近いといえる。学習曲線の低い段階で決めなければならないという状況が、ソフトウェア開発がかかえる本質的問題として語られ、その解決方法としてアジャイルなどのメソッドが議論されているが、本質的には、使用する言語の特性が現象しているのかもしれない。

マクルーハンは、メディアそのものがメッセージであると語った。メディアの本質はコンテンツではなく、メディアそのものである。

ある社会(つまり、システム)に見られる振る舞いが、文化に誘導されるものなのか、文化が社会システムへの適用の結果なのかは、社会学での長年のテーマである。

言語に関しては、ソフトウェアサイエンスの領域であり、ソフトウェア工学では、言語の差異による振る舞いの違いに関しては、長らく議論の遡上に上ってこなかったように思える(もしくは、ハードウェア的な言語をいかに使いこなすかが価値のある行為のような思い込みもあるのかもしれない)。

 

yasushi_tanaka

有限会社ケイプラス・ソリューションズ代表,東京工業大学 特任准教授,大阪芸術大学 客員教授,奈良先端科学技術大学院大学 非常勤講師,博士(工学),CMM正式リードアセッサー(非更新 笑)

Facebook Twitter