No Ticket, No Commit! #tidd
_shimadaさんが公開したNo Ticket, No Commitの画像を見つけたのでリンクしておく。
チケット駆動開発を実践しているチームならば、RedmineやTracのWikiにこの画像を張って、チケット駆動開発の唯一の規律である「No Ticket, No Commit!」を徹底させるといいと思う。
チケット駆動開発の良い点は、チームでソフトウェア開発する経験が少ない若手や自分でプロジェクトを仕切った経験が少ない新米プロジェクトリーダーにとって、良い習慣を身に付ける格好の場であること。
下記のポイントは実践しているだろうか?
バグ報告票(チケット)を他人にも分かりやすく書いているか?
バグの修正と検証は必ず担当者を代えて、成果物をチェックしているか?
バグ修正したソースは必ずコードレビューを実施しているか?
バグを修正する前に、必ず同類バグ調査を実施して、影響範囲を見極めているか?
バグ検証では、残存バグや同類バグが他にないか、デグレしていないか、という観点でテストしているのか?
RedmineやTracは本来はBTSだから、障害管理のフローに慣れれば、ソフトウェア開発の基本フローが身につく。
プロジェクト内部の作業を実施する前に、必ずチケットに作業内容を起票しているか?
作業履歴や仕様確認のやり取りは、チケットのコメントで残しているのか?
自分が担当のチケットに対して、作業状態や進捗率、実績工数を常に最新化しているか?
チケット集計機能を使って、自分やチームの状態を把握しているか?
ロードマップや変更履歴を見て、チームのゴールやチームにおける自分の役割を自覚しているか?
チケット駆動開発はプロジェクト管理をサポートするので、作業履歴をチケット上に残すことによって、報告・連絡・相談が自然に身に付く。
SCMコミットログにチケットNoを必ず書く運用ルールを徹底しているか?
チケットが1回のコミットで完了するなら「fixes #チケットNo」、複数回のコミットが必要なら「refs #チケットNo」で使い分けてコミットしているか?
コミットする単位は、ビルドエラーが出ないだけでなく、JUnitも通り、機能的にリリースできるレベルのものであるか?
「No Ticket, No Commit! 」の運用ルールでBTSとSCMを連携させることによって、トレーサビリティが実現でき、そのおかげで開発者自身も、他の人がどんな意図で修正したのか、その修正はリファクタリングしても大丈夫なのか、を自然に考える習慣が身に付く。
チケットにプロジェクトのタスク、リスクを全て載せて見える化しているか?
チケットの棚卸しは定期的に行っているか?
リリース計画を意識しながら、チケットの作業順序を決めているか?
リリース計画に基づいて、リリース予定バージョンを意識しながら、チケットを取捨選択しているか?
RedmineやTracの優れたチケット集計機能とチケットの属性の関連を意識して、チケットの属性を決めているか?
チケット駆動開発を運用できれば、新米プロジェクトリーダーでも、チケットの作業順序や担当を色々試すことによって、プロジェクトの回し方が分かってくる。
そして、プロジェクトのリスクを把握する予兆をチケット集計結果から嗅ぎ取ることができる。
更には頻繁なタスクの変更をリリース計画に取り込んで最新化することで、リリース計画の重要性を身をもって経験できる。
羅針盤があるからこそ、チームのゴールも分かるし、メンバーにゴールを共有してもらうこともできるのだ。
チケット駆動開発は仕事をさばく仕組み #agileto2010 #tidd: プログラマの思索にも書いたけれど、良い習慣を身につけた開発者は品質の良いプログラムを自然に書けるようになるから必ず成長すると確信している。
なぜなら、チケット管理システムに含まれる障害管理、プロジェクト管理の機能に慣れれば、ソフトウェア開発のベストプラクティスを自然に身につけることができるからだ。
| 固定リンク
「プロジェクトマネジメント」カテゴリの記事
- 「スクラムの拡張による組織づくり」のScrum@Scaleの感想(2024.03.31)
- ストラテジストとプロジェクトマネージャの役割の違いは何なのかpart2~プロセスのレイヤと達成目標のレイヤが異なる(2023.02.18)
- ストラテジストとプロジェクトマネージャの役割の違いは何なのかpart1~CSFはWBSみたいなものと捉える(2023.02.14)
- PM理論では課業志向の方が関係志向よりも生産性が高いことを主張しているのではないか(2023.01.22)
- 現代日本人の弱点はリーダーシップ不足と生産性が著しく低いこと、そしてリスク許容度が著しく低いことだ(2022.12.23)
「Redmine」カテゴリの記事
- 「RedmineのUbuntu+Docker構築への移行」の感想 #redmineT(2024.11.24)
- 第27回redmine.tokyo勉強会の感想 #redmineT(2024.11.10)
- Redmineのバージョン設定でプロジェクトの設定方法が違う(2024.06.23)
- ウクライナのRedmine開発者が作ったRedmineテーマやプラグイン(2024.06.18)
- 第26回redmine.tokyo勉強会の感想~多様性はコミュニティが成功する重要な要因の一つ #redmineT(2024.06.15)
「ソフトウェア工学」カテゴリの記事
- アーキテクチャ設計はベストプラクティスを参照するプロセスに過ぎないのか?~Software Processes are Software, Too(ソフトウェアプロセスもまたソフトウェアである)(2024.09.22)
- 「システムアーキテクチャ構築の原理」の感想part2~非機能要件がシステムのアーキテクチャに影響を与える観点をプロセス化する(2024.05.06)
- 「システムアーキテクチャ構築の原理」の感想(2024.05.06)
- ソフトウェア工学の根本問題から最近のソフトウェア設計を考えてみる(2024.03.03)
- マイクロサービス設計は従来のアーキテクチャ設計と何が違うのか(2024.01.02)
「プロジェクトファシリテーション」カテゴリの記事
- PM理論では課業志向の方が関係志向よりも生産性が高いことを主張しているのではないか(2023.01.22)
- 「世界を動かすプロジェクトマネジメントの教科書」の概念図(2022.01.16)
- 【資料公開】チケット駆動開発の解説~タスク管理からプロセス改善へ #redmine(2022.01.14)
- 昭和の管理者の承認処理は判子押印、令和の管理者の承認処理はいいねボタンを押すこと(2021.12.31)
- チケット駆動開発のプロセスとチケット管理システムの全体像 #Redmine(2021.12.28)
「チケット駆動開発」カテゴリの記事
- 第26回redmine.tokyo勉強会の感想~多様性はコミュニティが成功する重要な要因の一つ #redmineT(2024.06.15)
- チケットはデータでとプロセスの二面性を持つ #redmine(2023.12.24)
- 小説活動にプルリクエスト駆動が必要になってきた(2022.05.08)
- 知識は経験よりも大切か、経験は知識よりも勝るのか、SECIモデルは相互作用を語る(2022.04.26)
- プロジェクト管理の基本はテーラリング、Redmineはプロセスをテーラリングするツール(2022.04.21)
「Agile」カテゴリの記事
- 「システムアーキテクチャ構築の原理」の感想part2~非機能要件がシステムのアーキテクチャに影響を与える観点をプロセス化する(2024.05.06)
- 「スクラムの拡張による組織づくり」のScrum@Scaleの感想(2024.03.31)
- ソフトウェア工学の根本問題から最近のソフトウェア設計を考えてみる(2024.03.03)
- 「GitLabに学ぶ 世界最先端のリモート組織のつくりかた」の感想(2023.12.10)
- 概念モデリングや設計原則は進化しているのか(2023.10.21)
最近のコメント