外部設計(基本設計)の仕事内容と求められるスキルを徹底解説
システムの外部仕様を決める外部設計工程。システムの設計者の腕のみせどころの工程ですね。外部設計工程では何を決めるのでしょうか
外部設計工程でもクライアントとお話をするんですね。要件定義とは何が違うんでしょうか
要件定義と外部設計の違いは明確にはないんだ。なので、要件定義が雑だと外部設計が苦労するし、要件定義をしっかり行っておくと、外部設計はすごく楽になるんだよ。ただ、外部設計が終わるまでには、絶対に決めておかなればならないことがあるんだ。これから説明していきますね。
外部設計の仕事内容
外部設計フェーズですること
外部設計フェーズで実施することは大きく以下の4つです。
画面レイアウト、帳票レイアウト
外部設計工程では、開発する画面のレイアウト、帳票レイアウトを決めていきます。クライアントのイメージもわきやすく、凝った画面ではない限り、スムーズに進んでいきます。画面が凝り過ぎている場合は、WEBデザイナーを雇ったりしますね。
画面レイアウト、帳票レイアウトについて以下の内容を「画面仕様書」へ記載していきます。
- 画面項目をどのようにグループ化(セクション化)するか
- グループ内の画面項目をどのように配置するか
- 画面項目名を何にするか
- 画面項目の最大文字数をどうするか
- ボタンをどこに表示するか
画面レイアウトは、ユーザー受け入れテストで、微修正が入りやすいです。今後のフェーズで、htmlをゴリゴリかいていくので、なるべくシンプルにしておくべきでしょう。
業務ロジック
ボタン押下した時、バッチを起動した際のトランザクションの挙動を「「機能定義書」へ記載していきます。具体的には、
- 何を入力値とするか
- どんな計算、演算をするか
- どこ(画面、DB)へ出力するか
を定義します。
例えば、税込価格の計算機能があったとしたら
- 入力値:税率マスタで有効な値、商品の単価
- 計算内容:商品の単価×(1+税率マスタで有効な値)
- 出力場所:画面項目(税込価格)
と定義していきます。
他システム、他機能とのインタフェース。(責任分界点)
大規模なシステムを開発する場合、複数のチームや会社で開発する機能を分担します。また、すべての機能は分担したチーム内で独立するわけではありません。
例えば、機能Aで作成したものを前提に機能Bが動く設計の場合、機能Aと機能Bのインタフェースを明確に定義しておかないといけません。
- 他システムへCSVを連携するのであれば、CSVの形式
- 共通メソッドを提供するのであれば、メソッドの引数と返り値
- DBの状態で判断させるのであれば、その状態の明治
が必要になります。
DBの項目とER図
作成するDBと項目については、外部設計できちんんと定義しておきます。特に、DBの何が主キーで何が外部キーになるかはきちんと決めておかなければなりません。
外部設計に失敗すると
機能を結合するテストで不具合が続出し、大きな手戻りとなってしまいます。違う会社どおしの機能でインタフェース不良が発生すると相当めんどくさいことがおこります。
要件定義ができるようになるには
求められるスキル
要件定義では、クライアント側の業務を瞬時に理解するスキルが求められます。クライアントの業務を最初からすべて知ってるのがベストですが、システム開発会社で働いている以上はそれはありえないでしょう。
また、クライアント側の要件定義担当者に合わせた要件定義を実施するスキルが必要です。
クライアント側の要件定義担当は、クライアントの業務には精通していますが、システムについては疎いことが多いです。特に、クライアント側の要件定義担当者が要件定義の経験がはじめてというケースも少なくありません。はじめて要件定義を実施する場合、クライアントはシステム開発側へ何をどのように伝えたらいいか分からない場合が多く「伝え忘れ」が発生するリスクがあり、丁寧に進めていく必要があります。
逆に、クライアントが要件定義に慣れている場合、丁寧な説明はうっとしいだけなので、スムーズに実施していく必要があります。
クライアントの反応を確認しつつ、最適な説明・検討をするスキルが求められるのです。
要件定義のスキルが求められる会社
要件定義のスキルが求められる会社は、
- コンサルティングファーム
- 大手SIer
- ユーザー系SIer
など、一次請けとなる会社です。一次請けの会社は、開発より要件定義がメインとなります。もし、要件定義を実施したいのであれば、このような一次請けの会社を目指しましょう。
他の領域からキャリアアップするには
保守運用担当から外部設計者になるには
保守運用担当者は、システムリリース後に色々な修正をしていきますが、設計がへたくそで直すのも苦労することがよくあります。「○○の設計であれば楽に直せるのに」という保守性の高い設計をすることができるようになりますね。ただし、設計が未経験だと少々難しいかもしれません。作られているものを修正する設計と、ゼロベースでものを作る設計は全然勝手が違います。
テスター、プログラマーから外部設計者になるには
テスター、プログラマーからから外部設計社になるのは、よくあるキャリアアップです。テストやプログラムをするときに「何でこの設計なんだろうと」普段から考える癖をつけておけば、設計へのキャリアアップも簡単にできるでしょう。