Monday, 9 April 2012

Development Environment Must-Haves: Continuous Integration

Photo credit: MeriaDuck
Use Continuous Integration to automate the quality control process so that you include some quality assurance during development, rather than leave it all to the end. The pre-requisites for this are:
  • Source code control using, for example, Subversion
  • A standard build process using, for example, ant
  • A set of unit tests which exercise the application code as fully as possible
With these in place you can deploy a continuous integration tool such as CruiseControl, Hudson or Jenkins to automate the following tasks:
  • Get the latest code base and build it whenever it changes
  • Run unit tests against the built code
  • Create versions for the release cycle
  • Package all components including code and any support files
In such an environment, it becomes possible to:
  • Fetch the "current" version of the application easily
  • Spot coding problems as soon as they are introduced
  • Ensure that all tests are run whenever your application is changed
In this short series I'm outlining the tools you really do need for a professional quality software development environment. Many of them will seem like common sense to many of you. Many of them have been inexplicably missing from development environments I've seen over the past few years. The list isn't meant to be "the final solution" - you may have these things, you may have alternatives, you may have nothing at all - in which case you know where to start.

No comments:

Post a Comment