In diesem Artikel beleuchten wir, warum Automation einen wesentlichen Beitrag zur erfolgreichen Durchführung von Data Science Projekten leistet und somit Probleme durch fehlende Automation elegant umgangen werden können. Das ist wichtig, da neue oder laufende Softwareprojekte in der Phase der Integration schnell in einen weniger produktiven Zustand geraten können. Die Lösung lautet: Automatisierung.
Viele unserer Kunden berichten uns immer wieder von ihren schlechten Erfahrungen mit Softwareprojekten. Oft ist der Grund für das Scheitern oder den ausbleibenden Erfolg das Fehlen von ausreichend Daten-Know-how (Data Roles und Data Skills), fehlende Kommunikation und komplexe Prozesse und fehlende Automatisierung bei der Integration von Software. Dies führt meist zu der so genannten „Integration Hell“. Dieser Begriff beschreibt einen Zustand, bei dem mehrere Versionen derselben Software nur noch mit erheblichen Entwicklungsaufwand zusammengeführt und getestet werden können.
Automatisierung bzw. DataOps – ein Prozessverbesserungsansatz in der Software-Entwicklung und Systemadministration – sind in diesem Zusammenhang Lösungsansätze, die klare Aufwands- und Kosteneinsparung bei bereits laufenden oder neuen Softwareprojekten ermöglichen. Dadurch lässt sich eine enorme Zeitersparnis realisieren und die „Time to Market“ wird minimiert. Der Vorteil bei der Automatisierung: Entwickler müssen sich nichtmit jeder Änderung im Code erneut um Code Deployment, also den Softwareauslieferungsprozess, kümmern. Darum wird hier auch von „Continuous Deployment“ gesprochen, also: „kontinuierliche Softwareweiterentwicklung.“ Continuous Deployment gehört dabei zur Continuous Delivery – diese wurde ursprünglich von Jezz Humble und David Farley wie folgt definiert:
„Continuous delivery: Reliable software releases through build, test, and deployment automation.”
Bis heute ist dies die Grundlage für mehr Effizienz und Produktivität bei Softwareprojekten.
Linktipp: Daten richtig Nutzen: So sichern Sie sich Wettbewerbsvorteile mit dem Data-Journey-Modell.
Ziele, Nutzen und Mehrwert von Automatisierung
Die Automatisierung bringt von Software-Projekten bietet verschiedene Vorteile:
- Erhöhung der Effizienz
- Verbesserung der Produktivität
- Zeitersparnis
Software, Programme und Code stehen heute zwischen den Vorhaben und der Entwicklung von neuen Produkten und ihrer Implementierung. Darum sind Lösungsansätze, die diese Prozesse effizient halten, wichtig. Dabei ist eine der größten Herausforderungen, dass es zwischen der Umgebung, in der der Code entwickelt wird und dem Deployment, bzw. dem Betrieb, große Unterschiede geben kann. Aus diesem Grund ist es eines der zentralen Ziele von Automatisierung im Bereich Softwareentwicklung, kritische Softwareprojekte am Laufen zu halten. Das „Festfahren“ von laufenden Projekten kann durch Automatisierung vermieden beziehungsweise ganz ausgeschlossen werden.
Ermöglicht wird dies durch ein One-Click-Deployment, das bei der Entwicklung Qualitätskontrollen, Integration und Tests miteinander vereint. Gleichzeitig bleibt durch diese Maßnahme mehr Zeit für die tatsächliche Weiterentwicklung der Software, weil manuelle Prozesse minimiert werden. Neue Software-Features können mit der Hilfe von Automatisierung schneller geliefert werden. Automation erhöht damit insgesamt die Effizienz der Softwareentwicklung und verbessert die Produktivität.
Das Prinzip von „DevOps“, also die Zusammenführung von Development und DataOps, vereint mehrere der hier relevanten Aspekte wie:
- Continuous Integration,
- Continuous Testing,
- Continuous Deployment und
- Continuous Monitoring
Der große Vorteil dieser Methode ist, dass Fehler schneller und frühzeitig erkannt und behoben werden können. Neben der Fehlererkennung zeichnen insbesondere eine bessere Skalierbarkeit sowie Verlässlichkeit diesen Ansatz aus. Je früher Experten aufgrund ihrer Erfahrungen die entsprechenden Prinzipien in ein Projekt einführen, desto geringer ist das Risiko für ein Projekt, zu einem späteren Zeitpunkt festzufahren. Ohne Ansätze wie Continuous Delivery oder Continuous Deployment kann es im Verlauf eines Projekts oftmals zu extremen Zeit- und Budgetaufwänden kommen, um beispielsweise Entwicklungsfortschritte zusammenzuführen oder Tests durchzuführen.
Das zeichnet uns aus
Continuous Delivery, Continuous Deployment und Automatisierung bei der Entwicklung von Software- und Data-Science-Projekten gehören für uns zum Standard. Das liegt vor allem daran, dass wir alltäglich die hier beschriebenen Herausforderungen handeln. Wir von der Alexander Thamm GmbH führen vor allem Data Science und AI Projekte durch und entwickeln Use-Cases – sprich: in der Regel Prototypen. Erst diejenigen Use-Cases, die produktiv sind, schaffen echte Mehrwerte. Nachdem ein Proof-of-Concept entwickelt wurde, das nur in der Theorie die Durchführbarkeit eines Projektes markiert, ist es also essenziell, dieses zu skalieren und anschließend erfolgreich in einer Organisation zu implementieren.
Umgekehrt bedeutet das für uns, dass wir in der Entwicklung von Use-Case wichtige Prinzipien wie Automatisierung und DataOps bereits minteinbeziehen. Nur so gelingt die möglichst reibungslose und erfolgreiche Übertragung des analytischen Konzepts in die Produktivsetzung des Data Products. Auf diese Weise konnten wir bereits in zahlreichen Projekten konkrete Erfahrung mit der Automatisierung bei der Entwicklung und Integration von Software sammeln. Darum sind wir mit den Vor- und Nachteilen der Technologien, die hier Anwendung finden können, bestens vertraut.
Unsere Dienstleistungen
In Data Science Schulungen und Workshops geben wir unser Wissen und unsere Erfahrung mit den Themen Continuous Deployment und Automatisierung weiter. Wir bieten Schulungen zu folgenden Einzelthemen an:
- Grundprinzipien von DataOps
- Continuous Delivery & Deployment
In Form von Coachings können wir unsere Kunden bereits zu Beginn von Softwareprojekten Best Practices an die Hand geben oder bei der Konzeptentwicklung unterstützen. Darüber hinaus können wir bei bereits laufenden Projekten – beispielsweise durch Pair Programming, Setup von Continuous Delivery & Deployment oder Troubleshooting – Hilfestellungen geben.
0 Kommentare