写真1●パネルディスカッションの壇上に上がるSRA先端技術研究所 CTO(最高技術責任者)執行役員の青木淳氏(中央)と,エス・ディ・アイ代表取締役の佐藤正美氏(右)
写真1●パネルディスカッションの壇上に上がるSRA先端技術研究所 CTO(最高技術責任者)執行役員の青木淳氏(中央)と,エス・ディ・アイ代表取締役の佐藤正美氏(右)
[画像のクリックで拡大表示]

 どうすればソフトウエア設計の本質を理解して,仕事の現場で活用できるのか――。

 現在開催中のITpro EXPO 2008で,パネル・ディスカッション「設計の本質とは何か?」に登壇したのは,SRA先端技術研究所 CTO(最高技術責任者)執行役員の青木淳氏とエス・ディ・アイ代表取締役の佐藤正美氏。青木氏はオブジェクト指向のプログラマとして代表的な存在であり,京都産業大学で非常勤講師も務める。一方の佐藤氏は,データベース分野の先駆者の一人である。

 議論の冒頭,青木氏はソフトウエア設計の本質を,絵描きがトレーニングとして取り組むデッサンになぞらえた。「目の前にあるモノの形や影,つまり対象の姿を正確にとらえ,紙という他者への伝達手段に落とし込む。これは設計の世界にかかわる者にとって必須の,普遍的な能力だ」(青木氏)。

 佐藤氏は青木氏の意見に賛同するとともに,現場で働くSEの設計能力に疑問を呈した。「設計の手段は図でも文章でもかまわないが,問題は設計図が単なる“お絵かき”に終わっているケースが多いということだ。自動車やプラントなどの世界では当たり前の網羅性や無矛盾性を,SEが心がけていないことに驚かされる」(佐藤氏)。

 良い設計の前提となる基本的な能力として,佐藤氏は数学と哲学を挙げた。物事を抽象化して検証する力と,問題を定義する力は,数学と哲学で身に付くという。ただ,一般的に数学や哲学は敬遠される傾向がある。モデレータの田中淳 日経ソフトウエア編集長が,「尻込みする人が多いのでは?」と質問すると,佐藤氏は「私も学生時代は大変苦手で,点数は悪かった。実は私が数学を本格的に勉強し始めたのは30代に入ってからだった」と明かした。

 佐藤氏が30代で数学を学び直し始めた理由は,現場で製品を使いこなして,より良いシステムを作るためには,基礎に立ち戻るしかないと実感したからだった。「本を読み始めては挫折する,といったことを何度か繰り返していくなかで,だんだんと見えてくるものがあった」と佐藤氏は振り返る。「SEの仕事には特に論理と集合の相性が良く,お勧めしたい」(佐藤氏)。

 青木氏も「数学や哲学といった基礎学問で得られる力は,良い設計に役立つ」と同意する。「昔,人工知能が流行ったとき,会社で数学や認知科学の本を読んでいても,誰もとがめなかった。そういう本を会社で読むのが許される職場は,今となっては貴重になってしまった。現場で読まれるのはいわゆるハウツー本ばかり。それが悪いとは言わないが,近道しようとして,逆に遠回りになってしまっているのではないか」と指摘する。

方法論はいい,だがとらわれるな

 近年,システム設計のための方法論やフレームワーク,デザインパターンが相次ぎ登場しており,現場での利用が進みつつある。青木氏は「それらは福音」と評価しながらも,「これさえあれば大丈夫」と考えがちな一般の風潮に警鐘を鳴らす。

 「寄って立つものが増えたのは良いことだ。技術の伝承にも役立つ。ただ,メリットと同時に弊害もある。それさえ知っていれば十分だという(短絡的な)考えにつながるおそれもある。方法論やデザインパターンの活用はどんどん進めるとして,それとは別に,基礎力を固める教育が不可欠だ」(青木氏)。青木氏は基礎力の低下を示す例として,「Webサイトで手本となるコードを見ながらでないとプログラムが書けないプログラマが増えてきた」と苦言を呈した。

 青木氏は後進の育成にも力を注いでいる。現在青木氏が実践している教育スタイルの基本は「手取り足取り」。ペアプログラミングのスタイルで,「コードを書くスピードまで,目の前で見せるようにしている」という。