実践バグ管理
クジラ飛行机/あかさた
プロジェクトに失敗は許されない!しかし、根性だけでバグはなくならない。未踏ソフトウェアにも選ばれた経験豊富なプログラマによる、バグを手なずけるための管理術。デスマーチが始まる前にこれを読め!
- 定価
- 3,080円(本体価格 2,800円)
- 発売日
- 2009年3月1日
- 判型/ページ数
- B5変型/368ページ
- ISBN
- 978-4-88337-635-3
- 備考
- -
■本書の目的
次のようなことを求める方に最適な書籍です。
・バグ管理について系統立てて学ぶことができる
・常識、マナー、基本知識を知ることができるはじめに
・新人の皆さんが円滑にプロジェクトへ参加できるようになる
・プロジェクトにあったバグ管理を学ぶ(選択)ことができる
・デスマーチから開放される(予測、回避)
・活きた手法を学ぶことができる(現役の開発者が書いている)
・プロジェクトの進捗状況を明らかにする
はじめに
本書はバグ管理に関する本です。システム開発におけるバグ管理の重要性と、そのやり方に関す
るノウハウを共有する目的で書きました。
最近では、使いやすいオープンソースのバグ管理システム(BTS)が複数登場しています。それ
により小さな開発プロジェクトや個人でつくっているソフトウェアでも、バグ管理システムを活用
するようになっています。そこで本書では、バグ管理システムを利用して、どのようにバグの管理
を行っていくのか、バグレポートをどのように書いたらよいのかなど実践的な内容を扱います。
本書では著名なバグ管理システムの使い方を紹介することよりも、ツールに依存しない本質的な
考え方やノウハウを紹介することを重視しています。
■対象読者(それぞれの人にどんな価値を提供するか)
これからプロジェクトに参加する新人の皆さんや、新規プロジェクトを始める中堅のコアメン
バー、そして、プロジェクト管理に悩んでいるプロジェクトマネージャーと、システム開発に携わ
る多くの人にお勧めの内容となっています。
新人や若手エンジニアの方には、プロジェクトの様子や基本的な流れ、プロとして働くための知
識。プロジェクト立ち上げ時期の中堅のコアメンバーの方には、プロジェクトの進め方のノウハウ、
そしてそれらの活用法。プロジェクトの規律の組み立てに悩んでいるリーダーの方には、プロジェ
クト管理のヒントを提供しています。
★第1章 バグ管理とは
■1-1 なぜバグ管理が必要なのか
●なぜソフトウェアの現状を把握できないのか
●バグ管理とはどのようなものか
●なぜバグ管理が必要なのか
■1-2 バグとは何か?
●よく見られるバグの現象
●バグの重大さと改修の優先度
●発見しやすいバグと発見しにくいバグ
●バグにも寿命がある
●バグをどのような視点で取り扱うか
●バグはどこで発生するのか
・バグの現象をどこで確認するか
・バグがどこで発生しているか
●なぜバグが発生するのか?
・技術的な要因
・プロジェクト管理的な要因
・運用的な要因
・その他の要因
●ヒューマンエラー
●ヒューマンエラーへの対処
■1-3 なぜプロジェクトが期間内に終わらないのか
●プロジェクトが期間内に終わらない理由
・バグ管理が甘い
・クライアントからの追加要望に弱い
・スケジュールの見積りが甘い
■1-4 バグ管理の概要
●バグ管理をしても無駄?
●こんなバグ管理は嫌だ!
・バグが集中管理されていない
・バグ管理システムの運用面での失敗
・バグ管理システムを中心にプロジェクトを進行させる
・バグ管理システムでプロジェクトを集中管理しよう
●バグ管理をすると工数が増えるのか
●バグ管理の効用
・タスク・バグの集中管理を実現できる
・バグデータベースを活用できる
●結局、バグ管理とは何なのか
・バグ管理では何をするのか
・プロジェクトの中でのバグ管理の役割
★Case Study バグ管理を理解するためのケーススタディ
■プロジェクトのスタートアップ
●Scene1:スタートアップミーティング
・配付資料
■要求分析(第一反復)
●Scene2:要求分析
・用語補足解説
■要求仕様からタスクを発見する(第一反復)
●Scene3:要求仕様からタスクを見つける
・用語補足解説
■開発風景(第一反復)
●Scene4:開発風景
・用語補足解説
■反省会(第一反復)
●Scene5:反省会
■要求の整理と第二反復のルール決め
●Scene6:要求整理とルールを決定する
■開発風景(第二反復)
●Scene7:ドキュメント更新の衝突
●Scene8:バグの登録し忘れ
■成果報告会
●Scene9:成果報告会
■ケーススタディのまとめ
●開発ルール
・解説とまとめ
★第2章 バグ管理の流れ
■2-1 ソフトウェアのライフサイクル
●フェーズの説明
●ソフトウェアライフサイクルのモデル
●ソフトウェアライフサイクルとバグ管理
ПCOLUMN 売り切り型のソフトウェアにおける運用/保守フェーズ
■2-2 開発のプロセス
●開発フェーズの工程
●ワークフローのまとめ
■2-3 テストのプロセス
●開発フェーズにおけるテストの位置づけ
●テストのプロセスについて
●テストでバグを発見すること
●テストプロセスの詳細
・テスト計画について
・テスト設計について
・テストの実施
■2-4 バグ管理のプロセス
●バグレポートの管理プロセス
●バグレポートの状態管理、重大度、優先度
●バグ管理のプロセスのまとめ
ПCOLUMN 請負契約と瑕疵担保責任
ПCOLUMN ジョエル・テストで開発チームをチェック
■2-5 開発成果物
●ソースコードについて
・人に読まれても恥ずかしくないソースコードを書くこと
・コーディング規約について
・ソースコードを見てもらうことでスキルを磨くことができる
●マニュアルについて
●外部設計書について
■2-6 システム開発に登場する人物
●システム開発をマイホーム建築にたとえてみる
●開発プロジェクトのメンバー
・プロジェクトマネージャ
・QAエンジニア(テスター)
・プログラマ
・デザイナー
・プロジェクト内部の人のまとめ
●ユーザーとクライアント
・クライアントについて
・ユーザーについて
・サポート担当
・運用担当
・プロジェクトオーナー
・経営陣
●専門家やその他の人
・セキュリティなどの専門家(コンサルタント)
・外部のテスター
●理解度チェックシート──バグ管理の流れ
★第3章 バグレポートについて
■3-1 バグレポートの必要性
●わけのわからないバグレポート
●漠然としたバグレポートに対するチームの対策
・開発者が超能力者ではないことを認識しよう
・漠然としたバグレポートに顕れる兆候
・漠然としたバグレポートによる弊害
・チームが取るべき対策
■3-2 バグはどのようにして見つかるか
●テスターはどのようにしてバグを見つけるか
・QAエンジニアが行う作業
・QAエンジニアが登録したバグ
●ユーザビリティテスト、ベータテストによって発見されるバグ
・ユーザーを巻き込んだテスト
・ユーザーを巻き込んだテストからフィードバックを得る
・ユーザビリティテスト、ベータテストによって見つけられたバグ
●外部の専門家によるチェック
・専門知識を活用したシステムの診断
・専門家による仕様のチェック
・専門家によって見つけられたバグ
●ユーザーサポートに報告されるバグ
・エンドユーザーから開発者へバグの受け渡し
・サポート担当者の負担を減らすために
ПCOLUMN バグがどうしても直らないとき
■3-3 バグレポートの書き方
●厳密なバグレポートの書き方
・バグレポートに含まれる項目
・バグレポートの例
・厳密ではないバグレポート
●適切なレポートを書くには
●よいバグレポートを書くには
・誰のためにどんな目的で書くのかを考える
・どんなバグレポートにすべきか
・レポートの雛型を用意する
・タイトル(件名)や小見出しを工夫する
・再現手順の書き方・洗練の方法
・こんなバグレポートは嫌だ
・まとめ
●よいバグレポートを書くための文章の書き方
・文章を書く際に気をつけるべきこと
・ソフトを活用して文章の質を向上する
・チームとして文章の品質向上を図るには
・付録──チェックリスト
■3-4 困ったバグレポートの傾向と対策
●コミュニケーションが原因でバグの修正が滞る場合
・直した! 直ってない! の応酬合戦
●バグレポートの内容に誤りがある場合
・なぜ間違ったバグレポートが登録されるのか
・間違ったバグレポートへの対処
●複数のバグが1つのレポートになってしまっている場合
・面倒なので複数の問題を1つのレポートに書いてしまった
・複数のバグを含んでいるが問題を切り分けられていない
・1つの現象が複数のバグと関連している
・問題の修正範囲が大きすぎる場合
・まとめ──バグ管理がスマートになるように
●再現が難しい場合と再現ができない場合
・バグの再現が難しい場合
・バグが再現できない場合
●KPT(Keep/Problem/Try)で反省をしよう
・KPT法とは?
・KPTの例──社内の蔵書管理システムをつくったときの反省
・KPT法のよい点
・KPT法をうまく進めるために
・1人でもできるKPT
・どのタイミングでKPTを実施するか?
・あまり意見が出ないとき
・バグ管理のやり方を考える
・KPT法のまとめ
・参考 KPTの派生──KPTIRK
■3-5 バグ管理データベースの分析
●バグのデータベースをどのように活用するか
●バグのデータベースの活用法
●バーンダウンチャート
■3-6 バグ管理システムの紹介
●バグ管理システムとは
・バグ管理システムの役割
・有名なバグ管理システムを見てみよう
●バグ管理システムの導入に際して
・バグ管理システムの導入時にやっておくべきこと
★第4章 プロジェクトを成功に導くバグ管理
■4-1 バグ管理のパターン
●バグ管理パターンの概要
●メッセンジャーパターン
・どのようなプロジェクトで採用するか
・利用されるツール
・メッセンジャーパターンの流れ
・メッセンジャーパターンのメリットとデメリット
・メッセンジャーパターンを成功させるために
・類似するパターン
・メッセンジャーパターンの活用事例
・関連するパターン
●ポストイットパターン
・どのようなプロジェクトで採用するか
・利用されるツール
・ポストイットパターンの流れ
・ポストイットパターンのメリットとデメリット
・ポストイットパターンを成功させるために
・類似するパターン
・関連するパターン
●TODOパターン
・どのようなプロジェクトで採用するか
・利用されるツール
・TODOパターンの流れ
・TODOパターンのメリットとデメリット
・TODOパターンを成功させるために
・TODOパターンの活用事例
・類似するパターン
・関連するパターン
●スレッドパターン
・どのようなプロジェクトで採用するか
・利用されるツール
・スレッドパターンの流れ
・スレッドパターンのメリットとデメリット
・スレッドパターンを成功させるために
・スレッドパターンの活用事例
・類似するパターン
・関連するパターン
●Excelパターン
・どのようなプロジェクトで採用するか
・利用されるツール
・Excelパターンの流れ
・Excelパターンのメリットとデメリット
・Excelパターンを成功させるために
・類似するパターン
・関連するパターン
●BTSパターン
・どのようなプロジェクトで採用するか
・利用されるツール
・BTSパターンの流れ
・BTSパターンのメリットとデメリット
・BTSパターンを成功させるために
・類似するパターン
・関連するパターン
●チケットドリブン開発
・どのようなプロジェクトで採用するか
・利用されるツール
・チケットドリブン開発の流れ
・チケットドリブン開発のメリットとデメリット
・チケットドリブン開発を成功させるために
・チケットドリブン開発の活用事例
・類似するパターン
・関連するパターン
●バグ管理パターンのまとめ
・バグ管理パターンを再度分類する
■4-2 バージョン管理について
●バージョン管理の必要性
・なぜバージョン管理が必要なのか?
・バージョン管理システムを使って解決する問題
・バージョン管理システムの導入は難しいか?
●主要なバージョン管理システムについて
・どんなツールがあるのか?
・CVSについて
・Subversionについて
・Gitについて
・分散リポジトリとは?
ПCOLUMN バージョン管理システムの応用
ПCOLUMN 積極的に共同作業のためのツールを活用しよう
■4-3 リリース管理について
●リリース管理の基本
・リリース管理とは
・リリース管理が必要な理由
・リリース管理に登場する用語解説
●小規模製品の場合
・管理の方法
・リリース計画の立て方
・関連するケース
●モックアップ開発をする場合
・管理の方法
・リリース計画の立て方
・関連するケース
●複数のバージョンを保守する場合
・バージョン番号の管理
・リリース計画の立て方
・バグ管理のポイント
・関連するケース
●複数のリリースを保守する場合
・リリース計画の立て方
・バグ管理のポイント
・関連するケース
●話題性重視でリリースする場合
・マーケティング的な意図を持ったリリースの種類
・リリース計画の立て方
・バグ管理のポイント
・関連するケース
●リリースしないことを英断する場合
・管理の方法――どんなときにリリースができないのか
・リリース計画の立て方とバグ管理のポイント
●システムの寿命によりつくり直しが必要な場合
・PHP4で考えるシステムの寿命
・レガシーマイグレーションについて
・システム移行の方法
・バグ管理のポイント
・関連するケース
■4-4 さまざまな開発プロジェクト
●プロジェクトのスタートアップに際して
●個人プロジェクト
・プロジェクトの構成
・個人プロジェクトのメリットとデメリット
・個人プロジェクトを成功に導くカギ
・個人プロジェクトにマッチする管理手法
・関連するプロジェクト
●小規模チーム(2〜3人)のプロジェクト
・プロジェクトの構成
・小規模チームのプロジェクトのメリットとデメリット
・小規模チームのプロジェクトを成功に導くカギ
・小規模チームのプロジェクトにマッチする管理手法
・関連するプロジェクト
●QAエンジニアがいる小規模チームのプロジェクト
・プロジェクトの構成
・QAエンジニアがいる小規模チームのプロジェクトのメリットとデメリット
・QAエンジニアがいる小規模チームのプロジェクトを成功に導くカギ
・QAエンジニアがいる小規模チームのプロジェクトにマッチする管理手法
・関連するプロジェクト
●複数のチームからなるプロジェクトやオフショア開発プロジェクト
・プロジェクトの構成
・大規模チームのプロジェクトを成功に導くカギ
・大規模チームのプロジェクトにマッチする管理手法
・関連するプロジェクト
■4-5 番外編:実際の開発プロジェクトのバグ管理
●日本語プログラミング言語「なでしこ」の開発について
・なでしこの概要
・バグ管理システムについて
・バグの発見について
・バグ管理の流れ
・これまでにバグ管理で問題になったこと
・バグレポートの例
・その他
●ブラウザ上で動作するモデリングツール「Kodougu」の開発について
・Kodouguの概要
・バグ管理システムについて
・バグの発見について
・バグ管理の流れ
・これまでにバグ管理で問題になったこと
・バグレポートの例
■ウノウ株式会社 新井啓太氏に聞く Webサービス開発のバグ管理
★第5章 バグと共生するには
■5-1 本書の要点
●バグ管理のまとめ
・なぜバグ管理を行うのか?
・バグ管理はいつから行うのがよいか?
・正しくバグ管理を行うには?
●バグレポートのまとめ
・バグレポートに書く内容を吟味する
・よいバグレポートと悪いバグレポート
・バグデータベースを有効利用しよう
・振り返りでバグ管理のカイゼンを目指そう
■5-2 デスマーチの立て直し
●デスマーチとは
・デスマーチによる弊害
・デスマーチ予備軍に現れる兆候
・デスマーチの立て直し方法
・プロジェクトのボトルネックは何か?
・デスマーチにならないためには
■5-3 バグとどう向き合うか
●プロジェクトとバグ管理
●筆者の本音
・「クジラ飛行机」より
・「あかさた」より
・本書のまとめ
■用語解説
■謝辞
お問い合わせ
本書に関するお問い合わせは、下記のボタンをクリックしてお問い合わせフォームよりお問い合わせください。