TiDDを実践して気付いたことpart1~解ける問題であれば人は自然に解決する方向へ動き出す
PFP関西ワークショップ#20で平鍋さんのPFの話を聞いた。
もう何度も同じスライドで同じ内容を聞いているのに、いつも新鮮な感覚がある。
プロジェクトファシリテーションの話を聞きながら、チケット駆動開発(TiDD)でどうやって実現できるか、妄想をめぐらせてみた。
【元ネタ】
【Facilitation】解けない問題を解ける問題へ変換する: プログラマの思索
「ザ・ファシリテーター2―理屈じゃ、誰も動かない!」の本で「解けない問題を解ける問題へ変換する」という挿話がある。
この挿話では、解けない問題を解ける問題へ変換すると、人は自然に解決する方向へ動き出す、という教訓を提示している。
この教訓は、実際の開発現場でとても実感する現象だと思う。
SW開発では頻繁にデスマーチ・プロジェクトが起きる。
デスマーチ・プロジェクトでは、いくら目先の問題を解決しても、問題がとにかく多すぎて、現状がなかなか変わらない。
すると、メンバーもチームも無気力になり、一つの歯車で働いている感覚に陥る。
解けない問題はチームを無気力にするのだ。
過去、SW開発の諸問題を解決するために、色んな開発プロセスやプロセス改善の手法が提唱されてきた。
CMMI、PMBOK、RUP、Agileなど。
それらを勉強すると確かに概念は整理されるけれども、いずれも実践しにくい。
CMMIやRUPは、その膨大な量で圧倒されてしまう。
いくら勉強しても、あまりにも大きすぎて、開発現場へ応用しようとすると、畳の上の水泳練習みたいで、カスタマイズが難しい。
CMMIやRUPは勉強になるけど、運用するにはたくさんのノウハウを必要とする。
Agileも実践的プラクティスが多いけれど、良い方法と分かっていても、手が出せない部分が多い。
Agile開発の根本的な特徴は、頻繁なリリースを支える技術やプロジェクト管理手法が前提であるため、運用するには高度な作業やマネジメントが要求される。
手作業では到底無理であり、専用のツールは高価だったりする。
しかし、この数年で状況が少しずつ変わってきたように思う。
RedmineやTracなどのプロジェクト管理機能を持つBTS、SubversionやGit、Mercurialなど高機能なSCMのおかげで、タスク管理やソース管理をツールで補完できる範囲が広がってきた。
チケット駆動開発はTracのチケット管理から生まれたけれど、Redmineでチケット駆動開発を実践して初めてAgile開発をスムーズに運用できた経験をした。
すると、実際の現場の雰囲気も変わってきた。
つまり、ツールを使ってAgile開発について書かれた本の内容を運用できると、イテレーションを繰り返す度にチームは自然に改善されていった。
そして、Agile開発について書かれた本の内容を実践できただけでなく、それらの本に書かれていない新しい概念が出てきたように感じた。
その新しい概念は、当初はチーム特有のノウハウに過ぎないけれど、イテレーションを繰り返す度にノウハウが積み重なって、一つのプラクティスになる。
そのサイクルは、ツールを導入するとチームやメンバーの行動が変わり、行動が変われば考え方も変わっていく流れと同じ。
つまり、ツールが考え方を変えて、道具が新しい手法を生み出すサイクル。
ソフトウェアはとても柔軟で、しかもすごく威力がある。
それはビジネスだけでなく、SW開発自身についても同様だ。
ソフトウェア(ツール)で、SW開発の諸問題を解けない問題から解ける問題へ変換すると、チームもメンバーも自然に解決する方向へ動き出す。
SW開発の現状は、各種の概念や技法は出し尽くされた感があり、それをいかにツールで実現して、現場で運用できるようにするか、という問題へ変わりつつある気がする。
チケット駆動開発もその流れにあると思う。
実際、チケット駆動開発はBTSという従来のツールを使っているし、タスクをカードで管理する発想もXP等で既に提唱されているからだ。
しかし、チケット駆動開発というアイデアによって、アジャイル開発のインフラが整ってきたという現状がある。
今後、チケット駆動開発を実践して気付いたこと、考えたことを色々書いていく。
| 固定リンク
「プロジェクトマネジメント」カテゴリの記事
- 「スクラムの拡張による組織づくり」のScrum@Scaleの感想(2024.03.31)
- ストラテジストとプロジェクトマネージャの役割の違いは何なのかpart2~プロセスのレイヤと達成目標のレイヤが異なる(2023.02.18)
- ストラテジストとプロジェクトマネージャの役割の違いは何なのかpart1~CSFはWBSみたいなものと捉える(2023.02.14)
- PM理論では課業志向の方が関係志向よりも生産性が高いことを主張しているのではないか(2023.01.22)
- 現代日本人の弱点はリーダーシップ不足と生産性が著しく低いこと、そしてリスク許容度が著しく低いことだ(2022.12.23)
「Redmine」カテゴリの記事
- Redmineのバージョン設定でプロジェクトの設定方法が違う(2024.06.23)
- ウクライナのRedmine開発者が作ったRedmineテーマやプラグイン(2024.06.18)
- 第26回redmine.tokyo勉強会の感想~多様性はコミュニティが成功する重要な要因の一つ #redmineT(2024.06.15)
- Redmineで持ち株管理する事例(2024.04.21)
- チケットはデータでとプロセスの二面性を持つ #redmine(2023.12.24)
「プロジェクトファシリテーション」カテゴリの記事
- PM理論では課業志向の方が関係志向よりも生産性が高いことを主張しているのではないか(2023.01.22)
- 「世界を動かすプロジェクトマネジメントの教科書」の概念図(2022.01.16)
- 【資料公開】チケット駆動開発の解説~タスク管理からプロセス改善へ #redmine(2022.01.14)
- 昭和の管理者の承認処理は判子押印、令和の管理者の承認処理はいいねボタンを押すこと(2021.12.31)
- チケット駆動開発のプロセスとチケット管理システムの全体像 #Redmine(2021.12.28)
「廃止Mercurial」カテゴリの記事
- GitHubはオープンソースのプロセスを標準化した(2015.06.11)
- 「反復型ソフトウェア開発」はソフトウェア工学の良書(2013.02.09)
- Mercurialに取り込まれたコミュニティ由来の機能一覧(2013.01.12)
- WordやExcelから直接Mercurialへコミットできるアドオンmsofficehg(2012.12.07)
- RedmineでSubversion リポジトリ表示を高速化する方法(2012.11.23)
「構成管理・Git」カテゴリの記事
- 「GitLabに学ぶ 世界最先端のリモート組織のつくりかた」の感想(2023.12.10)
- パッケージ設計の原則の意義は変化しているのか(2023.09.30)
- 小説活動にプルリクエスト駆動が必要になってきた(2022.05.08)
- 【資料公開】チケット駆動開発の解説~タスク管理からプロセス改善へ #redmine(2022.01.14)
- プログラミングしてる時はでっかいピタゴラ装置を作ってるみたいな感じ(2022.01.09)
「チケット駆動開発」カテゴリの記事
- 第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)
コメント