2018年1月に羽生章洋著
- ――ここまでに
「要件定義」 と 「プロセス設計」 の話はしたので, 残りは最新刊の 『はじめよう! システム設計』 ですけど, これはどういう経緯で書かれたんですか? 羽生:ここまでくると,
三作目は理屈じゃなくて 「やるしかない」 っていう (笑)。いやね, これまでの2冊を持っていろんな現場に行くと, 要件定義はわかりました, 前工程のプロセス設計もわかりました, ところでこれから何をしたらいいんですか? って言ってくるんですよ。 - ――誰がそんなこと言うんですか?
羽生:情シスとか,
SIerとか。 - ――普段は何をしてるのかっていう話ですね……。
羽生:IFDAMを見ると,
要件じゃなくて詳細設計書に見えるらしいのね。要件ってのは, 日本語の文章で書いてあって, あの手のモデリング的な図で表現されたものは, もう設計なんだろう, と。で, 「もう下請けに出してもいいですかね?」 って聞くから, お前は何を言ってるんだ (※1) と。アーキテクチャ的な機能分割とか一切考慮されてないわけだからね。 「いやいや, 最低限の設計をして出さないとダメですよ」 って答えたら, 「最低限の設計って何ですか?」 って言うから, いちからか? いちからせつめいしないとだめか? (※2) っていうね。 - ――でも,
「最低限」 は何かと言われると, ちょっと答えに困りますね。 羽生:それは確かにね。でも,
エンプラ系だと大抵のケースは, だいたいDOA (データ中心アプローチ) にかぶれちゃってるか, それより前のメインフレームの頃の構造化の呪いにつかまってるか, どちらかなんですよ。 - ――なるほど。
羽生:DOAにこだわる気持ちはわからんではないけど,
ビジネスが急激に変化してるとか, デジタルトランスフォーメーションだ何だとか言ってね, SNSが定着してる時代に, いまさらビジネスの安定的な写像をデータモデルに求めるような古いやり方で, 稼働後本当に時代に追従できるのかよっていう。ただ, 彼らとしては, メインフレームからクラサバに切り替えることができたっていう成功体験があるんですよ。組織的な成功体験があるんで, やっぱそこに執着しちゃうんですよね。 - ――若者たちには辛い感じですね……。ぼくは,
ずっとERDのモデリングツールのテクニカルサポートやってたんですよ。なので, DOA屋さんの相手ばかりしてたから, すごくよくわかります。 羽生:えっ! その話は今はじめて知った。
- ――あれ? そうなんですか? 羽生さんの
『楽々ERDレッスン』 のERDは, そのツールで描いてましたよね。ちょうどその頃にサポートやってましたよ。 羽生:へええ。ガチで知らなかった。
- ※1)
- ネットでお馴染みの,
格闘家ミルコ・ クロコップによる発言の真似。 - ※2)
- 人気マンガ
『よつばと!』 の名 (?) セリフとして有名。なお, 今年4月28日には2年5ヵ月ぶりの待望の新刊が発売予定。
モデルには基準点を置けないから,どうしても手が止まる
羽生:DOAじゃなかったら,
数十億円のレガシーマイグレーションで業務のリバースもしてない状態で, httpもまったくわからず, オブジェクト指向な言語での開発経験もないようなところが, DDD (※3) の麻疹にかかって突っ込んでいくとかもあったりしてね。 - ――無茶なDDDの話は,
よく聞きますね……。DDDも 「黒歴史」 みたいなところはありますからね。歴史からモデル駆動を掘り起こせば, どうにかなるんじゃないかという。 羽生:僕らみたいなビフォーUMLの世代からすると,
一周回ってそこなのかよみたいな。オブジェクト指向, 方法論の歴史から見たときに, ぐるーっと一周回ってDDDって, あれ? お前らはデータベース主義を否定していたところに, 結局戻ってきてねぇか? みたいな気分がある。僕からすると, RDBにおけるドメインの話の焼き直しにしか見えないので。このあたりは, 酒匂寛さん (※4) に見解も聞いてみたことがあるのよ。 - ――オブジェクト指向の達人的にどうなのかと。
羽生:そうそう。ちょっと前に一緒に呑みながら聞いたら,
関数型がマイブームだった時期だったようで, 「そんなことより関数型いいよ~」 みたいな感じでね (笑)。まぁ, 彼も僕も, 問題意識が要件定義っていうか, 彼は 「期待・ 課題・ 仕様・ 設計」 って表現してるけど, 似たようなところにフォーカスしてるから, よく色んなお話をさせてもらってるんだけど。上手くはぐらかされてる (笑)。 - ――まあ,
なかなか意見しづらい問題ではありますね。 羽生:まぁねぇ。結局ね,
エンタープライズにおけるほぼ唯一の選択肢がJavaになっている状況で, Javaという言語の不自由さをどうやって理想のオブジェクト指向に近づけるかっていうことをやってるうちに, 手が止まっちゃうんですよ。 - ――モデルに取り込まれちゃった。
羽生:モデルにはユーザーが評価できる基準点を置けないから,
どうしても手が止まるんですよ。ユーザーにわかってもらえるもんって, 画面しかねぇんだから。ユーザーにダメ出しされるのって, 画面じゃないですか。ましてやこのご時世, 使ってなんぼのユーザーエクスペリエンスの時代じゃん。そういう状況なのに, なぜか後ろ (論理構造のモデリング) 側からやっちゃうんですよ。 - ――当たり前ですけど,
モデルを描くだけではシステムはできませんしね。 羽生:だけど,
モデル描いて満足しちゃう人がいるんだよね。 「俺の世界を描ききった」 みたいな。いや, 俺もそういう麻疹にかかってたことあるから, 言いたくなる気持ちはわかる (笑)。だけど, だけどなあ……。 - ――昔は
「IDEF0とIDEF1X (※5) さえあれば大丈夫」 とか言われて, ハァ? ってのはよくありましたよ。で, プログラムはどうすんだっていう。 羽生:確かにモデルは大事だし,
それがないとあとで困ることはあるだろうけど, モデルさえあれば全部できる, ってのはねえよと。ユーザからしたら, 業務の現場を舐めんなよだろうし, 開発の現場からしたら, 実装を舐めんなよと (笑)。 - ――ほんとそうですよ。
- ※3)
- ドメイン駆動設計の略称。
- ※4)
- バートランド・
メイヤー著 『オブジェクト指向入門』 の翻訳者として有名なオブジェクト指向の第一人者。著書に 『課題・ 仕様・ 設計―不幸なシステム開発を救うシンプルな法則』 がある。 - ※5)
- IDEF0は機能モデリング,
IDEF1Xはデータモデリングの手法。