包丁で釘が打てなくなると言ったら怒られた
何かといえばソフトウェアテスト関連の話である。まあここまでぶっ飛んだ話ではないが。
webアプリケーションは基本的に大きな仕様変更はしない。BtoB向けの業務アプリケーションであればなおさらだ。BtoBの場合業務フローがガッチガチに決まっているので、検索フィールド一つ変えるのも慎重にならなければならない。
先日、とある修正で客観的に正しいと思われる仕様へと変更した。しかしこれが地雷だった。システムが動かなくなるお客さんが続出し、あわてて元に戻す事態になった。
もう散々同じ経験しているので、お客さんの利用パターンが最優先される事は承知していたが気がつかなかった。もはや顧客の利用パターンを把握することはできず、どうやっても防ぎきれない。それでも品質を保つにはどうしたらいいのだろうか?
- 最初にちゃんと作る
まず間違いなくこれ。システムに穴を作るとそこから浸食されて、やがて身動きが取れなくなる。
十分な調査、仕様検討と幅広いテストが必要。テストはユーザーの斜め上をいくようなテストまで幅広く。たとえ開発に嫌われようとも。
- 裏技を提案しない
無理難題を言われても、システムの裏技を使わない。それは保障されていないのでやがて動かなくなる。この動作を保障しに行くと、システムの変更ができない。包丁で釘を打つような提案をしてはいけない。釘を打ちたいと言われたらカナヅチを作ろう。
- 見切り発車しない
十分に検討していない機能は穴が多くなる。工数がなくなったら規模を縮小するしかない。テストで手を抜くと隙を突かれる。
- いらない機能を捨てる
もう使われなくなった機能は多少強引にでも捨ててしまえ。ずっと前からアナウンスし続ければきっと大丈夫。断舎利とか言っとけ。
- 何を開発しているか営業にも把握してもらう
どんな機能を開発しているか把握してもらう。簡単な使い方ガイドも用意して、あたかもそれしかできないような説明をする。
要件が発生してきたら、「ちゃんとプロセス通して」とかいって断り続けろ。
いろいろ羅列したがなんか普通の事ばっかりだった。まあこの普通が難しいという事か。。