Continuous integration

Much has been written about the advantages of a continuous integration build process for your software development project. It is one of the corner stones of the agile movement.

I agree that it is important and can deliver great results. My experience is that getting the benefits of continuous integration requires a bottom up process. Each layer of tools and infrastructure builds upon a layer below it. When it comes to the individual tools there are a lot of best practices out there, but no clear cut recipes. What is the best way to do it? It depends.

So rather than saying we are going to do continuous integration. you should start where you are and go from there. And take incremental steps, decide what is sensible and what is over the top. I consider the following layers (including some of the frameworks and tools):

  • version control (CVS, Subversion, TFS)
  • scripted builds (Ant, maven, MSBuild)
  • continuous builds (cruisecontrol, Teamcity, Zutibi, TFS)
  • automated unit tests (JUnit)
  • automated deployment
  • automated tests (Selenium, Webinject)
  • automated code analyzers and test coverage tools (Clover)

Do not start with a next layer until you and your team master the one before it.

Advertisements

One Response to “Continuous integration”

  1. Slava Imeshev Says:

    Arnoud,

    You might also check our Parabuild for a continuous integration server.

    Regards,

    Slava Imeshev

Comments are closed.


%d bloggers like this: