最近仕事内容的にSEの上流工程と言われる部分の勉強の必要性を痛感するようになってきました。
上流工程という言葉があるということは下流工程という言葉もあるわけですが、下流工程とは一般的には「プログラミング」とか「テスト」を指すと言われています。
対して上流工程は、「要件定義」とか「基本設計」と言われる部分を指します。ですから近頃は、上流工程の入門書とか要件定義、ソフトウェア文章作成術、UMLなどに関する本を購入して読み始めています。
以上のような上流工程に関する本を読み始めるようになったのですが、この分野に関する勉強が必要な理由として最初の頃は次のように考えていました。
「要はユーザーからの要望を正確に聞き取ってその中から必要な機能を取捨選択したりして、システムに正確に反映させられるようにするために必要な知識なんだろう」
しかし、いくつかの本やインターネットで上流工程に関するサイトを読んでみると、どうやらそれだけではないように感じるようになってきます。もちろんそういった理由もあるのでしょうが、それ以外の理由のひとつとして
「大規模システムをつくるときに必要な知識になるから」
ではないだろうか、と考えるようになってきました。このことについて最近の考えを書いてみようかと思います。