10. Builds
Code will be delivered under Continuous Integration (CI) although traditionally code would be merged several times a day this may be less frequently
When embarking on a change, a developer takes a copy of the current code base on which to work. As other developers submit changed code to the source code repository, this copy gradually ceases to reflect the repository code. Not only can the existing code base change, but new code can be added as well as new libraries, and other resources that create dependencies, and potential conflicts.
The longer a branch of code remains checked out, the greater the risk of multiple integration conflicts and failures when the developer branch is reintegrated into the main line. When developers submit code to the repository they must first update their code to reflect the changes in the repository since they took their copy. The more changes the repository contains, the more work developers must do before submitting their own changes.
Eventually, the repository may become so different from the developers' baselines that they enter what is sometimes referred to as "merge hell", or "integration hell", where the time it takes to integrate exceeds the time it took to make their original changes.
Continuous integration involves integrating early and often, so as to avoid the pitfalls of "integration hell". The practice aims to reduce rework and thus reduce cost and time
A complementary practice to CI is that before submitting work, each programmer must do a complete build and run (and pass) all unit tests. Integration tests are usually run automatically on a CI server when it detects a new commit.
Continuous Integration or CI is a practice used by the developers which requires every single developer in the team to integrate his/her code into a shared repository several times a day. Each individual check-in is always verified by an automated build process, thus allowing the team to detect the problems at an early stage. This automated build script can also include executing the test suite for the entire application, thus ensuring that the code which is in the repository is a stable version
Read more: http://mrbool.com/how-can-continuous-integration-be-performed-using-jenkins/32717#ixzz4esvtbtx2
A part of the facilitation of this, Automated build will be implemented through the Use of Jenkins
Continuous Integration Best Practices: Vision and Reality HERE