Cual es su proposito?
Tome la carga de las máquinas de desarrollo, proporcione un entorno estable y reproducible para las compilaciones.
¿Por qué los desarrolladores no están construyendo el proyecto en sus máquinas locales, o lo están haciendo?
Porque con software complejo, sorprendentemente, muchas cosas pueden salir mal cuando simplemente se "compila". problemas que realmente he encontrado:
- Comprobaciones de dependencia incompletas de diferentes tipos, lo que provoca que los binarios no se actualicen.
- Los comandos de publicación fallan silenciosamente, se ignora el mensaje de error en el registro.
- Construya incluyendo fuentes locales que aún no estén comprometidas con el control de fuentes (afortunadamente, todavía no hay cuadros de mensaje de "malditos clientes" ...).
- Al intentar evitar el problema anterior construyendo desde otra carpeta, algunos archivos se seleccionaron de la carpeta incorrecta.
- La carpeta de destino donde se agregan los binarios contiene archivos de desarrollador obsoletos adicionales que no deberían incluirse en la versión
Tenemos un aumento de estabilidad asombroso ya que todas las versiones públicas comienzan con un get from source control en una carpeta vacía. Antes, había muchos "problemas divertidos" que "desaparecían cuando Joe me dio una nueva DLL".
¿Son algunos proyectos tan grandes que se necesitan máquinas más potentes para construirlos en un tiempo razonable?
¿Qué es "razonable"? Si ejecuto una compilación por lotes en mi máquina local, hay muchas cosas que no puedo hacer. En lugar de pagar a los desarrolladores para que se completen las compilaciones, pague a TI para que compre una máquina de compilación real.
¿Es que no he trabajado en proyectos lo suficientemente grandes?
El tamaño es ciertamente un factor, pero no el único.