integration

Like noticing differences in my wife’s hair after a haircut, keeping track of software changes can be difficult, while not keeping track of them can be potentially disastrous.

When it comes to software development, managing changes made to source code is vitally important. Throw multiple developers into the maelstrom of website creation and the need to keep on top of all the different versions of work becomes paramount.

Continuous integration provides a methodology for efficiently managing multiple code sources by automating processes where possible and regularly combining different versions of code into a master repository.

The benefits of working in this way are:

  • Preventing difficulties inherent in integrating weeks or months worth of development from different developers
  • Easier detection of bugs and issues
  • Reduction of risk
  • Reduction of development costs
  • Providing quality assurance
  • Ability to generate documentation for code

The distinguishing features and best practices of continuous integration are:

  • Maintenance of a single code repository
  • Frequent (minimum daily) integration of source code with the main repository
  • Automation of the code building and testing process

Useful tools for continuous integration:

GIT – a mild English profanity, or software to track and manage software changes – http://git-scm.com/
Jasmine – former employee of Jack in the box or javascript testing framework – http://jasmine.github.io/
Jenkins – a drinking game or a continuous integration server – http://jenkins-ci.org/

Here at The box we are constantly striving to improve our processes and in particular our software development practices. Continuous integration is a technique well worth considering as part of a professional development process.