IT仕事って発注を受けてからって何しているんでしょ?きになるきになる気になる木~♪(ネタが古い)
仕事を受けたら何してるの?
仕事を受けたら、早速システム開発を始める!…ことはできません。
お客さんから要望を吸い上げ、それをまとめた上で、お客さんが必要なシステムを作り上げていくという手順を踏んでいきます。
全体の作業の流れとしては、要件定義、外部設計、内部設計、開発、テスト、リリース(納品) 、検収 を行います。
それぞれの工程をざっくり説明していきます。いかくんには、建築屋さんで例えてもらいます。
要件定義
お客さんからどんな業務で何に困っていて、どんなことをしたいのか?をヒアリングする工程です。
ここでヒアリングした内容をベースとし、困りごとを解決するようにシステムに落とし込めるかを検討します。
検討した内容は、要件定義書へまとめお客さんへ確認します。

建築屋さんで例えると…
お客さんが庭付きで、6部屋は以上はある家が欲しい、あと駐車場も欲しい!といった
要望を注文しているといった状態です。
外部設計
要件定義は、お客さんの要望やシステム概要しかまとめていませんでした。
外部設計では、システム上でどんな画面があり、どんな操作をするとどんな事が起こる。といった内容を画面レイアウト、画面遷移、ツール動作などについて検討します。
画面レイアウト:画面がどんな大きさで、ボタンやテキストボックスをどこに配置するかといったもの
画面遷移:画面に配置されたボタンを押した際に移動するのはどの画面かといったもの
ツール動作:ボタンなどを押した時に画面で設定された内容を保存する、もしくは、画面を閉じるといった動作の決め事

建築屋さんで例えると…
要望を元に店側が家の玄関、窓、ドア、部屋といった間取りを設計し、こんな感じの家でどうですか?
とお客さんに提案しているといった状況です。
内部設計
外部設計は、設計した画面やツールはあくまでイメージでしかありませんでした。
内部設計では、もっと具体的にどういったものを使用し作るといったものを決め、プログラミングできるレベルに落とし込む工程となります。

建築屋さんで例えると…
玄関、窓、壁にはどんな材料を使う、どんな大きさでどこに配置するといったことを決めている状況です。
プログラミング
外部設計と内部設計を元に、システムを作り上げていく工程です。プログラムという魔法の言葉(?)を駆使して、こつこつと製造していきます。

建築屋さんで例えると…
設計書と用意された建築材料を使用して、大工さんが家を作っているという状況です。
テスト
作り上げたシステムが想定した通りに動作するのかをテストしていきます。少なくとも、要件定義や概要設計で決まった動作通りでないといけません。

建築屋さんで例えると…
大工さんが、ドアや窓の建付けは大丈夫か?床の強度は大丈夫か?ネジの閉め忘れがないか?
といったことを確認している状態です。

決まった動作 とか何を当たり前のこと言うとうねん!
もし、床が抜けたり、窓ガラスが無かったりしたら激怒やで!
たこくんの言う通りですが、実は動作通りでないものでもお金はきっちり貰えてしまうといった状況もあるんですよね…この業界の特殊さというかなんというか…
それは、また別の機会があれば説明しようと思います。
リリース(納品)
できあがったシステムをお客さんにお渡します。システムのソース一式をCDに焼いたりして、渡すことが多いです。

建築屋さんで例えると…
お客さんに完成した家を引き渡すといった状況です。
検収
お疲れ様でした。ここでやっと、お客さんに検収してもらい開発費用を払ってもらって完了となります。

建築屋さんで例えると…
お客さんから建築にかかった費用を頂くという状況です。
(実際は、手付金とかローンで分割払いはあると思いますが…ね)
まぁ、既製品ではなくカスタムやオーダーを受けているようなお店とやっていることは似ていますね。
まとめ
- 要件定義 ~ テストという作業を経てシステムが作られる
- システムは、お客さん専用の特注品*1
*1 この記事では、お客さんから受注を受けて仕事する場合の説明となっているので、
パッケージ製品やスマホアプリについては別です。
家で例えると…
受注:オーダーメイドで特注の家
パッケージ、スマホアプリ:建て売りの家
といったイメージです。
コメント メアドは任意