目次
インフラエンジニアが行う、「基本設計」って何?
といった疑問について本記事ではお答えします。
筆者について、簡単に紹介させて頂きます。
▼筆者の紹介(ITエンジニアとしての業務経験) ・IT業界経験年数 7年(営業経験:4年 SE経験:4年) <案件,業務経験要約> ・PCキッティング・展開 ・各種ネットワーク詳細設計・構築 ・各種サーバー設計・構築 ・ヘルプデスク(Windows、Office365製品サポート) ・仮想化設計/構築 ・クラウド設計/構築
筆者のSEプロフィールの詳細については、下記記事で紹介しています。
インフラエンジニアの業務工程(システム設計)の一つに、基本設計という工程があります。
・基本設計って具体的なにを設計するのか?
・基本設計書の経験があるとは?
基本設計とは、具体的に何を行う業務なのでしょうか?
基本設計のスキルと、基本設計書のスキルはまた別だと筆者は考えています。
筆者の経験上の解釈で、基本設計について本記事で説明します。
工程上の基本設計の位置づけ
基本設計は、要件定義の後の工程です。
そして、基本設計の後の工程は詳細設計です。
基本設計を行うには、インプットとして要件定義が必ず必要です。
また、詳細設計を行うには、インプットとして基本設計が必ず必要です。
▼システム設計の一般的な工程 要件定義→基本設計→詳細設計→ 構築
基本設計が曖昧だと、後々の詳細設計、構築時に弊害が出てきます。
一般的な工程について確認ができたところで、具体的に基本設計について考えてみます。
今回は、システム設計を料理のカレーを作る という作業に置き換えて説明をしたいと思います。
システム設計をカレー作りに例える
カレーを作るときの順序を、ザっと整理してみます。
▼カレー作りの順序 ①どんなカレーを作るか考える ②作るカレーを考え、決めたら、必要な材料を考えて、材料をそろえる ③作るカレーを考え、また必要な材料をそろえたら、カレーを作るレシピを用意する ④ ①(カレーの構想)・②(カレーの材料)・③(カレーのレシピ)がそろったら、実際にカレーを作る
どうでしょうか?カレー作りのイメージはこんな感じだと思います。
もう少し、具体的に各順序を掘り下げて考えてみたいと思います。
①どんなカレーを作るか?(要件定義)
まず、どんなカレーが食べたいかを考えますよね。
例えば、下記のような感じです。
・シーフードカレー
・辛いカレー
・キーマカレー
・卵が入ったカレー
・カツカレー
・野菜が入った健康的なカレー
なんでもいいですが、今回は、「野菜が入った健康的なカレー」を作ってみようと思います。
どうせ食べるのであれば、野菜もたっぷり入れて栄養満点なカレーが良いかなというところで。
上記は、システム設計でいう「要件定義」です。
この工程で具体的に定義された要件としては、今回は下記です。
・野菜が入った
・健康的な
・カレー
それでは、次の工程(カレーの材料を考える)に進みたいと思います。
次の工程が、いよいよ「基本設計」に該当する部分です。
②カレーの材料を考えてそろえる(基本設計)
それでは、カレーの材料について考えたいと思います。
今回作ろうしているカレーはどんなカレーでしょうか?
「野菜が入った健康的なカレー」 でしたね。
各要件に沿って具体的にスーパーで買える材料を考えてみます。
・野菜が入った
→ニンジン、たまねぎだけでは物足りないので、オクラとピーマン、レンコンもいれてみよう
・健康的な
→健康的?よくわからないが、野菜が5個も入ってるから健康的だろう
・カレー
→市販のバー○ントカレーを買おう
この工程で具体的に決められた内容は、下記です。
「ニンジン、たまねぎ、オクラ、ピーマン、レンコンの野菜5個が入って健康的なバー○ントカレーを作る事」
上記が、システム設計でいう「基本設計」に該当する部分です。
物凄くザックリですが、こんなイメージです。
では、基本設計に大事な考えとは何か?という観点で、続けて考えてみたいと思います。
基本設計の基本:要件を本当に網羅できているかどうか
今回は、システム設計の工程を「カレー作り」に例えて説明をしました。
今回のカレーの要件は「野菜が入った健康的なカレー」でした。
そして、基本設計では「ニンジン、たまねぎ、オクラ、ピーマン、レンコンの野菜5個が入ったバー○ントカレー」 と設計をしました。
この後、※材料の具体的な数量を決める(詳細設計)、レシピ通りに料理を作る(構築)といった工程を経て、カレーがいよいよ作られます。
※本記事では、詳細設計以降の説明は割愛致します。
それでは、今回出来上がるカレーはどんなカレーでしょうか?
こんなカレーが出来上がると思います。
「ニンジン、たまねぎ、オクラ、ピーマン、レンコンの野菜5個が入ったカレー」
そのまんまですね。
それでは、「野菜が入った健康的なカレー」と要望されたお客様に、上記のカレーを出してみたいと思います。
お客様の望むカレーは出来上がったでしょうか?
・・・しかし、残念ながらお客様からクレームが出てしまいました。
内容は下記のようなものです。
・カレーなのに肉が入っていない?
・そもそも、このカレーはめちゃくちゃ辛いんだけど?
・健康的って言ったけど、肉が入っていなければタンパク質が取れないし、健康的とは言えないのでは?
残念ながら、今回作ったカレーは、「肉が一切入っていなく、また適当に辛口を選んで作ってしまいました。」
結果、お客様の望むカレーが出来上がらず、クレームとなりました。
これらは、全て基本設計(要件定義)がしっかり行われなかったことによる、作業ミスとなります。
具体的には、要件をきちんと精査し、網羅しきれていなかったことが原因です。
もう一度基本設計に戻ってみます。
基本設計の基本:要件の精査をする(協議・調査・ヒアリング)
もう一度、カレーの材料について考えたいと思います。
今回作ろうしているカレーはどんなカレーでしょうか?
「野菜が入った健康的なカレー」 でしたね。
ここで、まず材料を決める前に「考えて」みます。(協議)
・野菜が入った とあるが、 どんな野菜を入れればいいのか?
・健康的 とあるが、 健康的とは何だろうか?
・カレーは甘口、中辛、辛口があるが、どれが良いのだろうか?
考え、調査した結果、下記のように考えがまとまりました。(調査)
・ピーマンを入れれば、ビタミンCが取れて健康的だろう。
・それ以外に、ニンジン、玉ねぎ、オクラ、レンコンを入れて野菜たっぷりにしよう。
・豚肉を入れればタンパク質も取れて、健康的だろう。
・カレーは無難に中辛がいいだろう。
そして、上記で問題無いかをお客様に確認します。(ヒアリング)
ニンジン、たまねぎ、オクラ、ピーマン、レンコン、豚肉を入れた中辛のカレーを作ろうと思いますが、よろしいでしょうか?
→お客様の回答
ピーマンは良いが、ニンジンが苦手なので入れないでほしい。
豚肉だと脂肪が多いから鶏肉にしてほしい。
辛いのは苦手なので、甘口にしてほしい。
そしてヒアリングの結果、下記に最終的にまとまりました。
▼きちんと精査した基本設計の結果 ピーマン、たまねぎ、オクラ、レンコン・鶏肉が入った、甘口なバー○ントカレー
当初の基本設計の結果:「ニンジン、たまねぎ、オクラ、ピーマン、レンコンの野菜5個が入ったカレー」とはずいぶん異なる結果となった事と思います。
これが、基本設計の具体的な内容になります。
基本設計とは、要件定義に基づいた精査の事
今回はカレー作りに基本設計を例えてみましたが、インフラのシステム設計でもそのまんま当てはまります。
例えば、要件が「中小企業向けのウイルス対策用システム」であれば、
基本設計は「社員10人分の会社ノートPCのウイルス対策のため、10人分管理ができるウイルス○スター管理サーバをWindowsServerで作成する」 といった具合です。
実際は、上記の様に一文で収まるものではなく、WordやExcel等などによって、「基本設計書」としてドキュメント化されます。
物凄くザックリですが、ITエンジニアの「基本設計」について、理解が深まれば幸いです。
基本設計の次工程「詳細設計」については、下記記事を確認してみてください。