CIのアンチパターン

万人のためのオートメーション: 継続的インテグレーションのアンチパターンという記事をyamashiroさんのブログで見た。
アンチパターンを以下に。

  • 頻繁にチェックインを行わないため、インテグレーションに遅れが生じる
  • ビルドに失敗しているため、チームが他の作業に進めない
  • フィードバックが少ないため、対応することができない
  • やみくもにフィードバックが送られてくることから、人々がメッセージを無視するようになる
  • 遅いマシンを使用していることが原因で、フィードバックに遅れが出る
  • 肥大化したビルドに依存しているため、フィードバックに時間がかかる

CIの思想というか、考えとしてはyamashiroさんが言ってるように、

ビルド、テストをチェックインのタイミングで継続的に行うことで、エラーが起こった箇所をすばやく特定し、修正できる

ということには大いに賛成。
自分としてはそれに付け加え、未来における手戻りコストを現時点のコストにし軽減する、というものだと考えている。
ここで、アンチパターンに陥るのは技術者の力不足というよりも、政治的な理由でどうにもならないことのほうが大きいと思う。
プロジェクトメンバ間の意思の統一ができてなかったり、プロジェクトの構成を変えれない立場であったり、早いサーバマシンを調達できなかったり、と。
そういう意味で、CIって敷居が高いのかもね。