システムエンジニア不要説

JavaBlackさんからトラックバックいただいて、なんか面白い議論が進行中なのを知る。

ここではフローチャートの是非を論じるつもりはない。クソだから。もっと一般化してしまえば、○○設計書みたいに「設計書」と名のつくものは全部クソだ。だって動かないんだもん。

動かない以上、それら設計書が正しいのか、漏れがないのかは保証のしようがない。机上検証なんていう工程もあるらしいけど、君たちの脳味噌は何MIPSなんだと問い詰めたい。もちろん、机上検証で見つかる凡ミスもあるだろうけど、そんなのはズボンもパンツも履かずに会社に向かうのと同じくらいのレベルの間違いだろう。

結局はコードを仕上げてから動かして初めて「だめだこりゃ」ということになる。

そして、「だめだこりゃ」となった時に、内部設計書だか外部設計書だかなんだかしらないけど、そういう設計書関係を全部同期して保守しているの? という疑問がでてくる。 たぶんやってない。というか、できない。抽象的な表現を徐々に具体表現に落としてきているわけだから、コードのある部分を変更したときに影響を受ける設計書の範囲を特定するのは簡単ではない。仮に頑張ってそこを特定し、設計書を修正したとしても、今度は各設計書間の整合性を確認するのに膨大な時間がかかる。つまりお金がかかる。(数GFPSの脳味噌を持っていても、だ)

結局のところ、システムが完成したと思われる頃には「設計書」と「コード」の乖離は無視できないものになる。そんな設計書になんの価値があるのだろう? そして、そういう「設計書」なるものを作る人達は何のために存在しているのだろう?

システムエンジニア不要説

昔はシステムエンジニアという職種は必要だったかもしれない。

でも、今も必要なのかというと...自分は懐疑的だ。本当はいらないんじゃないか、と。

お客さんの声を聞いて、直接それをコードに持っていける人がいれば、その間に介在する人も設計書も不要になる。そのための開発技術もツール類も既に世の中には存在する。

もちろん、日本全国に数十万人いると思われる「コーディングできないシステムエンジニア」は、そんな話を否定することであろう。存在意義を否定されるわけだから。

でもねー、システムエンジニアを自称する皆さんには、もう一度胸に手を当てて考え直して欲しいのですよ。自分の仕事って本当に意味あるの? ってことを。

おまけ


追記:ブックマークコメントに対するコメント

業務分析やシステムデザインをプログラマがやるってことなのかな。それって「SEがプログラミングすればPGは不要」論では。

そういう分業体制も職種区別もなくなるよ、ということですね。

SEが不要という人は、実際の現場を見ていないと思う。

日本の昭和を引きずった(さらにいえば中国オフショアなんかを始めてさらに混乱が拡大した)現場と、米国のAgile現場両方を見た上で話をしています。

その時に客に動作が意図通り動くことを客が承認する為に担保するモノは何?

もちろん、契約に必要な要件定義はしますよ。Agile現場ではFeature Listが活用されることが多いです。