私は長年この仕事をしているけど、残念ながら「今回の開発は簡単なお仕事だったね!」と笑ってリリースまでたどり着いた経験は一度としてない。。。
システム開発では、品質・コスト・納期(Quality、Cost、Delivery)は、トレードオフの関係にある。
「品質を高める」ためには、開発プロセスを手厚くする。
例えば、単鑑と再鑑。ある作業を一人のSEだけで行なうのが単鑑で、それを別の人が確認するのが再鑑。再鑑すればその作業工程の人件費は単純に2倍になる。
よくあるのはテスト工程を手厚くするパターン。通常のテスト工程に加え、強化テスト、モンキーテストなどのテストを取り入れる。こうすれば、その分、潜在不良は摘出でき品質向上に繋がるが、テスター(テストを行なう人)の人件費は増えていく。
つまり「品質を高める」行為は「コスト増加」に直結する。
ここでよくあるジレンマ。
品質は高い方がいい、だけどコストは抑えたい、といったらどうするか?
世の中のシステム開発の仕事は、程度の差はあるが、必ずこの問題に直面する。
つまり、ユーザーは「安ければ安い方がいい、だけどバグ(不具合)は許さんよ」と言う。
システム開発を請け負う開発ベンダーも仕事を受注しないといけないので、売り上げのためにある程度は、その矛盾したユーザー要求を飲まざるを得ないこともある。
このシワ寄せが、末端のSEに来ることになる。
長時間サービス残業のブラック職場の出来上がりである。
サラリーマンはつらい職業だ。やれと言われれば、それがどれほど無理な要求であってもやらなければいけない・・・と洗脳されている。毎日、午前2時に開発終了、仮眠をとって午前6時からテスト再開みたいな毎日を過ごすと、もうまともな思考はできず、開発完了まで機械のように作業するだけ。
そこから脱却して、しばらく時間を置かないと、その状態が異常であることすらわからなくなる。
そして、更にまずいことにそういったブラック職場で、そのプロジェクトが何とかリリースにこぎつけたとする。「成功事例」の出来上がりである。この規模でこの費用でもリリースできるんだな、と”風上にいる人たち”は味を占め、同じことを現場のSEに繰り返し強要する。
世の中には、理論重視の人間と、そうでない人間がいるように思う。後者の極端なケースが「成せば成る」「失敗したのはお前の努力が足りないからだ」という思考パターンの人。こういう人たちが、”風上にいる人たち”になってしまったら、それに気づいた段階で早く逃げ出した方がいい。たしかに仕事に努力は必要だし、楽に生きたいわけでもないけど、それでも限界というものはある。
どうせ仕事をするなら、できるだけホワイトな職場で、見積もり通りの適正な開発期間・費用で、開発をやりたいです。まあ、それでもなかなか思うようにはいかないわけだけど。