At Nesh, we apply continuous integration practices when applying the Agile methodologies.
Team members integrate their work frequently which ensures that new code developed gets integrated and tested regularly. Continuous Integration (CI) server (like Jenkins) works in the background and alerts the development team about the status of the build. It combines the features of Scheduling, Automated build and test and Feedback to the development team. The key benefit of the CI server is the constant feedback that it provides on the status of the software. Since CI detects deficiencies early on in development, defects are easier to resolve.
Scheduling: Jenkins can be scheduled to perform integration at specific times or after every change to the source control. The key advantage of the CI server is its ability to monitor changes to the source code held under revision control. Jenkins keeps polling the source control software like SVN and detects the change as soon a developer commits changes to software.
Automated Build and Test: The CI server can be configured to use automated build and test tools (such as ANT, NAnt, Nunit etc). The build and test results are published within a structured dashboard making it easy to view the status as well as the reasons for any failures.
Feedback: The CI server supports various forms of notifications like emails or RSS feeds thereby alerting the development team immediately of any test failures so that they can be corrected immediately. Developers can easily fix a bug in the code written a few minutes before compared to the code written several days ago.