ソフトウェア開発に対する認識

さんざんソフトウェア開発をやりたくない、という後ろ向きの発言を繰り返している私であるが、逆にいえばどういう状況であればソフトウェア開発をやってもいい、あるいはやりたいか、ということを考えてみる。

私は別にソフトウェア開発そのものがめちゃくちゃ嫌いなわけではないのだが、それに伴うわずらわしいコミュニケーションという名の手戻りが嫌なのだ。理想をいえば、仕様書がきちんとあって、それをそのまま実装すれば仕事が終わり、というのが望ましい。本来プログラマの仕事はそうあるべきものだと思うのだが、日本の現場ではそういう理想的な状況はほとんどない。仕様書は常に不完全で、開発プロセスのほとんど終わりになって、仕様変更がかかる。それで納期を守ることが難しくなり、納期前の労働密度が強化される…という部分がほんとうに困る。

どうしてこういうことになるかといえば、日本人が仕事でやるべきことを文書にして表現する習慣がないためと思われる。そして、伝統的に顧客が強い権力を握っているために、開発者は顧客のわがままに付き合わざるを得ない。これは構造的な問題であり、日本的な組織で働く以上、絶対に逃れられない。

他の業界でも、日本人の働き方は同じなのだが、ソフトウェアの場合、構造が極めて複雑で手戻りの工数がとても高価になりうるというのが特徴なのだ。

…こういうことは日本的組織の中で働く以上は受け入れる他ない。そして今日もソフトウェア技術者は徹夜で納期を守るのだ。