「チケット駆動開発」は成功への秘訣の書
このたび、小川さんさんとの共著で「チケット駆動開発」という本を出版することになりました。
このチケット駆動開発というのは、TracやRedmineのような障害管理ツールのチケットと呼ばれる障害票にあたるものをタスクの管理に用いる方法です。このチケットは構成管理と連携し、ソースコードやドキュメントの更新がどのような理由で更新されたかを記録することができます。これは"No ticket, No commit"と呼ばれる基本ルールです。チケット駆動開発の特徴はこのルールによって生まれます。
まず、チケットはコミュニケーションの中心です。チケットの更新はメールやRSSリーダーによってリアルタイムに通知されます。チケットを介して開発に関する議論が行われ記録されます。
その記録は開発に役立ちます。チケットの議論によってソースコードの更新理由の詳細を知ることができ、ソースコードの解析に役立ちます。同時にコミットしたファイルだけでなく、チケットへの関連づけによって、関連ファイルを明確に示すことができます。
また、チケットはプロセスを自動化します。チケットにはステータスがあり、プロジェクトのワークフローに従って更新されます。権限のあるユーザだけがステータスを更新できますので、必要な確認作業がもれなく実施されます。
さらにツールによる自動化も進めます。CIツールやテストツールなど、チケットと関連づけることで、プロジェクトの自動化を推進します。
このような特徴を持つチケット駆動開発は、プロジェクトの負担を減らして成功に導きます。それは、単にツールを導入することではありませんし、ツールを思いつきで組み合わせるだけでもありません。
かつて、UNIXはツールボックスと言われました。パイプやリダイレクトによって様々なツールを組み合わせることができたからです。UNIXは自由度が高く、コマンドを組み合わせて様々な用途に利用可能です。プログラマのアイデアを生かして高い生産性を実現する反面、基本的な使いこなしができないとうまく活かせないこともありました。
そこで、基本的な使い方は「UNIXプログラミング環境 (海外ブックス)」や「プロフェショナルUNIX (Ascii software science―Operating system)
」を参考に、UNIXマガジンに連載された高野豊さんの「root(ルート)から/(ルート)へのメッセージ―スーパーユーザーが見たひととコンピュータ
」に載っているシステム管理者に必要な使いこなしの秘訣を参考にしました。多くの方もこれらの書籍を参考にされたと思います。
チケット駆動開発に用いるツールも自由度が高く、いろいろな利用法が可能です。しかし、使いこなすにはいくつかの秘訣があります。書籍「チケット駆動開発」には、プロジェクトを成功させるための秘訣を書き記しました。成功するプロセスにはどのような秘訣があるか、プロセスプログラミングを提唱したオスターワイル氏に習い料理をメタファに説明します。
プロの料理は単純ではない
料理はソフトウェア開発と同じように、自由度の高い作業です。作業には「さしすせ」(リンク先はWikipedia)のように、基本的なルールが存在しますし、多くの段階があって、ほどほどの水準に達することはできても、安定した味付け、短時間の調理、困難な条件下での調理、新しい料理の開発など、プロのレベルに至るには多くの知識と経験が必要になります。
基本的な知識
料理には基本があります。基本的な包丁の使い方だけでなく、材料や調味料の名称、分量や火の強さなど基本ができなければ、始まりません。
本質の理解
安定した味付けを行うには、火の通り具合や温度の見極めなど、強火で5分というような単純なメトリクス(尺度)で表現できない、音の変化や「しなっとするまで」といった材料の状態を見極めることが必要であることを知ります。
作業の効率化
レシピ集を読めば、それなりに調理ができるかもしれませんが、作業の段取りを最適化することは難しいでしょう。下ごしらえから仕上げに至るまでの依存関係を知っておく必要があるでしょう。そこには「さしすせそ」のような基本ルールのほか、ゆでた材料を余熱で仕上げるなど、多くの工夫が必要になります。
状況に合わせた工夫
また、食材の状態やその日の気温、湿度にあわせて調理方法を工夫します。痛んでいるところを取り除くだけでなく、火の強さや調理時間などの調整によって、その食材のもつ可能性を引き出していきます。
能力の発揮
さらには、入手可能な食材にあわせて、新しい料理を生み出す必要があるかもしれません。それは、一人ではできないかもしれません。仲間の協力を得てアイデアを出し合い、よりよい料理に仕上げないといけません。上司と部下でなく、協力し合える関係を築かなければ、うまくいきません。
このように考えると、「料理は奥が深い」ということに気づきます。定番のレシピだけでなく、様々な料理のレシピを知り、その背景にある本質や依存関係、ルールを理解するほか、よりよいチームを構築することで、作業を効率化し、状況にあわせた対応ができ、アイデアを出し合って工夫することができるのです。
書籍「チケット駆動開発」には、定番レシピに相当する基本的な障害管理の基本や、構成管理の秘訣のほか、チケット開発のノウハウを詰め込みました。また、従来法の問題点から読者のプロジェクトの問題点を見極めてチケット駆動開発をカスタマイズできるように、テーラリングガイドをつけました。また、基本は押さえていますが、入門書にするには濃い内容が多いので、用語集をつけることで説明を補うようにしました。
「Redmineによるタスクマネジメント実践技法」に続くチケット駆動開発の解説書第2弾「チケット駆動開発」をぜひご覧ください。
今回、多くの方のレビューにご協力いただきました。とても感謝しております。また、レビュアーの方だけでなく、平鍋さんと倉貫さんにとても素敵な推薦文をいただきました。もし書店で見かけられましたら、推薦文だけでもお読みください(ついつい買ってしまわれることを期待しています)。
« [#TiDD] 第5回 RxTstudyでチケット駆動開発の新刊書を告知してきました。 #RxTstudy | トップページ | [#TiDD] 問題の見極めがチケット駆動の成功の秘訣 #RxTstudy »
「チケット駆動開発」カテゴリの記事
- 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)
この記事へのコメントは終了しました。
« [#TiDD] 第5回 RxTstudyでチケット駆動開発の新刊書を告知してきました。 #RxTstudy | トップページ | [#TiDD] 問題の見極めがチケット駆動の成功の秘訣 #RxTstudy »
コメント