benefits of continuous integration
Barry winced slightly as he hit the enter key. Over time, he has learned that
cvs updateis not a command to be used lightly. With a deadline looming, however, he couldn't hold out any longer. Weeks of updates scrolled past as Barry nervously waited, unsure of his fate. The time of reckoning came, and Barry's worst fears were confirmed. 783 compilation errors. Barry cleared his calendar for the weekend, and headed straight for the fridge...
What went wrong? Many developers will immediately point out that waiting weeks between source code updates is a bad idea: surely Barry has nobody to blame but himself? But there is a bigger problem here: Barry's fear of code updates is learned behaviour. In the past, Barry would keep up to date with code changes regularly. As his team grew, however, things turned sour. People checked in code that didn't pass tests, or worse: code that didn't even compile. Every time he updated, Barry spent the next day finding the source of all these problems. It hurt, so Barry stopped doing it. The result: a downward spiral. The source code quality dropped rapidly, and productivity dropped with it.
The answer: constantly monitor the quality of your source code.
The most cost-effective way to constantly monitor the quality of your source code is through project automation:
- Scripted builds: you should be able to build your product from the command line, in one step.
- Automated testing: use testing libraries to automate run time tests and make these tests runnable, from the command line, in one step.
- Continuous integration: use an automated build server to constantly monitor and report on your project's health.
benefits of Pulse for developers
Developers will immediately benefit because they will have:
- No more fear of updating: you know when the build is broken. Updating is safe.
- Instant feedback: when you make a change, Pulse tests it immediately and tells you the results.
- Simpler problem diagnosis: when the build breaks, you find out soon. Pulse reports the changes included since the last build, narrowing down the source of the problem.
- No more integration hell: the source code is integrated all of the time. No more last minute headaches.
- Barry can have his weekends back.
benefits of Pulse for project managers
An continuous integration server is not simply another developer tool. Project management will see:
- Increased visibility of project status: Pulse constantly monitors the quality of your project to ensure it is up to scratch.
- Increased productivity: developers stop wasting time with integration issues, and can focus on development.
- Improved team discipline: team members are accountable for build breakage, so will take more care before committing.
- Higher quality products: delivered more reliably at a lower cost.
Regular, automated builds are not a new idea. Development teams have been using nightly (or more regular) tests for many years. Read what others have been saying about automatic build systems: