チケットドリブン開発でバグ削減!

チケットが中心の開発手法「第2回:なぜTracの導入に失敗するのか?」では、Tracの中心機能となるチケットについて説明し、導入のポイントをまとめた。今回はチケットを開発の中心位置に持ってくる「チケットドリブン開発」について解説していこう。チケットドリブン開発とはチケットドリブン開発(チケット駆動

masuidrive

2007年12月20日 20:00

チケットが中心の開発手法

「第2回:なぜTracの導入に失敗するのか?」では、Tracの中心機能となるチケットについて説明し、導入のポイントをまとめた。今回はチケットを開発の中心位置に持ってくる「チケットドリブン開発」について解説していこう。

チケットドリブン開発とは

チケットドリブン開発(チケット駆動開発:Ticket Driven Development)とは、チケットを書いてから開発を行うという手法だ。読者の皆さんもご存じのようにテストドリブン開発(Test Driven Development)をもじったものである。このチケットドリブン開発は「まちゅダイアリー(http://www.machu.jp/diary/)」のまちゅ氏がITpro Challenge!のライントニング・トークスで提唱したものだ。

チケットの中心の作業がバグを低減する!

開発におけるコミュニケーションは、口頭や会議、メール、チャットなど、さまざまな媒体を使って行われている。そのため情報が分散し、指示ミス や言った言わないなどの情報伝達ミスからバグを引き起こすことが多々ある。会議など大勢の場で決まったことでも、それを受け取った個々人で解釈が違うた め、結果としてバラバラな行動をとってしまうこともある。皆さんもこのような経験があるのではないだろうか。

通常このような状態を避けるために、指示を出す側がフォーマットに則った指示書を作り、それを基に作業を行うという形式をとる。しかし、迅速な開発が求められる昨今では「指示書が無いと動かない」では仕事が成り立たないことも多いのが実情だ。

さらに、「成果物であるソースコードとコミュニケーションの内容を同定しにくい」という問題もあげられる。

例えば、ユーザ登録のバグを直すために「User.rb」というソースを変更したとする。後日、他の開発者が見たときに変更されていることに気がついたが、なぜ変更されたのかについてソースを見ただけでは、理解することができないという状況だ。

確かに、変更内容をコメントに残すという方法もある。しかし、ソースに対してのコメントが膨大になってしまうと可読性が大きく下がるという欠点がある。また、別途エクセルなどで並行で管理する手法もあるが、管理するファイルが増えると管理が煩雑になりがちである。

これを解決するために、「作業に対する指示書のようなものとして、チケットを使おう」というのがチケットドリブン開発だ。

このチケットドリブン開発では、

作業はチケットを受け取ってから
チケットドリブン開発の名前の由来はココからきている。コードを書くなど、なんらかしら作業をするときには、まずTracのチケットを作り、それに基づいて行う。
 
チケット無しのコミット禁止
 
レビューコメントはチケットの履歴で行う
Subversionにソースをコミットするときには、必ずチケットの番号を書く。こうすることで、ソースの変更が、どのような目的で行われたかが明白だ。そのチケットに関するコミュニケーションは、「チケットの履歴」というコメント欄で行う。

チケットドリブン開発の約束事

の3つの約束事をあげている。これに従って、作業に関するすべての情報をチケットで管理するのである。チケットで管理することによって、コミュニケーションの齟齬をなくすことができ、結果としてバグの低減につながっていくのである。

この中で一番大切なのは「チケット無しのコミット禁止」だ。Subversionなどのリビジョン管理システムではソースコードの管理が可能だが、作業内容を管理することは難しい。それをチケットで補強するのが、このチケットドリブン開発なのである。

では実際のチケットドリブン開発の流れをみていこう。

人気記事トップ10

人気記事ランキングをもっと見る

企画広告も役立つ情報バッチリ! Sponsored

ClickHouse Cloudが実現した広告運用SaaS「ATOM」のデータ基盤革新、パフォーマンスを向上しながら、運用負荷とコストを削減 11月11日 6:20 AIで開発が加速する時代、品質保証はどう変わる? Tricentisが示すAIエージェント活用の実像 11月9日 6:45 悪用までの猶予が「1分」に迫るフロンティアAI時代に開発と本番を貫く脆弱性管理が必要 10月29日 8:30 欧州CRA対応とSBOM運用。AI生成コードのOSS混入問題の対策とは ――スニペット単位で検出する「FossID」「Insignary Clarity」によるSBOM運用 9月16日 6:40 PostgreSQLからTiDBへ、稼働中SaaSで進める段階的DB移行の実践と再設計への展望 9月7日 6:30 機能安全開発におけるGoogleTestの活用を支援!「Parasoft C/C++test CT」で実現する効率化&AI連携 4月14日 6:30 【CNDW2025】Grafanaが明かす「オブザーバビリティの哲学」ー最小限の労力で実用的なインサイトを得るには 1月23日 6:30 【CNDW2025】プロダクト急増に備える基盤刷新 ーウェルスナビがECSからEKSへの移行で得た知見とは 1月15日 6:30 【CNDW2025】250環境を5人で運用、構築時間は30分に ーKINTOテクノロジーズが語るインフラ基盤組織の作り方 2025年12月18日 6:30 新たな自動化で熱視線! AIエージェントの「推論能力」を支える2つのコンポーネントとは? 2025年11月28日 6:30