Anbei von mir eine kleine Präsentation im pdf Format zum Thema Ständig liefern. Sie stammt aus dem Jahr 2013 und stellt eher eine Sammlung von Erfahrungen dar. Die Erfahrungen wurden gesammelt in einem agilen Umfeld von 12 Scrum Teams und einer Modellgetriebenen Architektur welche über Generatoren Quellkode bereitstellte. Den größten Pain verursachte aus heutiger Sicht die Verwendung von SVN als Versionierungstool. Mit git entfallen viele dieser damaligen Probleme.
Eigentlich wäre es schon wieder an der Zeit eine neue Präsentation zu schreiben mit den aktuellen Lösungen:
- Agiles Team welches eher auf Kanban Basis arbeitet - Scrum einfach nicht so ernst nehmen aber doch beachten.
- Intensive Nutzung von Featurebranches im Rahmen von git mit möglichst kleinem Story Schnitt
- Jenkins Pipeline als CI System
- Docker als Delivery System (wobei die Container auch vom Jenkins gebaut werden)
- Fachliche Trennung in Microservices wobei jeder Service seine eigene Datenhaltung besitzt
- Shared Nothing Prinzip, sollte es wirklich genialen Kode geben der benötigt wird dann nur nach dem Prinzip copy and own.
- Nutzung von Feature Toggles um ständig liefern zu können ohne das der Kunde es schon sieht - sparsame Nutzung da immer doppelte Tests geschrieben werden müssen (alles mit Toggle, alles ohne Toggle und umgebungsabhängiges Toggle)
- Consumer Driven Contracts zum Mocken der Schnittstellen zu anderen Systemen (aber auch zwischen Angular GUI und Backend Restservice) mittels PACT.