石橋秀仁(zerobase)書き散らす

まじめなブログは別にあります→ja.ishibashihideto.net

ソフトウェア開発とドメイン駆動設計と概念操作と分析哲学と

「妄言」と思われそうなことですが、書き散らしてみます:

言葉の意味は文脈により変わる。エンジニアのなかには、これを「忘れた」人がいる。知らないのではない。生得的な言語能力を工学教育で矯正・忘却。典型例は、あらゆる場面で、ISO/JIS等の定義通りの意味で言葉を用いることに拘ること。この「一貫性」は、言語能力としては「後退」です。

[補足:一人で両方できなくてもいい、という考え方も支持しますが。「人間に興味ない」タイプで、計算機科学寄りのプログラミング(言い換えると、エンドユーザーやアプリケーションのような表層からはもっとも遠い深層部)に強いエンジニアの方がいるとして、それでエンジニアとしての価値を発揮できるなら、そのあり方を否定するものではありません。言語技術として「後退」だと言いましたが、それは「後退するな」という意味まで含んでいませんので。]

この「言葉の意味は文脈に依存する」ということと、ドメイン駆動設計の理念である「ユーザー、顧客、開発者が同じ言語を使う(ユビキタス言語)」ということは、何ら矛盾しない。それどころか、密接な関係にある。プロジェクトという文脈の枠を決めることで、はじめてその中での「普遍性」が生じる。

ドメイン駆動設計における「ユビキタス言語」は、すでにユビキタスに流通している言葉を抽出・記述するのではない。そんなものは少なすぎる。言葉の意味を「擦り合わせ」ていくダイナミックなプロセスなのだと考えています。(※「擦り合わせ」については昨日書いた『第1回SEMATカーネル勉強会で考えた状態指向とプロセス指向のギャップ』もご参考になるかと)

ソフトウェア開発は概念操作。ソフトウェアは記号を扱う。言葉は記号。言葉は力。言葉は概念。概念操作は哲学。ソフトウェア開発と分析哲学は近いところにあると思います。また、言葉を通じて力(権力/power)に関わるソフトウェア開発プロジェクトは、そのステークホルダーをとりまく「政治的」な活動です。