彼らの目的は何ですか?
開発者のマシンの負荷を取り、ビルドに安定した再現可能な環境を提供します。
開発者がプロジェクトをローカルマシンでビルドしないのはなぜですか?
複雑なソフトウェアでは、「コンパイル」するだけで驚くほど多くの問題が発生する可能性があるためです。私が実際に遭遇した問題:
- さまざまな種類の不完全な依存関係チェックが行われ、バイナリが更新されない。
- サイレントに失敗する発行コマンド。ログのエラーメッセージは無視されます。
- ソース管理にまだコミットされていないローカルソースを含めてビルドします(幸い、まだ「くそった顧客」メッセージボックスはありません...)。
- 別のフォルダーからビルドして上記の問題を回避しようとすると、一部のファイルが間違ったフォルダーから選択されました。
- バイナリーが集約されるターゲットフォルダーには、リリースに含まれていない古い開発者ファイルが含まれています
すべてのパブリックリリースはソース管理から空のフォルダーへの取得から始まるため、安定性が大幅に向上しました。以前は、「ジョーが新しいDLLをくれたときに消えてしまう」「おかしな問題」がたくさんありました。
一部のプロジェクトは非常に大規模なので、妥当な時間でそれをビルドするためにより強力なマシンが必要ですか?
「合理的」とは何ですか?ローカルマシンでバッチビルドを実行すると、実行できないことがたくさんあります。ビルドを完了するために開発者にお金を払うのではなく、実際のビルドマシンを購入するためにITに支払います。
十分な規模のプロジェクトに取り組んでいないのですか?
サイズは確かに1つの要素ですが、それだけではありません。