Skip to content

7. 小さなバッチで作業する ​

原文: https://dora.dev/capabilities/working-in-small-batches/

定義 ​

小さなバッチで作業する(Working in small batches) は、フィードバックループが重要なあらゆる規律の必須原則です。小さなバッチは、特定の改善が望む効果を生むか素早く仮説検証し、そうでなければ方向転換や仮定の再検討を可能にします。

リーン製品管理の一部であり、価値ストリームの可視性・チーム実験・顧客フィードバックの可視性とともに、ソフトウェアデリバリーパフォーマンスと組織パフォーマンスを予測します。

AI時代にこのケイパビリティはさらに重要になりました。DORA研究: 小さなバッチはAI導入が製品パフォーマンスに与えるポジティブな効果を増幅し、AIの組織摩擦への中立効果を正味のポジティブに変えます。

利点 ​

  • 変更へのフィードバック時間を短縮し、問題の切り分け・修正を容易にする。
  • 効率と動機を高める。
  • 埋没費用の誤謬(sunk-cost fallacy)を防ぐ。
  • AI導入の安全網: AI導入はしばしばデリバリー不安定さの増加につながる。小さなバッチはこのリスクへの核心的対応で、AIの速度を混沌ではなく価値へ導く。

実装方法 ​

新機能を計画するとき、独立して短時間で完了できる作業単位に分割します。各機能/バッチはアジャイルのINVEST原則に従うのが良いでしょう。

  • Independent — 他のバッチと独立し、順序に関係なく作業・デプロイ・検証
  • Negotiable — 反復可能でフィードバックに応じて再交渉
  • Valuable — ステークホルダーにとって利用可能で価値を提供
  • Estimable — 範囲を容易に見積もれる情報が存在
  • Small — 数時間から2日程度で完了
  • Testable — テスト・監視・検証が可能

理想的には、開発者は1日に少なくとも1回、複数の小さくリリース可能な変更をtrunkにチェックインすべきです。

AI時代の要点 ​

AIは大きなコードブロックを素早く生成するのが得意ですが、大きな変更はレビュー・テスト・統合が困難です。小さなバッチを強制すると、開発者の焦点が生のコード生成から思慮深い分解と検証へ移ります。AIツールに大規模なPRを生成させる誘惑を避けてください。機械生成コードは行あたりの認知負荷が人間が書いたコードより高いことがあります。

有用な技法 ​

  • API/サービス層から開始し、UIではなくサービス/API層で開発する。
  • ダークローンチ(dark launching): ユーザーに見せずに本番へ変更をデプロイ。
  • フィーチャートグル(feature toggle): 構成設定に基づく条件分岐で動作をオン・オフ。
  • 抽象化によるブランチ分け(branch by abstraction): 抽象化レイヤーを介して旧実装と新実装を切り替えながら、long-livedブランチを作らずに大規模な変更をtrunk上で段階的に開発・デプロイするパターン。

バッチは本番へデプロイされフィードバック検証が始まったときに完了します。

よくある落とし穴 ​

  • 十分に小さく分割しない。 機能の状態に関係なくコードをコミットし、個々の機能は数日を超えないようにする。1週間以上かかるバッチは大きすぎる。
  • 小さく分けた後に再びまとめて下流へ送る。 これは欠陥・適合性へのフィードバックを遅延させる。

測定方法 ​

  • アプリケーション機能が頻繁なリリースを支えるよう分解されているか?(リリース可能な頻度、チームごとのばらつき、大きな機能による遅延の有無)
  • 機能が開発者にとって1週間以内に完了できるよう細分化されているか?(完了比率、完了前のコミット・リリース可否)
  • MVPが定義されチーム目標に設定されているか?

測定は組織プロセスの理解、無駄削減の目標設定、開発プロセスの複雑性削減にかかっています。

出典

本記事はDORAのWorking in small batchesを要約したものです。原文 © Google LLC、CC BY 4.0。

DORAのAIリサーチ(dora.dev/ai)を日本語で要約した非公式ガイドです。原文はCC BY 4.0。