PG・SE 上流工程、下流工程とは?
初歩的な質問ですが、上流工程、下流工程とは何ですか?
就職するなら上流工程開発の会社の方がいいですか?
また社内で開発するのと常駐先での開発ではどちらがいいのでしょうか?
社内開発の方が気は楽な気がしますが。
漠然とした質問なのですがよろしくお願いします。
工程の区分けについては、もうすでに他の方が答えていると思います。
ただし上流工程のみというのはあまりないような気がします。
新人ならなお更、まずは下流工程(テスト)などに組み込まれるのが定石な気がします。
もちろん会社のやり方にもよるかと思いますが、仕様書だけ書いて、あとは
外注にプログラミング、テストをまかせるなんてのもあります。
面白いかどうかという話をすれば、当然上流でしょう。
ただ、品質というのはこういうものなんだと体感できるのは下流工程かもしれません。
社内開発かどうか、これは開発するターゲットにもよると思います。
ハード的なものが絡むもの(大型な装置、実験装置が必要なもの)は
どうしても、メーカや実験施設で行うことになりますから、社外ということになります。
この場合、上司の目がないから楽といえば楽ですけど、
その社外の会社のルールと自分の会社のルールの板ばさみになることもあり、結構面倒だったりします。
慣れてくれば、よそ様で仕事してるというより、自分の会社のようになりますから(笑)気がねするようなことはなくなります。
社内はやはり、自分の会社ですから気が楽ですが、上司がいるのである意味サボれません(笑)
よくメーカの人なんかは「いいな~俺も外にでてえな~」とか言ってます
上流、下流については厳密な定義が有るわけではありませんが、プロジェクト1つを通してみたときに、前半の作業が上流、後半が下流と思っておけばだいたい合っていると思います(厳密にはちょっと違うんですけどね)。
また、会社についてですが、完全に上流しかやっていない会社というのはあまり無いと思いますよ。また、社内、常駐も、どちらか完全に一方、というのも難しいです。会社の仕事ってのはそんなに綺麗に切り分けられるものではなく、時にはメンバーの数名を下流工程をやっている下請け会社に派遣して、指揮を執る必要もあるでしょうし、下流がどうしようもない場合は、上流から人間を割り振る必要が出てくることもあります。
また、下流の作業を理解できていない上流は、正直使い物になりません。同様に、上流の手順をしっかり理解して、上流のやり方に沿って作業できない下流もダメです。
あなたの人生を通して考えたときに、たとえば50歳になって現場でプログラムを組んでいる、という状況はあまりよろしくないと思います。新技術の波に追いつくことは年齢とともに難しくなりますし、それをやりこなせる年配の人はあまり見たことがありません。
将来、長い目で見たときに自分は上流、またはさらに上で人を動かす立場に居るべきである、というのは真実だと思います。が、今のあなたの状態で、上流下流なんてことを考えるのはちょっとどうかと思います。
与えられたことを確実にこなし、仕事のやり方を覚えるまでは選り好みなんて正直「生意気」です ^^;
ただ、将来、トップにたって指揮を執る役職、ポストがある会社を選ぶのは良いと思いますよ。上ばかりやっている会社はそうたくさんはありませんが、下しかやっていない会社はたくさんあります。とっかかりはそれでも良いとしても、将来は、上流で大きな仕事を指揮できる会社に居られるように努力されると良いと思います。
>また社内で開発するのと常駐先での開発ではどちら>がいいのでしょうか?
>社内開発の方が気は楽な気がしますが。
常駐先だと上司がいないので
気が楽なところもあると思います。
社内開発だと失敗プロジェクトの場合、
自社で全部責任をとらないといけないので
サービス残業を行なうケースがあると思います。
客先常駐だと、契約にもよりますが
基本的に支援なので、最終的な責任は
回ってこないです。
社内開発だと、建物の賃貸料、光熱費などの
経費を自社で負担しなければいけないので
コストがかかります。
客先だと賃貸料とかかからないです。
自社開発だと顧客と話したりする機会があるので
そのコミュニケーション能力がつきます。
反対に客先常駐はプログラミングのスキルが
身に付きます。
下流工程というのはいわゆるプログラミングですね。上流工程がメインの会社でも研修のために下流工程をやることはあります。下流工程のことを理解していないと上流工程はちゃんと出来ません。
上流工程は、顧客の業務分析から入ってどのような部分をシステム化すればいいかから考えます。場合によっては、システム戦略とか、システム化投資をどの程度するかというようなコンサルティングの領域も入ってきます。情報処理技術者試験のシステムアナリストの参考書をぱらぱらと立ち読みしてみてください。
開発場所ですが、社内開発でもPGで一生を終わるならともかくSE以上だと打ち合わせで顧客のところに頻繁に行くことになります。社内で開発するPGと顧客のつなぎですね。遠方だと移動時間がバカにならない。
開発手法により用語が違うので一般と思われる 表現で。
システム開発は大体以下の工程に分かれます。
(1)ユーザーインターフェース設計
(2)システム設計
(3)構造設計
(4)プログラミング
(5)プログラムテスト
(6)結合テスト
(7)システムテスト
このうち、上流とは前工程の(1)~(3)辺りの設計工程を指します。
それに対して下流とは(5)~(7)のテスト工程を指します。
分担の仕方ですが、(1)をした人が(7)を担当する方法が一般的です。
したがってシステムインテグレーターと言われる会社では、(4)のプログラミングを中心として外部に委託したりするのが一般的で両端は自社でやるのが一般的です。社内で開発するか常駐先かは、設計工程は、顧客などとコミュニケーション頻度が高い工程を常駐先などの顧客先で行うのが一般的でしょう。プログラミングに近いほどその制約は薄くなり、テスト工程が進展するほど、また顧客先の可能性が高くなるのではないでしょうか?
- 最新から表示
- |
- 回答順に表示













