内部設計(詳細設計)の仕事内容と求められるスキルを徹底解説

システムをどう作るか設計する内部設計(詳細設計)工程。IT技術がないと出来ない仕事なんだよね。

内部設計(詳細設計)って細かい設計を確実にやっていく必要がありそうね。根気さえあればできるのかしら

内部設計(詳細設計)は、要件定義と外部設計(基本設計)とは異なるスキルが必要な工程だね。システムの作りが知らないと務まらない仕事だよ。ここでは、内部設計(詳細設計)について詳しく説明するよ
内部設計(詳細設計)の仕事内容
内部設計(詳細設計)フェーズですること
内部設計(詳細設計)からは、下流工程とよばれるフェーズになります。要件定義や外部設計までが上流工程だね。基本設計までは、何(What)を作るのかをずっと決めてきました。設計書のクライアントの承認も必要になってきます。内部設計(詳細設計)からは、どうやって(How)作るかを決めていきます。システム屋の腕の見せ所になりますね。クライアントとやりとりをする機会はだいぶ減るので、詳細設計が好きなエンジニアは多いです。詳細設計で決めることを具体的に言うと
- 処理の順番はどのように行うのか
- クラス構成はどうするのか
- バッチのフローはどうするのか
- エラーが起きた際の挙動はどうするのか
- 各項目のデータ型はどうするのか
- サーバー構成および冗長化方式はどうするのか
- エラーメッセージの文言はどうするのか
- 各種設定値の値はどうするのか
など、機能の詳細を丁寧に検討していくよ。次の工程からプログラム開発になるので、プログラム開発からプロジェクトに参画した人でもどんな開発をするのかがわかるようなドキュメントをつくることが必要なんだ。内部設計(詳細設計)で作成される成果物は、「クラス図」、「プログラム仕様書」、「ジョブフロー」、「パラメータ定義書」、「メッセージ一覧」などのドキュメントです。
内部設計(詳細設計)に失敗すると
内部設計(詳細設計)で決めるべきことが決められず次の製造工程に進んだ場合、次のことが起こります
・次工程にて、プログラマーが誤った解釈をし、間違ったものを実装する
・似たような処理が共通化されておらず、保守性の悪いシステムが出来上がる
・無駄に作るものが多くなり、次工程の生産性・品質が悪化する
・結合テスト工程で設計不良が想定より多く摘出され、修正する毎に汚い設計となる
内部設計(詳細設計)工程からは、ITのスキルによって、だいぶ差がでてきます。
内部設計(詳細設計)ができるようになるには
求められるスキル
内部設計(詳細設計)を実施するには、アルゴリズムに関するスキルや、APIなどの知識、抽象化するメリット、デメリットを知っておく必要があります。この辺のスキルについては、独学で勉強するのは難しく、実際にシステム開発を経験しないと勝手がわからないですね。
また、内部設計(詳細設計)を実施するに当たり、システム化する業務を正しく理解しておく必要があります。何をやることは基本的には、「外部設計書」に記載されているのですが、業務知識が事前がある人が「外部設計書」を読むのと業務知識がない人が読むのでは、仕様の理解具合が全く異なります。
外部設計書を読んで、「なるほど、○○機能ね。○○機能は、前のプロジェクトで設計したから同じような設計にしよう。でも、前のプロジェクトの設計では、△△の考慮ができていなかったので、今回の設計では△△を考慮しよう」となるくらいになると、安心な内部設計(詳細設計)ができます。
内部設計(詳細設計)のスキルが求められる会社
下流工程をメインで行っているシステム開発会社では、内部設計(詳細設計)のスキルが求められますね。中小規模の独立系の会社のベテランSEでは、内部設計(詳細設計)ができないと仕事がもらえません。1次受けとなる企業に就職した場合は、自分が内部設計(詳細設計)をすることはないですが、プロジェクトメンバーが作成した詳細設計のドキュメントをみて、レビューする能力は必要になってきます。
他の領域からキャリアアップするには
プログラマーから内部設計(詳細設計)者になるには
プログラマーから内部設計(詳細設計)者へキャリアアップするのが自然な流れでしょう。
入社して、プログラマーとして数年経験したら、内部設計(詳細設計)をするようにと、会社の偉い人からお達しが来るようになるでしょう。
維持保守担当から内部設計(詳細設計)者になるには
維持保守の仕事と内部設計(詳細設計)の仕事は全然違います。
もし、あなたが維持保守担当で、内部設計(詳細設計)者になりたいのであれば、まずはプログラミングの経験をつみましょう。2年くらいのプログラミング経験を積むことで、内部設計(詳細設計)を担当させてもらえると思います。