Continuous Integration
Continuous Integration ist eine grundlegende Praktik in der agilen Softwareentwicklung. Continuous Integration beschreibt einen Prozess bei dem die gesamte Codebasis regelmäßig vollständig gebaut und getestet wird, um Feedback über die Integration neuer Anwendungskomponenten zu erhalten. Unser Blog Eintrag Continuous Integration im Überblick bietet einen guten Einstieg in das Thema.
CI erfordert Umdenken
Das Einführen eines CI Build Servers alleine reicht nicht aus, um erfolgreich mir CI zu sein. Es ist wichtig, dass die Entwickler regelmäßig (mind. einmal am Tag) Ihren Code einchecken, so dass er gebaut und getestet werden kann. Bricht der Build sollten keine Ausreden dafür gesucht werden, sondern die Fehler sofort behoben werden, damit der Build wieder “grün” ist. Bei uns hat es sich als positiv herausgestellt Information Radiator für den CI Status zu nutzen, um den Status der Projekte im Unternehmen transparenter zu machen.
CI erfordert agile Praktiken
Man kann nicht einfach einen CI Server installieren und schon macht man Continuous Integration. Man benötigt dafür beispielsweise auch ein Source Control System in das die Sourcen zentral eingecheckt werden und dazu ein Build System wie Maven oder Ant, um das Projekt und seine Komponenten bauen zu können. Dazu bietet es sich an neben dem Build für Compile und Unit Testing auch erweiterte Builds im CI zu haben, die beispielsweise die Fachtest automatisiert ausführen (siehe auch Agiles Testen) oder die Code Qualität überprüfen.
CI Build Server
Es gibt mittlerweile viele Continuous Integration Build Server. Die bekanntesten im Open Source Bereich sind:
- Jenkins CI – Jenkins Einführung
- Hudson CI
- CruiseControl
- Continuum
Zudem gibt es einige kommerzielle Server, die sich großer Beliebtheit erfreuen:
- Atlassian Bamboo
- Jetbrains Teamcity
Die codecentric setzt in ihren eigenen Projekten Continuous Integration mit Jenkins ein. Wir unterstützen Sie bei der Einführung agiler Methoden und agiler Praktiken und begleiten Teams, die ein Continuous Integration System aufsetzen und nutzen wollen. Ganz konkret können die Praktiken im Team in unserem Professional Scrum Developer-Training erlernt werden.