tuneの日記

アジャイル開発、組織変革、マネージメント、ファシリテーションについて学んだことの記録

ワントランク開発 / トランクベース開発

概要

開発者が1つだけ存在する最新版(trunk/master)に直接コミットをし、ブランチを切らずに開発を行う。 ブランチを切るという誘惑に打ち勝ち、長い間最新版と離れることで発生するマージに時間がかかる問題や、コードの衝突問題が発生しないようにする。

最新版が常に統合された状態になり、マージや衝突の問題を早期に気づくことができるメリットがある。

FAQ

いつコミットするの?

良いタイミングでいつでも。1日に複数回が理想。

特定の機能追加・不具合の修正を100%完了させてからコミットする必要はなく、他の人の作業や検証を止めなければ複数の修正に分割してコミットすれば良い。

いつコードレビューするの?

コミットしてからレビューすることもできる。 コードに未レビューの修正が入ることと、ブランチの生存期間が長くなってマージ工数が膨らむことを天秤にかけて判断すればよい。

Pull Request / Merge Requestを使っているからうちは1トランク開発だよ

厳密にはブランチを切っているからワントランク開発になっていない。

開発中の機能は動かないようにしたいんだけど

フィーチャートグルのようなソフトウェアスイッチ(設定ファイルで有効化するとか)を使うとよい。

せっかくGit使っているのになんでブランチ使わないの?

必要ないなら使う必要はない。

こんなの上手くいきっこないよ

ためしにやってみて、上手くいかなかったらやめれば良い。

ネタ元