「チケット駆動開発」の感想を集めてみたpart6
「チケット駆動開発」の感想を見つけたのでメモ。
【2】チケット駆動開発は「ソフトウェア開発と真剣に向き合う本」 - 勘と経験と読経
(引用開始)
先日発売された書籍「チケット駆動開発」をやっとのことで読み終えた。大変興味深い本だったのだが、仕事の状況などにかまけて通読するのに妙に時間がかかってしまった。ソフトウェア開発のコミュニケーションに関するプラクティスに関する本と捉えていて、いろいろな問題提起が含まれているのがとても面白い本だと思った(逆に、実践的ハウツー本を求めている人には向かないかもしれない)。以下、感想をいくつか。
<方法論ではなくて一つのプラクティス>
「チケット駆動開発」はひとつのプラクティスであって方法論ではないと思っている。必要に応じてプロジェクトに取り込めば良い、プラガブルなテクニックのようなものだ。
ウォーターフォール型でもアジャイル型でもハイブリッド型でも良いが、まず前提として「きちんとソフトウェアを開発できる計画・作戦が立てられる」人でないと本書は面白くないと思う。
逆に本書はソフトウェア開発の現場を加速したり向上させたりするものという理解。
一種の「コミュニケーションパターン」×「リーダーシップパターン」なんだろうと思っている(詳細後述)。ただ面白いのはイシュー管理システムを活用して、これらのパターンを現場に半強制してしまうところ。
ただし、ツールの導入は現場を取り巻く環境などにも依存してしまうので普遍的ではない(ツールは時により進化してく)。本書がツール「ありき」で書かれている印象なのはちょっと残念なところもある。
本書を読んでRedmineやTracのようなITS・BTSを導入しちゃうのは多分乱暴だろう。すこし引いて手元の現場の状況をよく観察してみることから始めないとうまくないと思っている。
<コミュニケーションパターンとしてのチケット駆動開発>
もともとソフトウェア開発は大量のコミュニケーションで成り立っているようなものだけれども、チケット駆動開発ではこのコミュニケーションを汎用的な「チケット」でマーク付け(タグ付け?)して管理するというのが一つのキモだと思う。ソフトウェア開発以外の世界だと、基本的にコミュニケーションは「流れ去っていく」ものである。議事録であったりメールの履歴としての記録はされるが、これらはあくまで記録であって随時閲覧されるものではない。チケットになって初めて管理できるようになる、というのがポイントなのだと理解している。
元ネタを失念してしまったのだけれども、どこかの企業の社長は部下に指示をする際に二枚複写のメモ帳に書き込みをして、一枚を渡しているそうだ。これも一種のチケット管理のやり方で、局面がフィットしていればうまく回るような気がしている。
<リーダーシップパターンとしてのチケット駆動開発>
チケット駆動開発を実際にやると「計画」から距離を置けるようになるというのも良い点だ(別にアジャイルを擁護するつもりはないのだけれども)。チケット駆動を回すと「権威付けされたトップダウンのリーダーシップ」は自動的に抑止されるような気がする。
・指示出し・タスク出しの間にチケット管理システムが入るので、トップダウンの性格が緩和される
・作業完了報告もリーダー宛というよりは、チケット管理システムが相手先になる
・指示出し・タスク出しそのものがトップダウンからボトムアップに切り替わる
・リーダーシップは「皆に指示出しをする」というより「全体が回るように支援する」傾向が強くなる
うまく整理がついていないけれども、このあたりの変化がチケット駆動開発の面白みなのかもしれないと思っている。
(引用終了)
(引用開始)
2月くらいからredmineを使い始めて、中規模なサイトを2,3個作って、チケットの粒度とか運用サイクルとかリズム(トヨタ生産方式でいうタクトに近いかな)なんかについて色々とわかってきたので改めて読んでみた。
最初は複数人で使うつもりで啓蒙してみたりしたんだけど、予想通り難しかったので、他人にふった仕事もIssueとして全て自分で管理したら、うまくまわった。4.2節の権限ポリシーをワークフロー型に振って、他人に仕事をアサインするっていうタスクをチケットとして切ったことになるのかな。
他人への仕事のアサインを不確実性のあるタスクとして登録して、タイムアウトしたら自分に再アサインするというやり方にしたわけだけど、これで淡々とこなせるようになったし、さらにイライラしなくなって精神的にも都合が良かった。
ついでにチケットも会議と紐付けるようにしたので、会議を定期的にやれば、プロダクトの開発サイクルもそれにつられてタイミングが揃うようになったし、会議の議題とかチケットの粒度も次の会議までの期間でできそうな(3週間くらい)に揃えやすくなった。
変化を受け入れる技術、プロジェクト管理、開発環境がなければ、アジャイル開発は絵に描いた餅です
これはそうだよなとしみじみと思った。というわけで、これ(チケット駆動開発)も読む予定
(引用終了)
【4】「curiosity driven works」「好奇心駆動仕事」でいこう:坂本史郎の【朝メール】より:ITmedia オルタナティブ・ブログ
(引用開始)
技術者A) 単体テストを作成してから本体の開発に取り掛かる、
テスト駆動開発は大変よいものだと思います。
継続して布教していこうと思います。
私) ⇒「テスト駆動開発」という言葉があるのですか。Wikiでみたら
『近年はビヘイビア駆動開発へと発展を遂げている。』だそうです。
なぜ「駆動」という言葉を使っているのだろうか。
drivenの直訳としてはちょっといただけない。
技術者A) Hoge driven development はすべからくHoge駆動開発と訳されています。
何か違和感がありますか?
私) ⇒違和感ありますね。drivenというのは、「意識して」とか「中核の」
というような意味合いで使われていると思うのです。定着してしまって
いるのであれば、最初に訳したケースが残念だったということか。
技術者B) →ちょうどTさんから貸して頂いた『チケット駆動開発』という本の中で、
「なぜ「チケット駆動開発」と呼ぶか?」という節があります。
そこで示された理由は
「チケットがプロジェクトをテンポよく推進してくれる」
ということでした。
この話のスタートである「テスト駆動開発」も、
「テストがプログラミングをテンポよく推進してくれる」
ような仕掛けになっています。
この「テンポよく推進」を言い表す日本語として「駆動」を充てるのは、
あながち外れてはいないと私は思います。
(引用終了)
【6】ソフトウェア開発プロセスを環境にする - 勘と経験と読経
(引用開始)
<ルールとしてのソフトウェア開発プロセスの必要性>
ソフトウェア開発プロセスは皆が守るべきルールのようなもので、ルールである以上みんながそれに従わなければいけない。CMMIなどでは遵守状況のモニタリングと継続的な改善を行う必要がある。この考え方の前提は「ルールを守らなくてもソフトウェアを作ることができる」ということなのだと思う。
ソフトウェアには物理的制約がほとんど無いので、絶対に守らなければならないルールというものは無い。例えばビルなどの建築物であれば当然のことながら土台の基礎工事をした後に、下部構造から構築しなければいけない。しかし、ソフトウェアにはこのような制約は無い(どんな方法でも構築できる)。
しかし、自由なやり方では大失敗してしまうことがある。そして、成功した場合より失敗した場合のダメージが大きいのがソフトウェア開発である。ソフトウェアでは無制限に失敗することが出来るからである(その反面、一般的には成功は有限)。
だからベストプラクティスを探してルールを作るのだけれども、それを守るというのがまた難しい。
<ルールを環境にする>
いまチケット駆動開発を読んでいる(未了)。
(中略)
チケット駆動開発のルールはシンプルで、『チケット無しのコミットは禁止(No Ticket, No Commit!)』というものである。この手法が良いのは、これ以外のルールをRedmineなどのイシュー管理システム(ITS/BTS)とバージョン管理システム(VCS)にまかせて環境化し、隠してしまっていることだと思う。
実際には、No Ticket, No Commit!以外のルールも存在するのだけれども、そのコントロールはITS側にまかされている(記録やワークフローなど)。
実際に存在する多数のルールをメンバーが意識する必要は無い。一つのルールを守るためにITSを使っていれば自然に所定のプロセスで作業をするようになる。
もちろんツールに頼ってしまうことによって、「開発者が考えなくなる」という問題はある。
(中略)
もちろん技術者教育は重要なのだけれども、なんでも教育の問題にするのは違っているのではないだろうか。
別にチケット駆動開発だけを持ち上げるつもりはないけれども、「考えなくても自然とルールが守れる環境をつくる」ということもセットで考えるべきではないかと思う。
(引用終了)
皆さんの感想を読みながら、更に「チケット駆動開発」について色々考えている。
| 固定リンク
« astahの品質スイートプラグインとSVNプラグインが凄い | トップページ | TiDD初心者から必ず聞かれる質問~「チケットの粒度」と「チケットの完了条件」 #47redmine #redmine »
「プロジェクトマネジメント」カテゴリの記事
- 「スクラムの拡張による組織づくり」の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」カテゴリの記事
- 「世界一流エンジニアの思考法」の感想(2024.12.08)
- 「システムアーキテクチャ構築の原理」の感想part2~非機能要件がシステムのアーキテクチャに影響を与える観点をプロセス化する(2024.05.06)
- 「スクラムの拡張による組織づくり」のScrum@Scaleの感想(2024.03.31)
- ソフトウェア工学の根本問題から最近のソフトウェア設計を考えてみる(2024.03.03)
- 「GitLabに学ぶ 世界最先端のリモート組織のつくりかた」の感想(2023.12.10)
コメント