
Webサービス開発(最近だとWebにかぎらずスマホアプリもあるな)で品質の話になったときに、課題として見えてくるものが似ている気がするので、ざーっとまとめ。もう5〜6回、同じような話をしている気がする。
品質の定義
品質とは誰かにとっての価値である。 ―― ジェラルド・ワインバーグ
だとすると、開発に関わる誰かごとに品質があるはず。よくある誰かはこんな感じ。
- ユーザ: 見た目や使い勝手の品質。ユーザは品質全般に関われるすごい人。
- プロデューサ&プロダクトマネージャ: サービスとビジネスの品質
- エンジニア: ソフトウェア(プログラム、システム)の品質
主に、エンジニアの関わる品質をチェックするために、QAってのが存在することが経験上多い。ということは、ユーザーやサービス視点の品質チェックがおろそかになってしまいがち。
逆に、ユーザ視点で操作性を確認できて、サービス全体のバランス感覚を持ち、システムレベルの理解がある。そんなQAがいると素敵。だけど、全部わかるってすごく難しい。というか、QAに限らず、関わる人全員がそうなるのが理想かも。
品質に向けてやること
上の3つの視点(他にもあるならそれもふくめて)に対して、どういったアクションをするかを考える。例えばこんな感じ。
- ユーザー視点: 曇りなき眼で実際にサービスを使うテスト。曇りなきが難しい。
- サービス視点: ABテストとか。ちょっとのテストをしまくるのが流行り? 仕様バグとかは第三者的なテストで見つけるしかないか?
- ソフトウェア視点: ソフトウェアテスト。いにしえ。
育成
これもQAにかぎらずでてくる話。さみだれに書いてみる。
- 目標を立てて実行して結果をチェックする手伝いをする
- ひとりで働いている人以外は、全体の目標と個人の目標の最低2つが必要になるはず。これらを実現するために、計画とやることが必要。そして、結果をチェックして、期待どうりか? 修正が必要かを考える。
- キャリアパスを作る
- ベースとなるスキルを整理する。
- 「〜ができる」を4つクリアすればあなたはこのレベル! となればわかりやすい。しかし、これは似たようなスキルの人間をたくさん生みだす場所でしかやれない。
- スペシャルななにかしらをベースの上に積み上げるイメージ。
- 「すごく決済に詳しい」というドメイン知識とか「障害に強い設計ができる」という技術スキルとか。ただし、これらは比べにくい。
- 個人的には、「現状維持」というキャリアパスもあっていいと思う。休むは恥ではなく役に立つ。
- ベースとなるスキルを整理する。
- トレーニングを用意する
- ベーススキルはトレーニングしやすい。
- スペシャルな何かはトレーニングを与えるというより、自ら選んで取りにいくがいい気がする。
おわりに
プロセスの見直しや、やり方自体の改善でなんとかなる部分はあるが、最終的に人を育てるってところに戻ってくる気がする今日このごろ。