上流工程を担当する=偉いという誤解について(久々にこんなネタ。

上流工程を担当する=偉い

と思っている方が身近にまだいましたので、ちょっとこんな話題について考えてみました。


開発プロセスの最初の方を上流と呼ぶ場合、最下流は「検収を頂く」とか「お客様より評価を頂く」事な筈です。これってどう考えても、「下流の人間」として蔑まれることの多いSI的プログラマが担当するような仕事ではないですよね。ウォータフォール・モデルを元にして生まれた単語なんだと思いますが、上とか下という表現がそもそも誤解を生んでしまったんでしょう。


「職に貴賎なし」と申します。

ソフトウェアを開発する過程でイロイロな工程がありますが、その中の役割で「重要ではない工程」なんて殆どありません。だから、それぞれの工程を担当する人同士に上下なんてある筈ないんです。ですが、ソフトウェアを開発する人は、たいていが会社という組織に所属していて、この組織という奴は上下関係が無いと維持していくのが難しいので、ソフトウェア開発の工程にもそれが持ち込まれてしまっているだけかな、と。


典型的な工程を並べて考えてみます。

  • 分析:開発するソフトウェアのゴールを決めます。
  • 設計:ゴールまでの道筋を決めます。
  • 実装:ゴールまで向かいます。
  • 試験:そこが本当にゴールなのか確かめます。
  • 運用:ゴールであり続けます。

このようになるんじゃないかな、と思います。


どれか一つでもしくじれば、全て台無しです。
どの工程も非常に重要だし、おろそかにして良いところは殆どない筈です。


会社という組織のしがらみで、上下関係に縛られている開発者もいるかも知れませんが、でも今やっている仕事は非常に重要。

胸を張って良いと思います。