Unabhängiger Berater für IT-Projekte
Die Basisidee der Permanenten Integration (continuos integration) ist denkbar einfach und einsichtig:
Sobald ein Entwickler(team) seine Änderungen in das CM-System einstellt, wird das Gesamtsystem neu gebaut und automatisch getestet.
Wenn alle Tests erfolgreich durchlaufen, dann werden die vorgenommenen Änderungen in die nächste Freigabeebene gehoben, wenn nicht werden die Änderungen zurückgenommen (Rollback) und dem Entwickler(Team) beispielsweise per Mail zur Nachbearbeitung vorgelegt.
Spätestens seit das Konzept der permanenten Integration von Kent Beck im Rahmen von eXtreme Programming populär gemacht wurde, ist der Begriff an sich bekannt, die Implikationen sind allerdings oft nicht so transparent.
Permanente Integration basiert auf der festen Annahme, dass das Projekt seine Quellen in einem SCM- oder CM-System verwaltet und diese auch zeitnah nach Bearbeitung wieder dort einstellt.
Weiterhin wird davon ausgegangen, dass immer funktional vollständige Blöcke von Änderungen eingecheckt werden - wieder ein Grund für die Verwendung kommerzieller oder zumindest moderner CM-Systeme (wie zum Beispiel Subversion), bei denen die Möglich zu atomaren Checkins gegeben ist. (Ein Notbehelf ist natürlich die CVS-Mimik von CruiseControl. Hier wird "einfach" nach jedem Checkin eine Zeitlang abgewartet, ob noch weitere Checkins erfolgen um "heuristisch" zu atomaren Checkins zu kommen.)
Auch wenn Systeme wie CruiseControl oder Anthill es sehr viel leichter machen, eine permanente Integration umzusetzen, so ist doch in vielen Unternehmen und Projekten keine Umgebung vorhanden, die ein solches Arbeiten unterstüztz.
Die "einfachere" Alternative - und häufig die Vorstufe zur permanenten Integration - ist der "Nightly Build", bei dem jede Nacht die aktuellen Versionen aus dem CM-System geholt werden und auf diesem Stand ein Gesamtsystem gebaut wird. Sofern möglich wird auch noch eine Installation in der Zielumgebung vorgenommen (Deployment) und ein Minimaltest (Anschalttest, vgl. Smoke Test) durchgeführt.
Nach meinen bisherigen Erfahrungen ist die Einführung permanenter Integration oder ersatzweise eines täglichen Bulds neben der Einführung überschaubarer Inkremente (inklusive des überarbeitens der Planung vor jedem neuen Inkrement) das mächtigste Werkzeug um Projekte "in den Griff" zu bekommen, die Produktqualität zu steigern und die Kundenzufriedenheit zu gewinnen..