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