チェックリストで品質を上げるために
チェックリストは品質確保に欠かせない
私がいた会社では、たくさんのチェックリストが使われていました。
見積時には見積チェックリスト、プロジェクト開始時にはリスク診断チェックリスト、プロジェクト計画書チェックリストなど、その他にも工程の開始完了、コーディング、テスト、稼働判定など、1つのプロジェクトを遂行するためには数多くのチェックリストを消し込む必要がありました。
しかも、新しいチェックリストがどんどん増えていくので、プロジェクトマネージャは、常に開発規則を確認しなければなりません。
チェックリストの消しこみは大変ですが、チェックリストは品質確保の手段として効果的です。うまく使えば短時間で漏れのない確認が行えます。
会社全体や事業部で標準として採用されるチェックリストは、見識が高い技術者が作成し、その部署での運用で磨かれた後、生産技術部門などの審査を通過したものなので、感心させられるものが多いです。
とくに経験が少ない技術者は自力で確認項目を洗い出すのは難しいので、有識者の知恵が集約されたチェックリストは大変貴重です。
ただ、運用を間違えたために、効率を落とすだけで品質向上に寄与しないチェックリストもたくさんあります。
チェックリストは直ぐに肥大化する
最初はどのチェックリストもA4かA3で1枚に収まっています。ところが直ぐにチェック項目が増えて1枚には収まらなくなってしまいます。
プロジェクトでリスクとなり得る項目を評価し、プロジェクトリスク度を算出するチェックリストがありました。さすがにA4で1枚というわけにはいかなかったようですが、それでも3枚にまとめられていました。各チェックの内容は非常に質が高く、感動したのを覚えています。
ところが、3年くらい経つと10枚以上に増えていました。増えたチェック項目は大部分のプロジェクトには関係ないものばかりでしたが、自分のプロジェクトに関係ないことを確認するために読まなければなりませんでした。
あの素晴らしいチェックリストが、こんなものになってしまったのかと悲しくなったことを覚えています。
このようにチェックリストは直ぐに肥大化します。
あまりに安易にチェック項目を増やすからです。
トラブルが起きれば、再発防止策としてチェック項目を追加して済ませてしまいます。(私も随分やりました。)
偉い人が追加しろといえば、思いつきでも逆らうことはできません。
そして、一度追加したチェック項目は誰も削除できません。
もしも、削除したことによってトラブルが起きた場合、責任をとりたくないからです。
でも実際には、チェックリストが肥大化したことで、チェックリストを真面目に読まずに消し込んでしまうプロジェクトマネージャが増えてしまい、チェックリストを使わないのと同じになってしまうのです。
チェックリストに向いていない確認項目がある
チェックリストは品質確保に有効な手段ですが、あくまで1つのやり方に過ぎません。
向いていない確認項目もあります。
例えば「コーディング規約を遵守しているか」という確認項目があったとします。
これを消し込むためには、すべてのソースコードとコーディング規約を突き合わせて確認しなければなりません。
現実には、そんなことはできないので、ろくろく確認せずに消し込むことになります。
本来は、コーディング規約の教育をメンバーに行った教育記録があることを確認するか、コーディングチェックツールの実施結果があることを確認すべきでしょう。
実機テスト(ツールによる確認を含む)、教育等、他の手段で確認するのが適切な項目はそうすべきです。
チェックの実施単位が適切か検討する
システム全体に対するチェックリストであるにも関わらず「メモリの開放漏れがないか」というチェック項目が描かれているを見たことがあります。
システム単位で聞かれて「ありません」と答えたところで、どんな根拠でそう判断したか分からず、まったく意味がありません。
このようなチェック項目は、クラス単位のチェックリストに移すべきです。
何を確認すれば消し込めるかが明確となっているか検討する
後から追加したチェック項目に多いのですが、そもそも何を言っているのか分からないものや、何通りかの解釈ができてしまうものがあります。おそらく作った本人やそのプロジェクトの人たちにとっては当たり前のことなのでしょうが、他部署の人間には理解できないことがよくあります。
社内で共通化を行うときに、生産技術部門でそのような表現がないかよく確認する必要があります。
そこまでいかなくても、何がどういう状態になっていれば消し込んで良いのか分からないチェック項目がよくあります。
本来、チェック項目は、現物の何がどうなっていると消し込めるのかをはっきりと記述しなければなりません。
そうしないと確認者により、解釈がばらばらになってしまいますし、問題が生じたときに、ちゃんと確認したかどうかが分からなくなってしまいます。
まとめ
チェックリストを作成、更新する場合は、以下の項目を確認しましょう。
- チェック項目の項目数、または用紙枚数の上限を決める
- 追加するチェック項目は、教育、実機テストなど他の手段で行うべきものかをよく検討する
- チェックの実施単位(クラス単位、サブシステム単位、システム単位等)が適当か検討する
- 何(原則は現物)を確認すれば消し込めるかが明確となっているか検討する