Saturday, April 26, 2008

Just re-visited Continous Integration

While I was installing SVN in Blueliner Bangladesh, I used some hooks in the SVN server, so that at every commit the server deploys the whole web application to a web server (I changed the post_commit hook, which was a bat file, very rudimentary trick, nothing marvellous) .... I was not familiar with the term continuous integration then(I think very few PHP devs were !!). I was reading a lot on Extreme Programming, TDD and Continuous Integration recently, and suddenly recognized my first attempt towards continuous integration.....

So what are the benefits of continuous integration ??

  1. It can take care of running all your unit test + automated integration and acceptance test, so developers can freely refactor existing code base...
  2. It helps Test Driven Development , and TDD produces cleaner and better code..
  3. It improves communication between team developers, customers and managers by presenting the nightly build / or the latest development snapshot of the product to everyone.
  4. It catches errors early... We want to fail fast and frequent, right.
I just cannot recall anything else, anyways, these causes are enough to implement a CI system in your production environment, which will take around 0.5 ideal Man-Day, and probably is gonna save hundred times of the investment.

And after more than a year(last time in Blueliner Bangladesh), I have again implemented a Continuous Integration Server(though I am the only user). But this time, no self-implemented hook... I have used CruiseControl, with Ant build scripts with SVN as Source Control Management System....

Wish me luck !!! Probably I am going to be a strong proponent for introducing Continuous Integration in Vonair.

0 comments: