チケット駆動開発でソースが綺麗になる
チケット駆動開発とプログラムの品質に関するメモ書き。
【1】チケット駆動開発でソースが綺麗になる
以前のプログラミングは、ソース1行とコメント1行をペアに書くのが普通だった。
実際は、プログラミング設計書の該当箇所をそのままソースにコメント化して、そのコメントに合わせて実装する開発スタイル。
又、障害修正が発生するたびに、修正日と障害管理No、パッチの範囲を示すコメントを入れていた。
たくさんの人のパッチが入るたびに、コメントが増えて、ガラクタがソース中にどんどん増えていく。
最終的に、本番稼働中のソースはたとえコメントであろうとも、コメントを削除するだけのリファクタリングすらできなくなる。
おそらくこの開発スタイルは、汎用機+Cobol時代に作られたものだろう。
昨今のプログラミングスタイルでは、ソース中に処理説明や修正箇所のコメント化はしない。
仕様に関するコメントは全てチケットへ書く。
ソース中に処理とほぼ同値な無駄なコメント、修正履歴を書く必要なし。
それらは、チケットというソースの一つ上のメタレベルに保持すべき情報。
チケット駆動開発のおかげで、ソースは綺麗になる。
【2】チケット駆動開発がデグレードを防ぐ。
チケット駆動開発が提供する変更管理、構成管理がデグレードを防ぐ。
デグレという用語 - プロフェッショナルプログラミングの世界 - Yahoo!ブログ
デグレが起きやすい根本原因は、バージョン管理が徹底されていないこと。
どのバージョンにどのバグ修正が反映されているのか、という管理は、プロジェクト管理の中で最も基本的な作業の一つ。
バグは結合テスト以降で多発するため、数多くのバグ修正のパッチを副作用無しに反映させるのは非常に難しい。
XPの継続的インテグレーション(Continuous Integration)を実施しているならば、trunkをいつでもリリース可能な品質で保障してくれるので、即座にビルドしてリリースできる。
全ての障害について対処状況を追跡し、かつコード修正と対応付けるバグトラッキング機能は、まさに構成管理の重要な機能の一つ。
バグ管理システム(BTS)は、このバグトラッキング機能を提供してくれる。
チケット駆動開発は更に、チケットとソースのリビジョンを相互リンクするインフラを提供するため、構成アイテム(Configration Item)の状態を管理しやすくなる。
「要件→チケット←ソース」というトレーサビリティのおかげで、ソースの修正理由をいつでも誰でも追跡できる。
仕様がコロコロ変わる場合、その履歴をチケットに残せるため、本来の要件を探る手がかりになる。
チケット駆動開発は変更管理のインフラも提供してくれる。
| 固定リンク
「プロジェクトマネジメント」カテゴリの記事
- 「スクラムの拡張による組織づくり」のScrum@Scaleの感想(2024.03.31)
- ストラテジストとプロジェクトマネージャの役割の違いは何なのかpart2~プロセスのレイヤと達成目標のレイヤが異なる(2023.02.18)
- ストラテジストとプロジェクトマネージャの役割の違いは何なのかpart1~CSFはWBSみたいなものと捉える(2023.02.14)
- PM理論では課業志向の方が関係志向よりも生産性が高いことを主張しているのではないか(2023.01.22)
- 現代日本人の弱点はリーダーシップ不足と生産性が著しく低いこと、そしてリスク許容度が著しく低いことだ(2022.12.23)
「ソフトウェア工学」カテゴリの記事
- 「システムアーキテクチャ構築の原理」の感想part2~非機能要件がシステムのアーキテクチャに影響を与える観点をプロセス化する(2024.05.06)
- 「システムアーキテクチャ構築の原理」の感想(2024.05.06)
- ソフトウェア工学の根本問題から最近のソフトウェア設計を考えてみる(2024.03.03)
- マイクロサービス設計は従来のアーキテクチャ設計と何が違うのか(2024.01.02)
- 「ソフトウェアアーキテクチャ・ハードパーツ」の情報リンク~マイクロサービスの設計技法の課題は何なのか(2023.11.12)
「構成管理・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)
コメント