In den letzten 15 Jahren haben die modernen Kommunikationsmittel einen Riesensprung gemacht. Die Welt wird immer kleiner; die tägliche enge Zusammenarbeit mit Kollegen auf der ganzen Welt ist für viele Menschen Realität. Dies gilt insbesondere für das Offshoring von IT. Die Vorteile liegen auf der Hand: mehr qualifizierte Mitarbeiter und niedrigere Kosten, aber es gibt auch Herausforderungen. In diesem Blog werde ich zeigen, wie die Offshore-Softwareentwicklung durch die Anwendung von Agile-Prinzipien und Best Practices verbessert werden kann. Ich werde Ihnen zeigen, wie der Agile Tester und die Agile Testpraxis eine wichtige Rolle bei diesem Ansatz spielen. Ich gehe davon aus, dass der Leser mit der agilen Softwareentwicklung und Scrum vertraut ist.
Von der Nachfrage zur Lieferung
Die Abstimmung von Geschäftsanforderungen und IT-Leistungen ist sehr wichtig für den Erfolg eines Unternehmens. Vor allem in wirtschaftlich schwierigen Zeiten wird es noch wichtiger, Nacharbeit zu reduzieren und die Markteinführungszeit zu verkürzen. Das grundlegende Nachfrage-/Angebotsmodell veranschaulicht die Abstimmung von geschäftlicher Nachfrage und IT-Lieferung auf einer hohen Ebene:

Die Nachfragesteuerung konzentriert sich darauf, was benötigt wird, warum es benötigt wird und übersetzt dies in Anforderungen. Supply Management & IT Delivery konzentriert sich auf die Realisierung der Nachfrage. Es konzentriert sich auf das Wie der geschäftlichen Anforderungen. Um Software erfolgreich zu liefern, müssen wir sicherstellen, dass der Informationsfluss vom Warum/Was zum Wie und das Feedback vom Wie zum Warum/Was gut funktioniert.
Über die Mauer geworfen
Beim Offshoring der Softwareentwicklung muss das Supply Management die Anforderungen an einen Offshore-IT-Service klären. Dies geschieht in der Regel durch eine Architekturabteilung, die funktionale und technische Designdokumente erstellt. Die Dokumentation dient dann dazu, den Offshore-Partner zu informieren, der sich um die Lieferung kümmert. Der Offshore-Partner erstellt und testet die Software auf der Grundlage der Dokumentation und liefert das Ergebnis zur Abnahme durch das Unternehmen. Das hört sich gut an, aber es funktioniert nicht gut. Zu den vielen Gründen für das Scheitern gehören:
- Schlecht definierte Systemanforderungen; selbst wenn sie außergewöhnlich gut definiert sind, können sie die tatsächlichen Absichten des Systems nur schlecht vermitteln
- Schlechte Kommunikation zwischen Kunden, Entwicklern und Benutzern
- Änderungen der Anforderungen während der Entwicklung
Studien haben gezeigt, dass Softwareentwickler bei dieser Art von Projekten etwa 40 bis 50 Prozent ihrer Zeit mit vermeidbarer Nacharbeit statt mit wertschöpfender Arbeit verbringen.
Agiles Offshoring
Die Methoden der agilen Softwareentwicklung sind darauf ausgelegt, mit Veränderungen umzugehen. Sie gehen davon aus, dass die Dokumentation nicht die Software ist und dass das Unternehmen durch Feedback und neue Erkenntnisse während der Entwicklung mehr über seine tatsächlichen Bedürfnisse herausfinden wird. Als Nächstes werde ich Ihnen zeigen, wie sich agile Praktiken anwenden lassen, um Angebot und Nachfrage aufeinander abzustimmen, während Menschen an verschiedenen Orten auf der ganzen Welt zusammenarbeiten.
Der Product Owner verwaltet die Nachfrage
Die Rolle des Product Owners unterscheidet sich nicht zwischen Offshore- und lokaler Softwareentwicklung; der Product Owner konzentriert sich auf das Nachfragemanagement. Er weiß, was entwickelt werden muss und warum es entwickelt werden muss. Er kennt die Geschäftsprozesse, die implementiert werden müssen, oder die Produktfunktionen, die entwickelt werden müssen. Er wird sich darauf konzentrieren, die geschäftliche Nachfrage in ein priorisiertes Product Backlog, eine Liste von User Stories, zu übersetzen.
Das Team kümmert sich um Belieferung & Lieferung
Das Supply Management konzentriert sich darauf, User Stories bereit zu machen. User Stories müssen die Definition von Ready erfüllen, bevor sie Teil eines Sprints sein können. Der Agile Tester arbeitet mit dem Product Owner und den Offshore-Softwareentwicklern zusammen, um die User Stories vorzubereiten. Der Agile Tester befindet sich vor Ort, wo er oder sie leichten Zugang zu den Geschäftsanforderungen hat. Zusammen mit dem Product Owner arbeitet er an den User Stories für den nächsten Sprint. Die Arbeit besteht darin, die Spezifikationen klar zu formulieren und mit Beispielen zu veranschaulichen. IT Delivery konzentriert sich darauf, die User Stories fertig zu stellen, so dass am Ende jedes Sprints eine funktionierende Software vorliegt. Die Software wird von den Softwareentwicklern am Offshore-Standort erstellt, die zusammen in einem Raum sitzen. Sit Together ist eine XP-Praxis, die zum Beispiel technische Diskussionen über Herausforderungen bei der Implementierung vor Ort ermöglicht. Die Offshore-Softwareentwickler und Agile Tester arbeiten gemeinsam an der Verfeinerung der Spezifikationen und verwenden die Beispiele zur Validierung des Produkts. Die Validierung ist automatisiert und Continuous Integration wird für schnelles Feedback eingesetzt. Das Schreiben und Erstellen einer Reihe von automatisierten funktionalen Akzeptanztests ist Teil des IT-Bereitstellungsprozesses.

Verknüpfung von Angebot und Nachfrage
Der gerade beschriebene Prozess unterstützt Building Integrity In. Integrität wird durch einen hervorragenden Informationsfluss erreicht. Dieser Prozess allein reicht für ein erfolgreiches Offshore-Ergebnis natürlich nicht aus. Da wir Agile Offshore unter Verwendung von Scrum betrachten, versteht es sich von selbst, dass alle Scrum-Artefakte, -Rollen und -Besprechungen (das absolute Minimum) auf verteilte Weise implementiert werden müssen, um die Kommunikation für Menschen zu optimieren, die an verschiedenen Orten zusammenarbeiten. Darüber ist bereits viel geschrieben worden, so dass ich das hier nicht wiederholen werde.
Agiles Testen
Was ist also neu? Das "Neue" ist die Betonung des Agilen Testens und der Rolle des Agilen Testers im Wertstrom vom Geschäftsbedarf bis zur funktionierenden Software in der Offshore-Softwareentwicklung. Jedes agile Softwareentwicklungsteam kann die agilen Testverfahren anwenden. Beim Agile Offshoring sind sie der Dreh- und Angelpunkt, um das 'Was/Warum' auf kontrollierte Weise mit dem 'Wie' zu verbinden. Der Agile Tester wird:
- Erleichterung und Unterstützung der Entwicklung einer gemeinsamen Sprache
- Bauen Sie gemeinsam mit dem Team eine Reihe automatisierter Tests auf, die Refactoring ermöglichen, Änderungen zulassen und als lebendige Dokumentation dienen.

Fazit
Wenn Sie Ihre Offshore-Entwicklung agil organisieren, haben Sie den Vorteil, schnell auf Veränderungen reagieren zu können, ohne die Kontrolle zu verlieren. Der Agile Tester spielt dabei eine entscheidende Rolle. Am Ende eines jeden Sprints liefert das gesamte Team nicht nur eine qualitativ hochwertige, funktionierende Software, sondern auch eine genaue Dokumentation, damit alle Beteiligten auf dem gleichen Stand sind.
Referenzen
Website: offshoring.xebia.com
G.M. Wijers, Nachfrage und Angebot: Der Schlüssel für die moderne IT-Organisation, EquaTerra, 2010 G. Schoonheim, Mind the Gap, Xebia, 2009 M. Fowler, Verwendung eines agilen Softwareprozesses mit Offshore-Entwicklung, 2006 S. Beaumont, Die Definition von READY, 2009 R. N. Charette, Warum Software scheitert, 2005
Verfasst von
Sjors Grijpink
Unsere Ideen
Weitere Blogs
Contact



