« 入出力定義と「非対話型業務」の関係 | トップページ | モデリングツールとExcel仕様書の合わせ技 »

2015.08.15

DDDの前に専門性を身につけよう

 DDDを冠するイベントや勉強会が、異様といっていいほどの盛況である。なぜそんなに人気があるのか。DDDが「オブジェクト指向プログラミングをもっとうまくやると同時に、開発者のドメイン知識の不足を補ってくれる方法」と思われているからではないだろうか。

 そこには基本的なレベルの勘違いがあるような気がする。DDD本の中でも語られているように、開発者は個別案件が対象にしている特定ドメインに肉薄しなければいけない。そのためには、近傍のドメイン知識を事前に身につけておく必要がある。当然ながらそれは、DDDの実践だけでは身につかない(身につくとしてもひどく効率が悪い)。

 「必要な知識はドメイン・エキスパートが補完してくれるから大丈夫。それがDDD」などと甘えてはいけない。ドメイン・エキスパートのカジュアルな語りからシステムのあり方を洞察するには、広範囲のドメイン知識や多能工的スキルに裏打ちされた総合力が要る。DDDの学びや実践に意味があるとしたら、せいぜいそれを身につけた「後」の話だ。

 けっきょくこれは、「自分はどの経済分野を専門とする技術者として成熟するか」といった「相場師」的決断の問題でもある。稼げる分野であればあるほど、そこで求められるソフトウエアを構想するために必要な専門性は一朝一夕では身につかない。言い換えれば、すぐに身につく専門性は参入障壁が低いために契約単価が安い。だから、若いうちに分野を選択して、必要な知識や経験の蓄積を始めておく必要がある。もちろん特定分野向けに成熟することにはリスクが伴う。しかしもっとマズいのは、リスクを取る勇気を出せないまま年齢を重ねることではないのか。

 オブジェクト指向プログラミング等のソフトウエア開発技術そのものを専門とする働き方があってもいい――そのように考える向きもあるかもしれない。理屈としてはアリだが、リスクは小さくない。私を含めた凡庸なプログラマには、有する開発技術の社会的価値をレバレッジするための「開発技術以外の専門性」が要る。そんな専門性がなくても稼ぎ続けられるのは、超がつくほどの逸材だけと思ったほうがいい。

 そもそも、ある分野に十分な経済的訴求力があれば、それを専門とする開発者は遅かれ早かれ出現する。その専門家はプログラマとしては凡庸であっても、「その分野を専門としない逸材」よりも手堅い仕事をするだろう。なぜか。その分野の専門性を持つプログラマであれば、個別の要件にもとづくソフトウエアのあるべき形を効率的・効果的に構想できるからだ。そして、ソフトウエア開発のボトルネックは、まさにこの「仕様の構想・決定の過程」にあるからだ。「開発技術以外の専門性」の価値がおわかりだろうか。

 というわけで、数多い開発分野の中から「業務システム(エンタープライズ・システム)」の専門性を学ぶためのイベントを開催する。

生産管理再入門-MRPを超えて <第42回IT勉強宴会>
2015年8月21日(金)18:30~20:30 大阪梅田

 なぜ「生産管理」かというと、「生産管理にはすべての業務分野が含まれている」と言われるからだ。じっさい私が広範囲の業務知識を効率的に学べたのも、若い頃にたまたま生産管理システムばかりを扱ったからだ。その経験がなければ、データモデリングや上流工程の重要性に気づくこともなかっただろう。

 DDDに比べたらものすごく地味な勉強会であるが、「業務システム開発」の専門性に興味を持つきっかけにしてほしい。何のためか。開発者としての未来の選択肢を広げるためだ。

|

« 入出力定義と「非対話型業務」の関係 | トップページ | モデリングツールとExcel仕様書の合わせ技 »

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック


この記事へのトラックバック一覧です: DDDの前に専門性を身につけよう:

« 入出力定義と「非対話型業務」の関係 | トップページ | モデリングツールとExcel仕様書の合わせ技 »