Collaborative Application Lifecycle Management (CALM) ist die nächste Evolutionsstufe des Applicaton Lifecycle Managements (ALM). Lag bisher der Fokusauf umfassenden, formalen und schwerfälligen Prozessen, um Vollständigkeit zuerreichen, orientiert sich CALM am Agilen Manifest. Kommunikation zwischenden Beteiligten geht über flexible Prozesse, Dokumentation entsteht direkt ausdem Entwicklungsprozess.Im Folgenden wird der CALM-Ansatz, seine Vor- und Nachteile sowie eineentsprechende Softwarelösung von IBM vorgestellt.
Wird ein Fehler beim Testen einer Software mittels eines Testsystems identifiziert, wirddieser in einem Bug Tracking System eingetragen. Der für die Fehlerbehebung zuständigeEntwickler erhält die Nachricht über diverse Wege, wie z. B. E-Mail oder Telefon. Nachdemer die wesentlichen Informationen aus dem Bug Tracking System gefiltert hat, versucht er,den Fehler in seiner Entwicklungsumgebung nachzuvollziehen und zu korrigieren. In einemweiteren System führt er anschließend einen Integrationstest durch, um den geändertenCode mit den anderen Komponenten im Zusammenspiel zu testen.Bei Betrachtung dieses Szenarios erkennt man schnell, dass für die Behebung eines kleinen Feh-lers in der Softwareentwicklung schnell zwischen einer großen Anzahl an Tools und Werkzeugen ge-wechselt werden muss. Dies kostet nicht nur Zeit und erhöht die Komplexität, sondern führt auch zueiner Reduzierung der Qualität. Erweitert man dieses Szenario um den Aspekt, dass Anwendungsent-wicklung heutzutage in Teams betrieben wird, die geografisch über mehrere Standorte verteilt sind,droht der gesamte Softwareentwicklungsprozess schnell chaotisch und ineffizient zu werden.Eine mögliche Lösung bietet das Collaborative Application Lifecycle Management(CALM), das die zunehmenden Herausforderungen des Softwareentwicklungsprozessesbeherrschbar machen und einen Orientierungsrahmen für die am Projekt beteiligten Per-sonen zur Verfügung stellen soll.
Grundansatz des Application Lifecycle Management (ALM) ist es, eine heterogene Lösungmit verschiedenen Tools für die einzelnen Entwicklungsphasen (Insellösungen) in eine ein-heitliche, integrierte und homogene Gesamtlösung zu transformieren. „Application Life-cycle Management ist eine umfassende Bezeichnung für das Erstellen und Managen einerSoftwareapplikation über deren gesamten Lebenszyklus, vom Design bis zu deren Stillle-gung.“ (Morley & Parker, 2010)Collaborative Application Lifecycle Management erweitert den ALM Ansatz um Ansich-ten des Agilen Manifests (Kent, et al., 2001) und Collaborative Tools. Anstatt schwerfälligerProzesse wird auf flexible Kommunikation zwischen den Beteiligten gesetzt. Künstlich zuerzeugende Dokumentation wird durch Artefakte ersetzt, welche ohnehin bei der Entwick-lung anfallen, wie Code und Testfälle. Aus diesen Artefakten und deren Beziehungen las-sen sich Reports generieren. Immer wiederkehrende Arbeitsschritte werden automatisiert.Ergebnis ist ein Kollaborationsprozess, der die Koordination von Prozessen, Informationen,Personen und Werkzeugen kombiniert, die notwendige Projekttransparenz ermöglicht undzur zentralen Komponente des Application Lifecycle Managements wird.„Kollaborationzwischen Teammitgliedern ist der kritische Faktor für das erfolgreiche Mitwirken jedes Ein-zelnen. Häufig geschieht es, dass ein Teammitglied zum Anfertigen der eigenen Arbeit dieArbeitsergebnisse eines anderen Teammitglieds benötigt. Durch Kollaboration erhalten dieTeammitglieder einen besseren Einblick und erhalten ein verbessertes Verständnis um dasGesamtwerk um ihre eigene Arbeit zu beenden. Das gesamte Team bleibt auf den aktuells-ten Stand. [...]“ (Göthe, et al., 2008)
Durch die Verzahnung der einzelnen Prozessschritte und der Integration der hierzu eingesetztenWerkzeuge während der verschiedenen Lifecyclephasen entsteht ein integrierter Entwicklungs-prozess, der allen Prozessbeteiligten die Arbeit erleichtert. Dies gelingt durch die Erweiterung desAnsatzes des Application Lifecycle Management um kollaborative Techniken und so die Möglich-keit, übergreifende organisatorische Strukturen und Prozesse zu hinterlegen. Hierdurch wird u.a.eine stärkere Einbindung der Stakeholder ermöglicht, wodurch deren Anforderungen besser ver-standen und umgesetzt werden können und eine größere Transparenz entsteht.Das Risiko, die Freiheit der Entwickler durch zusätzliche Aufgaben (Dokumentation der Er-gebnisse, Einhaltung bestimmter Prozessschritte usw.) einzuschränken, kann als niedrig ange-sehen werden, da bereits in herkömmlichen Entwicklungsprojekten diese Aufgaben nötig sind,jedoch nicht organisatorisch bzw. mittels verschiedener Tools und Medien unterstützt werdenund es somit eher zu einer Entlastung des einzelnen Entwicklers kommt.Es ist allerdings darauf zu achten, dass alle Beteiligten die neu bereitgestellten Möglich-keiten nutzen und nicht weiterhin ihre bisher genutzten Wege und Methoden verwenden.Dies ist organisatorisch durch geeignete Maßnahmen sicherzustellen, was z. B. durch Mo-tivierung der Mitarbeiter für die neue Lösung gelingen kann.Um in der Softwareentwicklung schneller auf die Bedürfnisse des Marktes reagieren zukönnen (Time-to-Market) und den Anforderungen des Kunden gerecht zu werden, sind derAufwand während der Entwicklung sowie der daraus entstehende Output die maßgeblichenFaktoren. Zusammengefasst gilt es, die Produktivität der Softwareentwicklung zu steigern.Dies ist eine der größten Herausforderungen, denen sich CALM zu stellen hat.Gegenüber bisherigen Application Lifecycle Management Methoden wurde CALM dahingehend erweitert, dass ein einfacher Nachrichtenaustausch zwischen den einzelnen Nutzernermöglicht wird. Weiterhin ist es möglich, über die offene Schnittstelle „Open Services forLifecycle Collaboration (OSLC)“ Softwarekomponenten verschiedener Hersteller bzw. Eigen-entwicklungen zu integrieren und somit den Lifecycle an die eigenen Bedürfnisse anzupassenund Informationsbrüche zwischen den eingesetzten Komponenten zu vermeiden.
Durch ihre kollaborativen Mechanismen eignen sich Softwarelösungen für Collaborative Applica-tion Lifecycle Management insbesondere dann, wenn es gilt, verteilte Entwicklungsmannschaf-ten an einem Projekt gemeinsam arbeiten zu lassen. Heutzutage verlagern viele große Firmen dieeigentliche Entwicklung von Software in Niedriglohnländer. Da unter anderem die Anforderungenund Abnahmetests vor Ort erfolgen, heißt es, diese Lücke durch eine geeignete Softwarelösungzu schließen. Dabei ist es erforderlich, dass mittels der Softwarelösung die notwendigen Prozesseder Softwareentwicklung abgebildet werden können, als auch die verschiedenen Werkzeuge, diein den einzelnen Phasen der Entwicklung von Nöten sind, vorhanden sind. Weiterhin muss einereibungslose Kommunikation durch die Software gewährleistet sein.Eine praktische Umsetzung von CALM ist die „Jazz Technology Platform” (IBM, 2012a),die von IBM ins Leben gerufen wurde. Vision des Jazz-Projektes ist es, eine Orchestrierungzwischen den einzelnen an der Anwendungsentwicklung beteiligten Personen zu erreichen.Als Sinnbild diente der gleichnamige Musikstil: „Analog zu dem gleichnamigen Musikstilist Jazz eine Initiative, die Softwareentwicklung zu transformieren, indem sie sie kollabora-tiver, produktiver und transparent gestaltet. Realisiert wird dies mittels der Integration vonInformationen und Aufgaben über die Phasen des Lebenszykluses.“ (IBM, 2012a)Zentrale Komponente der Jazz Technology Platform ist der Jazz Team Server. Der Zugriff auf dieTechnologieplattform erfolgt mit einem Jazz Eclipse Client, der eine erweiterte Eclipse-IDE darstellt.Rational Team Concert (RTC) ist eine teamorientierte Softwarentwicklungsplattform, mitwelcher Arbeitspakete (Work Items) definiert und an die verantwortlichen Personen weiter-geleitet werden können. Die Verwaltung der einzelnen Sourcen, die Definition des Software-entwicklungsprozesses und die Verwaltung des abschließenden Build Prozesses fallen eben-falls in den Aufgabenbereich von RTC. Zusammen mit dem Rational Team Concert Clientbündelt der Team Server Funktionen für das Bug-Tracking, Konfigurationsmanagement, Pro-jektmanagement und Continuos Integration in einer Plattform und bietet so eine komfortab-le Arbeitsumgebung.Der Rational Requirements Composer (RRC), (IBM,2012b) stellt eine kollaborative Re-quirements Engineering Platform zur Verfügung. Über diese Plattform können die verschie-denen Stakeholder des Projekts mittels diverser Methoden Anforderungen aufnehmen,verwalten, diskutieren und entwickeln. Das Testen und Optimieren der Software erfolgtmit dem RQM. Weitere Komponenten für CALM, die innerhalb dieses Beitrags nicht tiefer gehendbehandelt werden, sind der Rational Asset Manager (RAM), Rational Build Forge und Rational In-sight.Verbunden über Open Services for Lifecycle Collaboration (OSLC) spezifizierte Schnitt-stellen können zwischen den einzelnen Tools Informationen, Daten und Prozesse geteiltwerden, die eine Umsetzung des kollaborativen Lifecycle Managements ermöglichen. Auf-gaben, wie die Aufnahme der ersten Anforderungen, die Entwicklung und Verwaltungdes Sourcecodes sowie das abschließende Testen und Optimieren lassen sich in nur einerEclipse-Umgebung umsetzen. „Dadurch wird die Interaktion zwischen Werkzeugen unter-schiedlicher Disziplinen der Softwareentwicklung bzw. deren einzelner Artefakte möglich...Mit Jazz lassen sich also die Herausforderungen des Softwareentwicklungsprozesses kom-plett und in einer Technologieplattform abdecken.“ (ARS IT Infrastruktur, 2012)Über die Nutzung der OSLC spezifischen Schnittstellen ist es möglich, anstelle der vonIBM zur Verfügung stehenden Lösungen, eigene Produkte bzw. Produkte von anderen Her-stellern in den Lifecycle zu integrieren. „Zudem lassen sich auch nicht Jazz-basierte Werk-zeuge in Jazz integrieren, sofern diese die entsprechenden OSLC Schnittstellen selbst im-plementieren oder via OSLC Adapter angebunden werden.” (ARS IT Infrastruktur, 2012)
Angesichts der Entwicklung, dass Produktlebenszyklen kürzer, Entwicklungen schneller undTeams globaler agieren, müssen Unternehmen ihre eigenen Prozesse optimieren. Gleichzeitigermöglichen moderne Webtechnologien neue Möglichkeiten zur Kollaboration.Ziel von CALM ist, den bisherigen ALM Ansatz mithilfe moderner Methoden zu verschlan-ken und den Fokus stärker auf die Kommunikation zwischen den Beteiligten zu setzen. Eswerden dynamische Diskussions- und Review-Funktionen bereitgestellt, Chatprogramme fürspontanen Austausch und personalisierte Dashboards, um gezielt Aktivitäten von Interesse zuverfolgen.Anstatt Qualität über Einhaltung strikter Formalien und manuell ausgefüllter endlosscheinender Dokumente zu erreichen, werden die beteiligten Systeme soweit integriert,dass Informationen jederzeit verfügbar sind und Reports automatisch generiert werden. Sowird die benötigte Dokumentation zu einem Nebenprodukt der Lifecycle-Prozesse. Insge-samt sollen der Overhead für die Beteiligten reduziert und die Prozesse beschleunigt undflexibler werden.Der zukünftige Erfolg von CALM wird von mehreren Faktoren abhängen. Aus technischer Sichtmuss vor allem die Integration der verschiedenen Tools weiter vorangetrieben werden. Die Herstellermüssen sich auf einen gemeinsamen Standard für die Kommunikation verständigen und in ihren Pro-dukten umsetzen. Nur dann wird es möglich sein, über Domänen hinweg Daten verfügbar zu machenund Prozesse zu automatisieren. Eine weit größere Schwierigkeit stellen aber die organisatorischen,kulturellen Änderungen für die Unternehmen da. Die Mitarbeiter müssen die neuen Prozesse an-nehmen. Die durch die bessere Verfügbarkeit von Informationen erhöhte Transparenz lässt zum eineneine bessere Kontrolle und Steuerung der Prozesse zu, verunsichert aber gleichzeitig die nun gläsernenMitarbeiter. Daher sollten bei einer Einführung von vornherein alle Parteien beteiligt werden.
ARS IT Infrastruktur. (2012). Jazz und Rational Team Concert. Abgerufen am 24. April 2012 von http://www.ars.de/web/software/ibm_rational/jazz_rational_team_concert.htmlCardozo, E. S. (2002). The seven habits of effective iterative development. Abgerufen am 15. Mai 2012 von IBM: http://www.ibm.com/developerworks/rational/library/1742.htmlCook, C., & Churcher, N. (2003). An Extensible Framework for Collaborative. Abgerufen am 7. Juni 2012 von http://ir.canterbury.ac.nz/bitstream/10092/3002/1/12618915_12618915_Cook.pdfGeisser, M., & Hildenbrand, T. (August 2005). Eine Methode zur kollaborativen Anforderungserhebung und entscheidungsunterstützenden Anforderungsanalyse. Abgerufen am 7. Juni 2012 von http://softwareforschung.de/fileadmin/_primium/downloads/publikationen/hildenbrandgeisser.pdfGöthe, M., et al. (2008). Collaborative Application. IBM Redbooks.IBM. (2012a). Jazz Foundation. Abgerufen am 29. Juli 2012 von https://jazz.net/products/jazz-foundation/IBM. (2012b). Rational Requiremewnts. Abgerufen am 29. Juli 2012 von https://jazz.net/products/rational-requirements-composer/Kent, B., et al. (2001). Manifesto for Agile Software Development. Abgerufen am 15. Mai 2012 von http://agilemanifesto.org/Morley, D., & Parker, C. S. (2010). Understanding Computers: Today and Tomorrow, Comprehensive, 13. Auflage.Rashid, A., Behm, A., Geisser, M., & Hildenbrand, T. (2006). Kollaborative Softwareentwicklung – Zum Kollaborationsbegriff. Abgerufen am 7. Juni 2012 von http://www.google.de/url?sa=t&rct=j&q=kollaborative%20softwareentwicklung&source=web&cd=1&ved=0CG8QFjAA&url=http%3A%2F%2Fdigbib.ubka.uni-karlsruhe.de%2Fvolltexte%2Fddocuments%2F1438&ei=khnOT73wKY_c4QTjjpWgDA&usg=AFQjCNEBVr7rjw1c5yR40yEFPByCerfFdQ&cad=rjaRossberg, J. (2008). Pro Visual Studio Team System Application Lifecycle Management. New York: Apress.
Jörn HartramfMaster IT Management Fachhochschule Mainz, Fachbereich Wirtschaft, 55128 Mainz
Martin TrottMaster IT Management Fachhochschule Mainz, Fachbereich Wirtschaft, 55128 Mainz