ライブモデリングをご存じだろうか。モデラーが前に立ち、出席者からいきなり出される業務上の課題を聞き、「それならこういう業務処理をすればいいのでは」と答え、データモデルを60分くらいで書き上げるイベントである。
さらに30分ほど延長し、ローコード開発ツールを使ってモデルから動く業務システムを生成してしまう場合もある。データモデルさえしっかりしていれば、ツールを使って短時間で実装ができてしまう(データモデルはドメイン駆動設計の文脈でいうドメインモデルに相当する)。
問題はしっかりしたデータモデルをどう作る、あるいは創るかである。できる人はどうやっているのだろう。本連載を担当している「IT勉強宴会」と呼ぶコミュニティーで、データモデラーの渡辺幸三氏によるライブモデリングを数回体験したところ、強い印象を受けた。
その場でお題を聞いた渡辺氏は、「こういうことですね」と問いかけるような、独り言のような口調で話をしながら、ホワイトボードにモデルを手書きしていく。当初はモデルの「断片」が書かれ、いつの間にかお題に応える業務システムのモデル「全体」が完成する。
書いてはちょっと消し、書いてはちょっと消しという流れで進むが、渡辺氏が道に迷っている感じはしない。彼の所作は、まるで夏目漱石が書いた『夢十夜』の第六夜に出てくる、運慶が木の中に埋まっている仁王を鑿(のみ)と槌(つち)で掘り出すようだった。
漱石は「あれは眉(まみえ)や鼻を鑿(のみ)で作るんぢやない。あの通りの眉(まみえ)や鼻が木の中に埋まつているのを、鑿(のみ)と槌(つち)の力で掘り出す迄(まで)だ。丸で土の中から石を掘り出す様なものだから決して間違ふ筈はない」と書いた。渡辺氏の場合もホワイドボードからデータモデルの「全体」を掘り出したように見えた。
筆者はオープンソースソフトウエアを開発している。プログラムを書く中で、全体を掘り出す感覚をたびたび経験してきた。例を挙げると、2015年からBPMN2ワークフローエンジンWorkflowerの開発を始めた際、ひとまず断片から書き始めると、エンジンの中核となる実装モデルが半ば自動的にできてくる感覚があった。あらかじめ明確なモデルが見えていたわけではない。
この感覚は何なのだろう。2年ほど前、『暗黙知の次元』(高橋勇夫訳、筑摩書房、2003)という本を読み、分かったと思った。暗黙知があるから、設計者やプログラマーは全体を掘り出せる。
本稿では『暗黙知の次元』を引きつつ、情報システムの設計やプログラミングにおける「創造」がなぜ起きるのか、その前提となる知識・技能をどう継承するのか、といったことを考えてみたい。