30
29

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

チケットの質を(ある程度)担保するためのテンプレート

Last updated at Posted at 2015-03-17

よいチケットは不幸を防ぐ

  • 再現できないから直せない
  • ぱっと見面倒そうなので後回しにする

チケットに情報が不足していると「誰かが」それを調べ・確認し、追記しなければなりませんが、
そのような「予想外のタスク」は地味にスケジュールを圧迫します。

  • 書いてある通りに直したのにお客さんに「思ってたんと違う」と言われてやり直し
  • 直したら今までOKだったところが壊れて結果的にバグが増える・やり直し

開発は往々にして「仕様書に書いてあることを実装すればOK」ではありません。
製品の歴史的経緯、市場の傾向、バグの勘所、開発メンバーの顔ぶれ、お客さんの性格・ビジネスの進め方、無数のミーティング・交渉の積み重ね、等々から、「暗黙の要求」「将来のための最適解」を「読み取って」対応する必要がありますが、
「プロジェクトに途中から参加したメンバー」や「忙しい開発者」には、それら事前知識を十分に知る時間が取れません。

…などと書きましたが、単純に

  • 何のために切られたか分からない一行チケット
  • 直される当てがない積みチケット
  • 何をどうしたのか確認のしようがない「直した詐欺状態」のチケット
  • 書かれた通り実装したのにリリース後にリオープンされるチケット
  • 仕様考慮漏れのためにデグレで遅延するチケット

が好きではないので、「そのチケットを無事にクローズさせるために必要十分な情報が書かれた理想のチケット」を追求しようという話です。

テンプレート

背景: ※ある場合のみ。なければ省略

環境:
Revision: commit XXXXXXX (7桁以上)
Device: NexusS (4.1.2), iPhone6 (8.1.3)
Test Data: ※現象が起きるデータ、コンテンツ、ファイル、ページ

再現手順:

  1. アプリを起動してテストデータを表示する
  2. ...

実動作(現象):

期待動作:

再現率: ※100%のときは省略してもよい

ログ: ※クラッシュログなど、必要な時

背景:

(主に仕様策定や機能実装チケットで)なぜこのチケットが起票されたのか、このチケットを対応することで最終的に実現すること/解決したい課題、などを記載する。
例えば、「商品を横断的に検索する機能実現のため」や「クライアント側の修正が困難なためサーバー側で対応する必要がある」、「AppStoreのレビューでXX機能についての改善要望が多かったため」など。

x: XXがしたいからXXを実装する
→ o: XXをすることでOOがしたいから(OOをすることを想定したXXの実装ができる。OOをするための最適解はXXではないことに気付ける)

環境:

いつでも/誰でも、確実に再現ができるよう、端末・OS・コンテンツなどの情報を記載する。
Jenkinsでビルドされたものを使用した場合は、ビルド番号も記載する。

再現手順:

なるべく簡単・確実に再現できる手順を調査し、記載する。
(再現が面倒・時間がかかる・難しいチケットは修正しにくく、改修確認しづらい)

実動作(現象):

いつでも/誰でも、どのような現象かが理解できる/再現したかしないかを判断できるように分かりやすく、具体的に記載する。

NGワード: おかしい、変、不正、異常、崩れる
x: 表示がおかしい(←どうおかしいの?)
→ o: 文字サイズが変わらない

言葉で表現しにくい現象は、スクリーンショットを使う。
x: 画面の一部が白くなる(←一部ってどこ?どんなふうに白くなるの?)
→ o: 画面の一部が白くなる(添付画像参照)

期待動作:

いつでも/誰でも、期待動作かどうかを判断できるように分かりやすく、具体的に記載する。
NGワード: 正しい
x: 検索が正常に動作すること(←何ができれば正常なの?)
→ o: 検索でヒットしたページへ移動し、検索ワードをハイライトすること

言葉で表現しにくい現象は、スクリーンショットを使う。
x: 正しく表示される(←どういう表示が正しいの?)
→ o: 正しく表示される(添付画像参照)

【重要】影響範囲のバグ発生・見逃しを予防するため、現象に関連する仕様も記載する。

x: 背景色が設定した色に変わること
→ o:

  • カテゴリA,Bの各条件の時、背景色が設定した色に変わること
  • モードXの時も設定した色に変わること
  • モードYの時は設定によらず白背景で表示すること

x: 文字列がハイライトされること
→o :

  • 文字列がハイライトされること
  • 背景色を設定で変更しているときでもハイライトされること
  • モードX,Yの時もハイライトされること

未来の自分のためのチケット作成

何百・何千と起票されてはクローズされていくチケット群。
整然と並べられただじっと対応されるのを待っているチケット群。
忘れた頃に掘り起こされては埋もれ、一瞥されては閉じられていくチケット群。

時間の経過とともに蒸発していく情報をできる限り記録して、未来の誰かの「?」に答えられるように、頑張ってチケットを書きましょう。

30
29
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
30
29

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?