昨日のTDDの話で、
これをTDDに置き換えると、どうなるかは、今度かくかも
と書きました。
今回は、その話なんだけど、ちょうど、いい具体例(東証のシステム障害)が、昨日起きたので、その話もからめて。
最近言われる、アジャイル開発になってくると、仕様をきっちりユーザーが固めないで開発に入れる。
事実、いまや、きっちり仕様を固めていない。
というか、ユーザーだけでなく、マネージャーですら、仕様が良くわかってないケースもある。 ウィリアムのいたずらの仕事なんかだと、マネージャーさんが、「これだけの情報でできますかねえ。。」とか、「うーんと、どういうのだか、よくわかんないんですけど、作ってくれますか?」とか言われることもあった。
なんで、とりあえず、作っていくのだが、そうすると、どうなるか。。。
問題が、先送りになってしまう。
つまり、どんどん、やさしいところから作っていき(やさしいところから仕様がきまっていくから)、結局、あとで、
「おいおい、時間たんねーよ!」
ということになる。
「じゃあ、すぐに作っていかなきゃいいじゃん!ちゃんと全体を見切ってから作れよ!ウォーターフォールを守れよ!」
って言う話になるが、そうすると、仕様決めが何ヶ月もオーバーになり、開発時間がなくなるなんていう結果になる。
つまり、どっちに転んでも、今の開発は、納期直前に、開発量が増えてしまう。
さらに、オープンシステムになってから、想定外なことが多く起こるようになった。
このバージョンの組み合わせでは、動かない!というもの。
これは、開発してみないとわかんない。
そんなわけでも、今の開発は、納期直前に、開発量が増えてしまう。
そうすると、カネの問題はさておいても、納期直前に、人が必要になる。
昔の考え方だと、「そのために、ヨーク考えて、計画を練って、仕様を読みきってから、人が何人必要かを割り出し、そして、必要な人をアサインすることが大切だよ!だから、ウォーターフォールなんだよ!」ということになるだろうけど、最近の人たちに、この考えは、受け入れられないと思う。アジャイルで、とにかく開発していこう、開発しながら、考えよう!というのが、(この考えが正しいかどうかにかかわらず)世の中の空気だと思う。
つまり、カンバン方式と考え方は同じである。
必要なときに、必要なだけほしいのである。
そうすると、上記の理由により、開発後期に、人を急に投入しなければならない。
しかし、フリーや零細では、そんなこと、急に言われても困る。
っていうと。。。じゃあ、やっぱり、急に人は必要になるから、あらかじめ、人を用意できる会社に発注しよう!
っていうことになるんじゃないかなあ。。
なんで、情報処理試験のPMの午後1問2の外注先のチェックリストにあったように、「機動力」がチェックポイントにはいっていくんだろうな。
さらに、この「機動力」は、バグ修正のときにも、必要になると思う。
今回の「東証のシステム障害」のような場合、とにかく、どうにかしないといけない。
そんなとき、もし、そういう部分を、個人のフリーの人にまかしていたら。。。
その人、つかまんない!(どこにいるかわんない)っていうことになる。
そうすると、やっぱり、大きなシステムは、ちゃんとした会社で、すぐに担当者がつかまり、さらに場合によっては、修正に人手がいるかもしれないので。。。
やっぱ、機動力!
っていうことになるのかなあ。。