Integration: Team and Tools

Learn about the desired characteristics of integration team in agile and relevant tools for configuration management and version control.

Integration team

To establish a smooth integration strategy, consider assembling a separate team responsible for this task. However, this does not mean that the integration team is the only team responsible for integration; instead, integration should always be the responsibility of all team members. Each team has to integrate its own development effort both internally and with the teams on whom they depend. The integration team should only accept code that has already been preintegrated.

Therefore, with a large team, our best bet is to use a combined integration strategy. Use individual—or continuous— integration for internal subteam integration and cumulative integration — or nightly builds, if possible—for integrating the efforts of all subteams.

This means, individually, every developer integrates their completed efforts with the subteams. Then, at a predetermined time, all the subteams cumulatively deliver their development efforts to the project’s single release point of integration. This requires that several changes from different teams be integrated at once. Furthermore, every development team has to work closely with the integration team whenever a problem in their area pops up.

No matter at which level, every integration always concludes with running all technical (unit) tests and a smoke test. The goal of a smoke test is to exercise the entire system from end to end. It does not have to be exhaustive, but it should be capable of exposing major problems.

The smoke test should be thorough enough that if the build passes, we can assume that it is stable enough to be tested more thoroughly. In other words, the smoke test ensures that the application is doing something and does not crash immediately after start-up. If the application passes the smoke test, further acceptance tests will ensure the quality of the system.

The integration team plays the role of the single release and integration point, which means it provides the only way to integrate the whole system. However, it is obvious that the team plays a key role for the project. It collects all changes, maintains the progress of the project, and in doing so, measures the project status.

Get hands-on with 1400+ tech skills courses.