benefits of continuous integration
Barry winced slightly as he hit the enter key. Over time, he has learned that cvs update is 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.
No software development team should treat their source code with such little respect. The source code is the product. The product defines the team.
The answer: constantly monitor the quality of your source code.
The simplest 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: the build is broken rarely, and you are notified when it does. 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 automated build engine is not simply another developer tool. Project management will see:
- Increased visibility of project status: Pulse constantly monitors the quality of your project to make sure 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.
resources
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:
- Martin Fowler: Continuous Integration
- Joel Spolsky: Daily Builds Are Your Friend
