ソフトウェアの品質を「顧客満足度」だと定義すれば、「品質」をバグがないと言う風に矮小化したところに「日本的なソフトウェア品質論」の限界があったような気がする。バグがないことを保証するために、徹底的に仕様をレビューし、あいまいさを一切否定する。そしてテスト項目を大量に作成し工場化したチームがそれを淡々と消化していく。このプロセスをQC(品質コントロール)の手法によって推進する。製造業で成功したこのプロセスがなぜソフトウェア産業では成功しなかったのか。を読んで思ったこと。
そういえば完璧主義っていうとドナルド・クヌース教授もそうだよなぁと。(オレは個人的にスタンリー・キューブリックやスティーヴ・ジョヴズやクヌース教授の「逸脱した完璧主義エピソード」をウォッチするが大好きだ)
さて。はてな近藤社長の「50%の品質でリリース」という発言は、おそらく エクストリーム・プログラミング_ の「短期間のリリースを繰り返し」ということを、誤解されるような「50%」という極端な言い方で表現したのだと解釈している。
製造業であればドイツや日本の職人的完璧主義が上手い具合にハマるのだが、ソフトウェアだと上手くいかない。
クヌース教授のTeXを使うのは訓練を叩き込まれる専門家だけで、ほんのちょっと数式を含んだ論文を書く人はMS Wordの数式エディターを使いがち。TeXは合理的で完璧主義なのだろうけど、ユーザーは合理的でも完璧主義でも無い人が大半だってことか。
バグが無いに越したことは無いが、バグが出ないことよりも「作って使わせて直す」ほうが、ソフトウェアに関しては手っ取り早いということか。
ミッションクリティカルなシステムと、ユーザー向けシステムは分離して語った方が良い:
よしおか氏も
そういえば人工衛星の制御ソフトを書くのを仕事にしている人が、日曜プログラマーとしてMacのフリーソフトを書いていたことがあったなぁ。その人に言わせると「セキュリティ脆弱性やクラッシュするようなバグのあるソフトを書かない方法ってのがある」と。
まぁ今で言うバッファオーバーフローをきちんと考えたセキュアな書き方だとかの話なんだろうけど。
あ、そうそうミッションクリティカルなシステムにおいては日本的な品質保証の優位性というのはあると思います。書いている。
そういえば人工衛星の制御ソフトを書くのを仕事にしている人が、日曜プログラマーとしてMacのフリーソフトを書いていたことがあったなぁ。その人に言わせると「セキュリティ脆弱性やクラッシュするようなバグのあるソフトを書かない方法ってのがある」と。
まぁ今で言うバッファオーバーフローをきちんと考えたセキュアな書き方だとかの話なんだろうけど。



コメントを読む(1) [ コメントする ]