「SEの設計スキルが低下したのは“空白の10年間”のせいですよ」---。先日,大手ITベンダーの幹部に取材したところ,こう切り出された。

 その幹部によれば,この10年間,大規模な基幹系システムの開発がめっきり減り,その代わりに保守開発や中小規模のWebシステム開発が増えた。そのために,「特に若手のSEが設計にかかわる機会が減少し,設計スキルの低下が目立つようになった」(同氏)と言うのだ。

 ITプロフェッショナル12月号の特集では設計スキルを磨くために必要な方法論やパターンの活用,レビューの方法などを解説した。ここでは,その特集の前提となった「設計スキルの低下」について少し考えてみたい。

空白の10年がスキル低下を招いた

 ここで言う「設計」とは,システム開発プロセスにおける「基本設計」あるいは「外部設計」フェーズを指す。プログラムの内部構造を定義する詳細設計や内部設計は含まない。建築にたとえれば,建築士が顧客の要求に基づいて,どんなビルや家を,どのように作るのかを決定する作業である。

 情報システムにおける基本設計は,ハード/ソフトの構造(アーキテクチャ)と実装方針を決定する「方式設計」と,ユーザーから見たシステムの外部仕様(機能,画面・帳票,データ)を定義する「機能設計」から成る。そのほか,性能・信頼性設計やセキュリティ設計,移行設計,運用設計なども実施する。

 冒頭で紹介したコメントのように,こうした設計スキルの低下を憂慮する声は少なくない。例えばある大手ベンダーの統括部長もこう指摘する。「ベテランのSEは基本設計の方法論を熟知しているが,最新の技術・製品を組み合わせた方式設計でとまどう。一方の若手のSEは,技術については詳しいが,基本設計の方法論を理解していないことが多い」。

 実際,開発現場では基本設計のまずさが原因となり,プロジェクトが頓挫する例も珍しくない。あるベテランのプロジェクト・マネジャーは,「よく見かけるのがWebシステムの開発で,SEがユーザーと一緒になって画面の設計ばかりに凝るケース」と語る。画面の裏側にあるビジネス・ロジックやデータ構造への考慮をおろそろかにしてしまい,詳細設計以降でトラブルになるという。

 最近ではパッケージ・ソフトを使ったシステム開発も一般化している。そうした中で,「プロジェクトが失敗する多くの原因は,アドオン開発の設計品質」(中堅ベンダーの役員)という声もある。この役員は,「パッケージ・ソフトを使った開発プロジェクトを見ると,メンバーはコンサルタントとプログラマばかり。基本設計を確実に手掛けられるSEが絶対的に不足している」と危機感を募らせる。

難しくなる一方の基本設計

 もっとも,基本設計そのものが難しくなっているという面もある。例えば,あいまいな要件定義書が増えており,その結果,基本設計の入力情報が不明確になってしまう。その要件定義書の内容を基本設計フェーズで詳細化しようにも,最近増加傾向にある組織横断型のシステムの場合には,多数のステークホルダーとの間で仕様調整が必要になる。それがさらに基本設計の難易度を上げている。

 さらに言えば,多様化・高度化した技術や製品を活用して高品質なアーキテクチャを組み上げるのにも高度な専門スキルが必要となる。そこでは高い性能や信頼性,セキュリティといった非機能要件も考慮しなければならない。

 こうなると,設計スキルが低下しているというよりも,基本設計そのものが難しくなっていると見る方が適切かもしれない。しかし,欠陥を含んだ基本設計書が下流工程に渡されれば,基本設計を手掛けたSEのスキルが足りないとみなされても仕方がない。

基本設計こそコア中のコアのスキル

 改めて言うまでもなく,SEのコア中のコアのスキルは基本設計のスキルである。ここにきて要件定義フェーズをユーザーが主体となって進めつつある一方,詳細設計以降の作業は海外へのシフトが始まっている。それだけに,SEには今まで以上に基本設計のスキルが問われるのは間違いない。

 地震大国日本で世界一の電波塔を建設する。50年近く前に,そんな難題に果敢に挑んだ設計者がいた。東京タワーを設計した早稲田大学の故・内藤多仲名誉教授である。内藤教授は,三角形の鉄骨を組み合わせた「トラス構造」が最も強く美しいという信念に基づいて設計に臨んでいたという。

 一方で,世間を震撼させた心ない某一級建築士もいる。もちろん不完全な設計書を故意に作るSEなどいないだろう。だが,「トラス構造」のような“定石”を知らなければ,欠陥を含んだ設計書を知らず知らずのうちに作成してしまう可能性もなくはない。皆さんは,自分の設計スキルに自信が持てるだろうか。

池上 俊也=日経ITプロフェッショナル