Building a successful product is usually complicated business. With any luck a project will have an automated deployment process. This however is only part of the equation. Another significant part would be an automated build process.
Long Term Success
Long term success means making it easy for new people to get started in the weeks/months/years following a project’s startup. Imagine the following project in two different scenarios.
The project is a large scale application with several dependencies.
Scenario 1 (No automated configuration and build process):
- Check out project from source control.
- Perform configuration needed for dependencies.
- Build / Install each dependency separately.
- Perform configuration needed for product build.
- Build product.
Scenario 2:
- Check out project from source control.
- Build product.
Which of those scenarios is more straight-forward and easiest to work with? It’s pretty easy to see that scenario 2 is the best.
Memory and Documentation
In addition to helping new team members get started, automated builds can serve as a form of long term memory.
“How do I do that?” becomes “press build.”
“How does that work?” becomes “check the build script.”