チケット駆動開発が進むべき道part2~プロジェクト管理サーバーは開発チームの資産
プロジェクト管理の歴史が書かれた記事から、チケット駆動開発に至っている現在を連想した。
又、「プロジェクト・マネジメントは組織としての能力である」という記事から、チケット駆動開発が進むべき道について考えたことをメモ。
ラフなメモ書き。
【元ネタ】
ECナビ エンジニアブログ : ECナビにおける案件管理の歴史 ~Excel/MS ProjectからRedmineまで~
プロジェクトマネジメント ワンポイント講義~プロジェクト・マネジメントは組織としての能力である
ECナビ エンジニアブログ : ECナビにおける案件管理の歴史 ~Excel/MS ProjectからRedmineまで~を読むと、Excel・MS Project→自作ツール→Trac・Redmineに至る流れの背景がよく分かる。
10年前まではオープンソースのプロジェクト管理ツールは存在せず、紙やExcelで障害報告してタスク管理してワークフロー管理していたのだ。
だが、今のように短期間にアウトプットを出さなくてはならない状況が多いと、もはやそのような作業をのんびりすることはできなくなっている。
特に、運用ルールの徹底が難しい。
何故なら、新規加入のメンバーや新人が運用ルールに慣れるために、大量のドキュメントを読まざるを得ないが、実際に実行してみると、プロセスを飛ばしていたり、ドキュメントに書かれていない運用ルールがあったりするからだ。
プロジェクトリーダーの仕事の一つは、運用ルールを作ることにあるが、チームに馴染まない運用ルールを提案して、メンバーに強制しても逆に混乱するだけだ。
チケット駆動開発の利点はいくつかある。
一つ目は、RedmineやTrac、Subversion、Hudson、Gitのようなツールに慣れれば、自然にソフトウェア開発のベストプラクティスが身に付くこと。
作業を開始する時はToDo代わりにチケットを自分で登録して、作業履歴を自ら残す習慣が身に付けば、自分自身で作業を振り返るきっかけになるし、メンバーと情報共有できる場にもなる。
コミットログにチケットNoを書く習慣を身に付ければ、コミットする目的を必ず自覚するようになるし、不用意なコミットもなくなる。
また、コミットログに残されたチケットNoから、過去の修正理由を探すことも楽になる。
あるいは、GitやMercurialのバージョン管理でブランチを状況によって使い分ける手法を身に付ければ、機能追加していくコードラインと品質重視のコードラインを別々に維持しやすくなるし、突然の仕様変更があったとしても、緊急リリースに対応出来るインフラもある。
特に、オープンソースのツールは世界中のたくさんの開発者が試してきて、良いと思われた機能を実装しているのだから、その機能に慣れた方がプログラミングの良い習慣が身に付く。
二つ目は、開発者や管理者の作業を透過的にサポートするインフラがあること。
ソフトウェア開発はバージョンアップが激しいため、元々変化しやすい。
そんなソフトウェア開発のプロセスで重要なのは、多種多様なバージョンアップ作業を変更管理プロセスで制御すること。
しかし、大量のドキュメントや申請・承認が厳格すぎる運用ルールは、開発の機動力を落とし、メンバーを無気力にさせる。
チケット駆動開発なら、チケットの種類をワークフローに紐づけることによって、メンバーにワークフローを意識させずに、一つの成果物を複数人でチェックすることが自然にできる。
また、チケットに予定・実績工数・ステータスなどを入力する運用ルールを徹底できれば、開発者は進捗報告を気にせずに作業に専念できるし、管理者はRedmineやTracのような優れたチケット集計機能によって、リアルタイムに進捗や品質をモニタリングできる。
以上の二つは、プロジェクトマネジメント ワンポイント講義~プロジェクト・マネジメントは組織としての能力である の記事にあるプロジェクト・マネジメント能の中層構造のうち、「プロジェクト遂行手順・WBS体系などの標準」に相当するだろう。
三つ目は、チケット駆動開発を運用するインフラが開発チームの資産になること。
チケット駆動開発を運用するインフラとしては、タスク管理(Redmine・Trac)、構成管理(SVN・Git)、ビルド管理(Hudson)、テスト管理(TestLink)、メトリクス出力(StatSVN)などがあげられる。
それらのツールからなるインフラは、開発チームのプロジェクト管理をサポートするプロジェクト管理サーバーそのものになる。
つまり、プロジェクト管理サーバーはPMBOKの言うPMIS(プロジェクトマネジメント・ソフトウェア)そのものになるはずだ。
アジャイル開発の弱点をプロジェクト管理サーバーが助ける: プログラマの思索
そのプロジェクト管理サーバーがあれば、日々の開発チームの活動のログが貯められる。
そのログはサーバー上で一括管理できるので、進捗や品質をいろんな観点で分析することによって、プロジェクトの現状を報告したり、プロジェクトの将来を予測することが可能になる。
いわゆるソフトウェア・リポジトリ・マイニングと同じ。
つまり、プロジェクト管理サーバーに溜まった過去の実績データは、開発チームの資産そのものだ。
過去の実績データがあるからこそ、開発や運用ノウハウが貯められるし、Web上にあるからこそ、メンバーは簡単に全文検索して探すこともできる。
更に、メンバー全員でKPTによるふりかえりを行えば、より有効な知見を見出すことができるだろう。
プロジェクト管理サーバーのメトリクスは教科書みたいだ: プログラマの思索
ソフトウェア・リポジトリ・マイニング~Web2.0をソフトウェア工学に応用する: プログラマの思索
BTSをBusiness Intelligenceとして使う: プログラマの思索
これは、プロジェクトマネジメント ワンポイント講義~プロジェクト・マネジメントは組織としての能力である の記事にあるプロジェクト・マネジメント能の中層構造のうちの「過去の実績データ」、あるいは「プロセス資産」に相当するだろう。
プロジェクト管理サーバーがプロセス資産であるという意味は重要だと思う。
ツールを使いこなすほど、作業の効率は増すし、運用ノウハウがたまり、更に開発チームに見合った運用ルールが生まれる。
プロセス改善で得られたノウハウは、まさに開発チームの資産だからだ。
チケット駆動開発によって、ソフトウェア開発のプロジェクト管理のハードルが下がって、もっとクリエイティブに開発できる。
そんな環境が誰でも容易に手に入る時代になったのだな、と思う。
| 固定リンク
「プロジェクトマネジメント」カテゴリの記事
- 「スクラムの拡張による組織づくり」の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)
「TestLink」カテゴリの記事
- JSTQBのテストプロセスの概念モデルを描いてみた(2023.05.26)
- TestLinkの要件管理にUSDMを適用する方法(2023.01.22)
- TestLinkのテストケースはクラスとインスタンスの考え方で区別する(2023.01.22)
- テスト管理ツールCAT、TestRail、QualityForwardのオンラインのマニュアルのリンク(2022.09.24)
- テスト管理ツールTestRail、CAT、QualityForwardの感想(2022.07.30)
「プロジェクトファシリテーション」カテゴリの記事
- 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)
コメント