Outsourcing Ihrer Software-Entwicklung?
Outsourcing Ihrer Software-Entwicklung?. Vertrauen ist gut, Kontrolle ist besser!

Outsourcing Ihrer Software-Entwicklung?
Ihr Unternehmen hat sich möglicherweise für ein Outsourcing von Software-Entwicklungsaufgaben entschieden oder denkt zumindest darüber nach Auftragsprogrammierung ist aus verschiedenen Gründen beliebt, zu denen nicht zuletzt Kosteneinsparungen, Zeitgewinne oder die Möglichkeit der Nutzung spezieller Kenntnisse des Outsourcing-Lieferanten zählen. Aber unabhängig vom Motiv der Entscheidung sollte nicht vergessen werden, dass Software ein Wirtschaftsgut ist und es sich bei der Software-Entwicklung um eine Wert schaffende Tätigkeit handelt. Achten Sie darauf, dass der von Ihnen ausgewählte Anbieter der Outsourcing-Services das Wirtschaftsgut in der geeigneten Qualität liefert und rechtzeitig fertigstellt, damit Sie die Nachfragen Ihres Marktes erfüllen können. Software-Assets in bekannt hoher Qualität sind besonders kritisch, wenn sie zum Aufbau einer Shared-Services-Umgebung als Teil Ihrer serviceorientierten Architektur (SOA) verwendet werden.
Der von Ihnen für die Erbringung der Outsourcing- Dienstleistungen gewählte Anbieter ist Ihr Geschäftspartner. Gute Partnerschaften bauen auf Vertrauen und Vertrauen ist das Vermögen, sich auf das erwartete Verhalten Ihres Partners verlassen zu können. Wie können Sie wissen, ob sich Ihr Partner so verhält, dass Sie davon profitieren und sich die Partnerschaft auszahlt? Bestehen Sie auf echter Transparenz, wenn es um den Software- Entwicklungsprozess Ihres Partners geht. Ein aktives, sichtbares und umfassendes Softwaretestprogramm Ihres Anbieters sorgt für einen Teil der erforderlichen Transparenz. Viele Outsourcing-Dienstleister präsentieren voller Stolz ihre ISO-9001- und CMMI-Zertifizierungen als entscheidende Wettbewerbsvorteile und als »Risikoreduzierer« für die Software-Entwicklung. Reifegrad- Modelle oder Maturity Models sind großartig, wenn es um die Beschreibung bewährter Praktiken, geregelter Prozesse oder um Dokumentation geht. Aber sie sind nicht lebendig, sie atmen nicht! Zertifizierungen bestätigen die Existenz und die Dokumentationsqualität eines Softwarentwicklungsprozesses zu einem bestimmten Zeitpunkt. Sie sagen aber nichts über die Realität der tagtäglichen Arbeit des Anbieters oder über die Qualität des Programmcodes aus, der in der letzten Nacht für Sie entwickelt wurde.
Einen echten Einblick in das Geschehen Ihres Software-Entwicklungsprojekts erhalten Sie durch die tägliche, automatische Inspektion des in der Entwicklung befindlichen Programmcodes, durch ein tägliches Nachverfolgen der Testergebnisse und der Testabdeckung sowie durch ein Identifizieren, Managen und Lösen von Softwarefehlern. Eine automatische Code-Inspektion, auch als »static code review« bezeichnet, kontrolliert den Software-Code unter den Aspekten Sicherheit, Wartungsfreundlichkeit, Erweiterbarkeit und Leistungsfähigkeit auf schlechte oder riskante Codierungskonstrukte. Die tägliche Kontrolle von Testergebnissen und Testabdeckung gibt rechtzeitig Hinweise auf negative Trends (unangekündigter Wechsel beim Personal, Test-Suites, die die Codebasis nicht adäquat ausführen, plötzliches, unerwartetes Auftreten riesiger Codeblocks), so dass Sie frühzeitig reagieren und Ihrem Partner entsprechende Anweisungen geben können. Ein klar definiertes Defect Management deckt auf, wie schnell und wie gut die Mitarbeiter und die Prozesse des Anbieters auf Probleme reagieren. Ohne eine solche Transparenz gestaltet sich das Outsourcing von Software-Entwicklung zu einer reinen Vertrauenssache.
Nicht jedes fremd vergebene Softwareentwicklungsprojekt bedarf der gleichen Testintensivität. Ein entscheidender Part der Outsourcing-Governance besteht darin, jedem Outsourcing-Auftrag den richtigen Safety Integrity Level (SIL) zuzuteilen und damit das Risikopotenzial zu definieren. SIL kombiniert die Konzepte von Risikomanagement, Ausfallfolgen, Testtechniken und Testzielen. Begleiten Sie die Arbeiten Ihres Outsourcing- Partners mit diesem Verfahren. Informieren Sie sich intensiver über SOA, Governance, Testverfahren und Risikomanagement.
Stuart Selip ist Senior Analyst für Application Platform Strategies bei der Burton Group.