Harmony

Harmony is the web team's integration and test system.

Continuous integration

One of the best descriptions of continuous integration comes from (agile software guru) Martin Fowler:
Continuous Integration is a software development practice where members of a team integrate their work frequently, usually each person integrates at least daily - leading to multiple integrations per day. Each integration is verified by an automated build (including test) to detect integration errors as quickly as possible. Many teams find that this approach leads to significantly reduced integration problems and allows a team to develop cohesive software more rapidly.
The aim of continuous integration is to reduce the time needed to integrate all new changes from all team members under an imposing release schedule, whilst maintaing the quality of released code. Overall, the risk of a broken site and badly behaving features is greatly reduced by continuous integration and testing. There are 5 main facets of continous integration.

Version control

Version controlled code is a major pillar of agile software development, and an important part of continuous integration. Code for Ensembl is controlled by the concurrent versioning system, CVS.

Automated deployment

Self-testing code

Commit early, commit often

Instant feedback

Testing