なぜ日本ではチケット駆動開発が注目されるのか?
このたび、障害管理ツールJIRAなどで有名なアトラシアン様のブログにゲスト記事を投稿させていただきました。この記事は書籍「チケット駆動開発
」の共著者である小川さんの記事とあわせて翻訳され、海外でも紹介される予定です。
私の記事では、外国の方に「なぜ日本ではチケット駆動開発が注目されるのか?」という背景を説明しました。多くの方に読んでいただきたいので、このブログでも掲載しておきます。
なぜ日本ではチケット駆動開発が注目されるのか?
Makoto Sakai / SRA(Software Research Associates,Inc.)
近年、日本では書籍が 発売されるなど「チケット駆動開発」が注目を集めています。「チケット駆動開発」が注目されているのは、短期間に大規模開発が行われる日本独特のソフト ウェア開発の事情によるものです。しかしその利用方法を見ていると、チケット駆動開発によって、分散開発が可能な電子カンバン、チケットを中心としたコ ミュニケーション、ツール連携と情報の管理、ワークフローによるプロセスの自動化、などソフトウェア開発における制約を取り除く事を目的としているので、 日本に限らず広く応用が可能であることがわかります。この記事では、日本でチケット駆動開発が注目される理由と、どのように利用されているかについて説明 します。
チケット駆動開発
チケット駆動開発はBTS/ITSのチ ケット(issue)を用いてソフトウェア開発のタスクを管理する方法です。その基本的なルールは “No Ticket, No Commit!” と呼ばれ、BTS/ITSのチケットと構成管理を関連づけます。このルールの下で、チケットを中心にプロジェクトを運営する事で、以下のような効果が得ら れます。
- ツール連携と情報の管理
- チケットの履歴と構成管理の関連付けによってメンテナンス性が向上する
- 様々なツールの連携によって、情報を一元管理できる
- チケットを中心としたコミュニケーション
- 不要なコミュニケーションが減るので、リズムが生まれて作業に集中できる
- 内気なメンバーとコミュニケーションが容易になる
- 分散開発が可能な電子カンバン
- 遠隔地であってもスムーズな情報共有が可能なので、変化に柔軟に対応できる
- チームや個人の視点で報告を集計できるので、プロジェクト管理や自己管理が容易になる
- ワークフローによるプロセスの自動化
- ワークフローによって、確認プロセスを自動化できる
- 作業漏れ、確認漏れが防止できる
日本のソフトウェア開発の特徴
日 本においても、Webソフトウェアやゲームソフトウェアの開発ではアジャイル開発が多く行われています。しかし、開発上の制約によって、ウォーターフォー ルをベースとしたソフトウェア開発も多く行われています。これは、以下のような複雑なシステム、請負契約、開発標準、設計法が背景にあるからでと考えられ ます。
- System of systemと呼ばれるような、複雑で大規模なソフトウェアが開発されている。
- 複数組織で短期間に開発できる様に、仕様を確定した上で請負契約される(もちろん、仕様の変更も行われる)
- 80年代よりウォーターフォールを基にした開発の標準化が進んでいる
- DBMSを用いたデータ中心指向が重視されたので、オブジェクト指向の普及が遅れた
上記のような背景から、日本ではアジャイル開発に対するモチベーションの低い分野が存在していました。
なぜチケット駆動開発が注目されるか?
しかし、日本においても以下のような理由で、状況が変わりつつあるようです。
- コストダウン圧力が高まり、事前の仕様決定に対するリスク予算が確保できなくなった
- ビジネスニーズの変化に対して、自律的で機敏な組織の実現が求められている
- ソフトウェアの多様化により、管理情報(ソフトウェアメトリクス)を統計的に扱う事が難しくなった
- Rubyのような動的言語の普及により、逐次開発が必須になってきた
このようにアジャイル開発の導入が必要な状況になってきています。しかし、以下のような理由からアナログのアジャイル開発への移行ではなく、チケット駆動開発が注目されています。
- 作業スペースが狭く、タスクボードやミーティングスペースの確保が紺案であること
- ノウハウ不足による大規模開発屁への不安
- 決裁権者や関連チームが別拠点に存在するなど体制上の問題
- 管理情報の継続性を失う事への不安
チケット駆動開発の利用シーン
チケット駆動開発には以下のような特徴的な利用法があります。
1) 電子化・自動化されたアジャイル開発
制約が少なく、効率化されたアジャイル開発としてチケット駆動開発が行われています。テスト的にチケット駆動開発を用いてアジャイル開発の実績を示して、BTS/ITSを障害管理に利用しながらアナログなタスクカードに移行する場合も存在します。
2) 変更に機敏に対応できるアダプタブル・ウォーターフォール開発
仕様変更に関連するコミュニケーションや開発作業の効率化を目的としてチケット駆動開発が用いられます。プロセスが軽量化されることで、変更に機敏に対応できます。また、BTS/ITSのマイルストーンを用いて複数リリースに対応し、適応容易なプロセスを実現します。
3) 複数拠点での分散開発
分散開発での作業指示としてのチケット利用もチケット駆動開発と呼ばれる事があります。この場合は、必ずしも構成管理とチケットを連携ません。
4) ワークフローとファイルの関連付けを利用した業務システムへの応用
開発から保守に至るまでの課題(issue)をチケットで管理するDevOps的な利用のほか、IT全般統制や一般業務への利用が広がっています。
まとめ
「チ ケット駆動開発」のブームは日本固有の事情から生まれました。しかし、その利用シーンは特に日本に限ったものではなく、一般的なソフトウェア/システム開 発でも利用可能なものです。多くの事例によって効果的な利用方法が整理されれば、より広く使われる様になると考えています。
« 新技術に踊るなかれ! | トップページ | モデリングを考える - 第19回 関西IT勉強宴会 - »
「チケット駆動開発」カテゴリの記事
- One fact in one placeとチケット駆動開発 - Software Processes are Software, Too -(2021.12.21)
- マルチスレッド処理と進捗管理・配員・作業分割/割り当て- Software Processes are Software, Too -(2021.12.20)
- カプセル化と組織パターン - Software Processes are Software, Too -(2021.12.20)
- [#TiDD] ポケモンGOにチケット駆動開発のポイントを学ぶ(2018.05.01)
- [#TiDD] プロジェクトを成功させるチケット管理(2017.07.02)
コメント