We eliminate build and configuration hassles.
Here’s an ideal to strive for. Imagine you’ve just hired a new programmer. On the programmer’s first day, you walk him over to the shiny new computer you just added to your open workspace.
“We’ve found that keeping everything in version control and having a really great automated build makes us a lot faster,” you say. “Here, I’ll show you. This computer is new, so it doesn’t have any of our stuff on it yet.”
You sit down together. “OK, go ahead and check out the source tree.” You walk him through the process and the source tree starts downloading. “This will take a while because we have all our build tools and libraries in version control, too. Don’t worry—like any good version control system, it brings down changes, so it’s only slow the first time. We keep tools and libraries in version control because it allows us to update them easily. Come on, let me show you around the office while it downloads.”
After giving him the tour, you come back. “Good, it’s finished,”
you say. “Now watch this—this is my favorite part. Go to the root of
the source tree and type
The new programmer complies, then watches as build information flies by. “It’s not just building the source code,” you explain. “We have a complex application that requires a web server, multiple web services, and several databases. In the past, when we hired a new programmer, he would spend his first couple of weeks just configuring his workstation. ...