継続的インテグレーションを使用すると、コード ベースの品質が向上し、リリースがスピードアップすることはわかっていますが、次のプロジェクトで継続的インテグレーションが必要であることをクライアントに納得させる最善の方法は何ですか?
4 に答える
標準的な議論に加えて、この論文からのデータを引用します。
Alan MacCormack、Chris Kemerer、Michael Cusumano、Bill Crandall、「ソフトウェア開発プラクティスの選択における生産性と品質のトレードオフ」、IEEE ソフトウェア、2003 年 9 月~10 月
すなわち:
- 各コード チェックインでの統合/回帰テスト = 不良率を 36% 削減
- 毎日のビルド = プログラマーあたりの LOC 出力が 93% 上昇
そのため、CI によって生産性と品質が向上します。誰がそれを望まないのですか?
あなたが質問で言ったことを正確に言ってください:
- リリースのスピードアップ = 早期の市場浸透 = より多くの資金
- コード品質の向上 = バグ修正にかかる時間の短縮 = コストの削減
彼らが合理的に迅速かつ安価にセットアップするのを手伝うことができる限り、それが問題になる理由がわかりません.
あなたはいくつかの主張をしました。アイデアをクライアントに売り込みたい場合は、次の質問に答える必要があります。
コードの品質はどのように向上しますか?
コンパイル/ビルドの問題は定期的に特定されます。また、自動化された統合および単体テストと組み合わせて使用すると、定期的にバグを特定できます。
リリースをどのようにスピードアップしますか?
ビルドと展開のプロセスを自動化すると、開発チームがテスト用に新しいビルドを出荷するために必要なダウンタイムがなくなります。
時間がなくなり、不完全な機能を出荷する準備ができている場合に頼りになる、成功したビルドの履歴があります。
クライアントが継続的インテグレーションにどの程度関心を持っているかはわかりません。多くの場合、開発チームにアイデアを売り込む方が価値があると思います。
とはいえ、クライアントは常に聞きたがります。
プロジェクトは常に作業中の状態になります。
すべてのコードは、作成時にテストされます