01.12.2016  Verfasst von Sascha Meyer in Agile Methoden Agile Governance  

3 wichtige Punkte, die man mit agilen Entwicklungsdienstleistern vereinbaren sollte

... um viele Irrungen und Wirrungen im weiteren Verlauf der Zusammenarbeit vermeiden.

Die Hausaufgaben sind gemacht: Der Kunde wurde ausgiebig beobachtet, Probleme und Lösungsansätze identifiziert, Prototypen wurden entwickelt und validiert. Die Produktvision ist erarbeitet, das Minimum Viable Product definiert. Nun soll es endlich losgehen mit der Softwareentwicklung… Doch woher kommen denn die benötigten Entwicklungs-Teams?

In Zeiten leer gefegter Recruiting Märkte für Entwickler greifen viele unserer Klienten auf externe Entwicklungsdienstleister zurück. Mit der Time2Market im Blick ist dies sicherlich ein sinnvoller Weg, die eigene Produktentwicklung kurzfristig anzuschieben. Vor der ersten Zeile Code steht aber stets die Vereinbarung eines passenden Vertragswerkes. Viele Diskussionen werden geführt, ob man nun Gewerke (Stichwort: Agiler Festpreise) oder auf Basis von Zeit und Material vergeben möchte. Meine Erfahrung zeigt, dass in beiden Fällen drei wichtige Aspekte in den Vereinbarungen mit den jeweiligen Dienstleistern beleuchtet werden sollten.

Festlegung des Kooperations-, Abnahme- und Eskalationsverfahrens

  • Welches agile Vorgehen wird verwendet?
  • Welche Rollen sind vorgesehen?
  • Welche Verantwortung haben die Rollen?
  • Welche Partei besetzt welche Rolle?
  • Wer nimmt an welchen Meetings teil? Wo finden diese statt? Besteht beispielsweise ein gemeinsames Verständnis zur Relevanz von Release Plannings, Backlog-Refinements und Retrospektiven?
  • Welche Meetings gibt es? Welche Artefakte gibt es? Wer ist hierfür in welcher Weise verantwortlich?
  • Wann und durch wen erfolgt im Prozess die Abnahme? Durch den Product Owner (PO) während des Sprints oder erst im Review? Oder später durch den PO bei Release? Ist der PO ausreichend ermächtigt oder kann nur ein formeller Auftraggeber die Abnahme eines potentiell releasefähigen Pakets nach dem Sprint erledigen? Wer trägt in diesem Fall die Nacharbeiten?
  • Wie geht man mit in der agilen Welt gewünschten Iterationen und Anpassungen um?
  • Wer übernimmt die organisatorische Steuerung der Zusammenarbeit? Ist ein gemeinsames Gremium notwendig?
  • Wie werden inhaltliche und personelle Prioritätskonflikte gelöst?

Vereinbarung von technologischer Rahmenbedingungen

  • Welche Technologien müssen, sollten oder könnten eingesetzt werden?
  • Wie wird die Architektur emergent entwickelt? Wer trägt die Verantwortung? Wie wird diese abgestimmt und dokumentiert? Wer entscheidet im Konfliktfall?
  • Welche Standards wie Logging, Reporting, etc. sind in der Softwareentwicklung einzuhalten?
  • Welche technischen Verfahren wie eine vorgegebene Continuous Deployment Pipeline ist zwingend zu verwenden?
  • Wie sieht die vorgesehene Betriebsumgebung aus? Wieviel Kapazität darf im Produktivbetrieb maximal genutzt werden?

Übernahme betrieblicher Verantwortung

  • Wer übernimmt wann die betriebliche Verantwortung? Welche Verantwortung liegen bei DevOps Teams? Welche im Betrieb?
  • Wie erfolgt eine besondere Betreuung in kritischen Zeiten wie Rollouts oder Hochlastphasen?
  • Wie wird der „2nd und 3rd Level Support“ im produktiven Betrieb geregelt? Wer akzeptiert Tickets? Wer verteilt Sie auf die Teams? Wer trägt die Verantwortung?
  • Ist die Betriebsbereitschaft geregelt? Best-Effort ist meist keine zufriedenstellende Vereinbarung.

Diese nicht vollständige Auflistung vermittelt ein Gefühlt, welche klassischen und besonderen Fallstricke der agilen Entwicklung man bei der Beauftragung von Dienstleistern berücksichtigen sollte. Auch in agilen Projekten kann die frühzeitige und kooperative Klärung derartiger Fragen viele Irrungen und Wirrungen im weiteren Verlauf der Zusammenarbeit vermeiden. Ich empfehle daher, in Verhandlungen stets neben juristischen Kompetenz auch auf methodische Beratung mit nachweislicher Erfahrung in agilen Projekten zu vertrauen.

Der Autor

Sascha Meyer
Management Consultant