Entwicklung

Wenn Integration mit Agilität nicht Schritt hält

30.06.2011
Von Uwe Bloch

Optimale Strategien

In der Praxis erweisen sich bestimmte Maßnahmen in den meisten Unternehmen als nützlich, um den Übergang zur agilen Softwareentwicklung vorzubereiten - völlig unabhängig von der Ausgangssituation. Dazu zählen beispielsweise das Einführen von Entwicklungs- und Software-Integrationsstandards, virtualisierte Integrations- und Testumgebungen sowie die Konsolidierung der Infrastruktur. Dennoch ist es ratsam, vor einem Automatisierungsprojekt zunächst die individuellen Voraussetzungen genau zu analysieren: Welche Betriebssysteme sind im Einsatz? Welche Applikations-Server und Drittanbieter-Tools werden genutzt? Wer entwickelt welche Software, und wer integriert sie? Eine wirklich passgenaue Strategie für die Umstellung lässt sich nur auf Basis der realen Ausgangslage entwickeln.

Systemvielfalt reduzieren

Speziell im Client-Server-Umfeld ist beispielsweise häufig eine erstaunliche Vielfalt an Hardware und Betriebssystemen zu finden. Die Folge: Jede Technik muss für zahlreiche Umgebungen konfiguriert werden, der Aufwand für Build und Deployment potenziert sich. Bereits eine Konsolidierung der Infrastruktur kann also eine Systemintegration unterstützen, die mit dem Tempo der agilen Entwickler Schritt hält. Interessante Ansatzpunkte sind außerdem Applikations-Server und Queuing: In der Regel reichen in diesen Bereichen jeweils zwei Techniken aus, um alle Anforderungen abzudecken - beim Queuing genügt oft sogar eine einzige Lösung. Auch wenn die agile Entwicklung selbst vor allem auf die Funktionsfähigkeit der Applikationen zielt: Wer den Software-Engineers hier klare Vorgaben macht, vereinfacht die spätere Integration erheblich und spart zudem Personalkosten. Auch teures Spezialisten-Know-how für Installation, Konfiguration und Wartung muss er dann nur noch für maximal zwei Systeme vorhalten.

Größter Spielraum bei Prozessen

Noch größeren Optimierungsspielraum als die Technik bieten im Umfeld der Softwareintegration jedoch die Prozesse: Die Integration eines ganzen Release-Pakets ist durch Automatisierung in etwa einem Viertel der zuvor benötigten Zeit möglich. Gleichzeitig wird der gesamte Vorgang in übersichtliche Teilschritte zerlegt. Dies entspricht den kurzen Entwicklungszyklen agiler Vorgehensweisen, und auch Probleme lassen sich wesentlich schneller erkennen.

Unternehmen, die ihre Software intern entwickeln, sollten unbedingt das Konfigurations-Management im Auge behalten. Dort ist eine standardisierte Vorgehensweise mit einer einfachen, klaren Struktur einerseits die Voraussetzung für die Arbeit mit parallelen Entwicklungssträngen, die zeit spart und, wie etwa im Pair-Programming, der Qualitätskontrolle dient. Andererseits bidlet ein striktes Konfigurations-Management auch die unverzichtbare Ausgangsbasis für die Automatisierung der nachgelagerten Prozesse - besonders effektiv ist hier in der Regel die Abbildung des "Development-in-Head"-Konzepts.

Nächster Ansatzpunkt und gleichzeitig möglicher Nutznießer einer Prozess-Standardisierung ist die Schnittstelle, an der die Software in die IT-Systeme des Unternehmens gelangt. Denn gleichgültig, ob die Anwendungen von externen Dienstleistern oder einem internen IT-Shop entwickelt werden - volle Transparenz und Kontrolle sind nur dann gegeben, wenn der Weg der Sourcen in die Systemintegration eindeutig festgelegt ist. Sowohl Kunde als auch agiler Lieferant profitieren von definierten Prozess- und Infrastrukturstandards, denn die machen es möglich, Releases in leicht integrierbaren Installationspaketen anzuliefern. Praktischer Nebeneffekt für Outsourcing-Kunden: Sie können auf Wunsch den Build-Prozess und sogar die Kontrolle sowie die Speicherung des Sourcecodes auf den Lieferanten verlagern, statt selbst Kontroll-, Speicher- und Personalressourcen dafür vorzuhalten.