Doge log

Abby CTO 雑賀 力王のオフィシャルサイトです

品質自体と品質を保つための機能どっちをとるんだい?決まってるよ。両方さ!

うーん。マイッタことに仕事でリソースがあってもどーしよーもならん事が発生しそう。
困ってること。

  1. コーディング規約がないに近い。(あるけど守られていない)
  2. 単純に遅れているのでテストにコストをかけられない。(テスト計画すらないし)
  3. 運用系ポリシーがないのでログ出力がクソ。バグが出ても原因究明が大変。(コードにどうやって埋め込ませるか)

最悪、一発目の品質を落としても「バグがすぐ修正できる状態である」であればなんとかなるかも知れない。
(バグは出るもの。第一どれだけテストしてもソフトウェアにバグが存在しないと言い切れない。保障できない)
しかし実際には「バグがすぐ修正できる状態でない」のである。困った。
で現実レベルで考える上記の困っていることの中の項目をトレードオフで取っていくことになりそう。
バグがないということは言い切れないのでログ出力など運用系を底上げするのがよいかなあと思うのだが正直悩む。

すこし話がズレるのだが、現時点で運用まで考えて設計、コードを書いてる人間ってどれくらいいるんだろ?
もちろんベンチャー系のPGさんは自分がプログラムを書き、それを自分で運用していくのだから確実に出来ていると思う。
私も昔テスト時に

  • 環境がリモートであった
  • テスト実施者が別人だった

という時にエラーログをメールで飛ばすように仕込んで受け取っていた事があった。
テスト実施者が電話や、障害票をメールで送りつけてくる頃には新しいソースがCVSにあがっていてテスト再開可能な状態になっていた事もしばしばあった。
(結果仕込んでおいたその機能は通常のログ出力で十分、ログ監視するプログラムがすでにあるので不要との事で本番リリース時には消されてしまったが。)
トータル的に見てもいち早く状況を把握し素早く対処できた事で計画よりもテストを多くこなせ品質向上に貢献できた。

運用を考慮して作ることは結果としてPGに多大な恩恵を与えるのになぜやらないのだろうか?
(私が思うに「できない」のでは「やらない」のだ。)

  1. 自分の作ったプログラムに自信がある。(バグなんてでるか!)
  2. 作るだけ無駄だと思っている。(業務機能だけ満たせてればビジネスは回るんだよ!)
  3. 考えたことがなかった。(運用ってどうしてんのかな?)
  4. 顧客から指示がなかった。(作れって言われてないしー)

多分私が思うに4のケースが多いのではなかろうか。
実社会を例にしても小売業にしたってなんにしてもそうだがサポートセンターのようなトラブルシューティング機能はどこにでもある。
「うちの仕事は完璧だから文句はうけつけねー」なんて言ってるとこなんてないと思う。
(法律上の問題もあったり表立って言わないだけだけど)
客が言わなかったからって非機能要件を考慮しないのはどうかしてる。
じゃあどうすればよいかって?
答えは簡単で明快である。
「実際に自分ひとりで運用してみる」それだけである。
「品質ってのーは品質を保つ機能も含めて品質っていうんだよなあ、ホントは」
うくく。