Bessere Softwareentwicklung mit DevOps
Von Uwe Baumann und Thomas Schissler
()
Über dieses E-Book
Uwe Baumann
Prof. Dr. Uwe Baumann lehrt Anglistik: Literatur- und Kulturwissenschaft an der Universität Bonn.
Mehr von Uwe Baumann lesen
Europäische Gründungsmythen im Dialog der Literaturen: Festschrift für Michael Bernsen zum 65. Geburtstag Bewertung: 0 von 5 Sternen0 BewertungenWozu Literatur(-wissenschaft)?: Methoden, Funktionen, Perspektiven Bewertung: 0 von 5 Sternen0 Bewertungen
Ähnlich wie Bessere Softwareentwicklung mit DevOps
Titel in dieser Serie (100)
Zend Framework 2: Für Einsteiger und Umsteiger Bewertung: 0 von 5 Sternen0 BewertungenJavaScript für Eclipse-Entwickler: Orion, RAP und GWT Bewertung: 0 von 5 Sternen0 BewertungenIT Wissensmanagement: Theorie und Praxis Bewertung: 0 von 5 Sternen0 BewertungenHTML5 Security Bewertung: 0 von 5 Sternen0 BewertungenEinstieg in Google Go Bewertung: 0 von 5 Sternen0 BewertungenJavaScript auf dem Server Bewertung: 0 von 5 Sternen0 BewertungenNFC: Near Field Communication für Android-Entwickler Bewertung: 5 von 5 Sternen5/5HTML5 für Mobile Web Bewertung: 0 von 5 Sternen0 BewertungenSkalierbare Softwaresysteme: Design, Betrieb und Optimierungspotenziale Bewertung: 0 von 5 Sternen0 BewertungenUser Experience Testing 3.0: Status Quo, Entwicklung und Trends Bewertung: 0 von 5 Sternen0 BewertungenAlgorithmen: Grundlagen und Implementierung Bewertung: 0 von 5 Sternen0 BewertungenServiceorientierte Architektur: Anforderungen, Konzeption und Praxiserfahrungen Bewertung: 0 von 5 Sternen0 BewertungenErfolgreiche Spieleentwicklung: OpenGL, OpenAL und KI Bewertung: 0 von 5 Sternen0 BewertungenJava EE Security Bewertung: 0 von 5 Sternen0 BewertungenUX Design für Tablet-Websites: Ein Überblick Bewertung: 0 von 5 Sternen0 BewertungenErfolgreiche Spieleentwicklung: OpenCL Bewertung: 0 von 5 Sternen0 BewertungenGeolocation mit PHP: Foursquare-API, Google Places & Qype Bewertung: 0 von 5 Sternen0 BewertungenADF - Mobile Apps entwickeln und Swing ablösen: Mobile Apps entwickeln und Swing ablösen Bewertung: 0 von 5 Sternen0 BewertungenÜberzeugende Präsentationen: Konzeption, Technik und Design Bewertung: 0 von 5 Sternen0 BewertungenApache Tapestry: Einstieg in die komponentenorientierte Webentwicklung Bewertung: 0 von 5 Sternen0 BewertungenTFS 2012 Versionskontrolle: Grundlagen, Check-In Policies und Branch-Modelle Bewertung: 0 von 5 Sternen0 BewertungenQualitätssicherung mit JavaScript und PHP Bewertung: 0 von 5 Sternen0 BewertungenMobile Business: Was Entscheider morgen wissen müssen Bewertung: 0 von 5 Sternen0 BewertungenJava 7: Fork-Join-Framework und Phaser Bewertung: 0 von 5 Sternen0 BewertungenNutzeraspekte in Suchmaschinen: Komponenten für eine gelungene Usability-Gestaltung Bewertung: 0 von 5 Sternen0 BewertungenQualität in IT-Architekturen: Strategie und Planung Bewertung: 0 von 5 Sternen0 BewertungenAmazon Web Services für .NET Entwickler Bewertung: 0 von 5 Sternen0 BewertungenSharePoint-Entwicklung für Einsteiger Bewertung: 0 von 5 Sternen0 BewertungenNintex Workflow: Konzepte und Strategien für leistungsfähige SharePoint-Workflows Bewertung: 0 von 5 Sternen0 BewertungenJava EE 7: Ein Ausblick Bewertung: 0 von 5 Sternen0 Bewertungen
Ähnliche E-Books
Softwareentwicklungsprozess: Von der ersten Idee bis zur Installation Bewertung: 0 von 5 Sternen0 BewertungenAgile Softwareentwicklung: Ein Leitfaden für Manager Bewertung: 0 von 5 Sternen0 BewertungenModellbasiertes Requirements Engineering: Von der Anforderung zum ausführbaren Testfall Bewertung: 0 von 5 Sternen0 BewertungenAgiliät und Continuous Delivery Bewertung: 0 von 5 Sternen0 BewertungenZertifizierung für Softwarearchitekten: Ihr Weg zur iSAQB-CPSA-F-Prüfung Bewertung: 0 von 5 Sternen0 BewertungenDevOps-Leadership - Schritte zur Einführung und Umsetzung von DevOps: Erfolgreiche Transformation vom Silo zur Wertschöpfungskette Bewertung: 0 von 5 Sternen0 BewertungenServer-Infrastrukturen mit Microsoft Windows Server Technologien: Alle Themen für das Microsoft Seminar und die Zertifizierungsprüfung MOC 20413 Bewertung: 0 von 5 Sternen0 BewertungenGlossar Agilität: kurz - knapp - klar Bewertung: 0 von 5 Sternen0 BewertungenAgil im ganzen Unternehmen: Wie Sie eine dynamische, flexible und kundenorientierte Organisation gestalten Bewertung: 0 von 5 Sternen0 BewertungenZukunftssichere Architektur: So bauen Sie monolithische Anwendungen zu komponentenorientierten um Bewertung: 0 von 5 Sternen0 BewertungenScrum. Schnelleinstieg (3. Aufl.) Bewertung: 0 von 5 Sternen0 BewertungenAgiles Requirements Engineering und Testen Bewertung: 0 von 5 Sternen0 BewertungenKnigge für Softwarearchitekten. Reloaded Bewertung: 0 von 5 Sternen0 BewertungenAgiles Arbeiten: Das Wesentliche kurz erklärt. Version 3.0 Bewertung: 0 von 5 Sternen0 BewertungenDevOps - Erfolgreich Entwicklung und IT-Betrieb verbinden: Grundlagen und Werkzeuge für eine erfolgreiche DevOps-Implementierung Bewertung: 0 von 5 Sternen0 BewertungenErfolgreiche Einführung neuer Pozessmodelle: Ihr Praxis-Leitfaden! Bewertung: 0 von 5 Sternen0 BewertungenLean Management im Einkauf und Beschaffung: Definieren, aufzeigen und praxisgerecht umsetzen Bewertung: 0 von 5 Sternen0 BewertungenModernes Projektmanagement: Erfolg und Nachhaltigkeit in der Projektarbeit Bewertung: 0 von 5 Sternen0 BewertungenAgiles Produktmanagement mit Scrum: Erfolgreich als Product Owner arbeiten Bewertung: 3 von 5 Sternen3/5Kommunikation in der Produktion: Produktionsmanagement für Führungskräfte Bewertung: 0 von 5 Sternen0 BewertungenDer Design-Thinking-Werkzeugkasten: Eine Methodensammlung für kreative Macher Bewertung: 0 von 5 Sternen0 BewertungenPlötzlich schlank ... Lean in 90 Tagen Bewertung: 0 von 5 Sternen0 BewertungenScrum: Schnelleinstieg Bewertung: 0 von 5 Sternen0 BewertungenLean Management für Einsteiger: Erfolgsfaktoren für Lean Management – Lean Leadership & Co. als langfristige Erfolgsgaranten Bewertung: 0 von 5 Sternen0 BewertungenSoftware entwickeln mit Verstand: Was Sie über Wissensarbeit wissen müssen, um Projekte produktiver zu machen Bewertung: 4 von 5 Sternen4/5Scrum: Agiles Projektmanagement und Scrum erfolgreich anwenden Bewertung: 0 von 5 Sternen0 BewertungenGrundlagen der Softwareentwicklung Bewertung: 0 von 5 Sternen0 BewertungenAgile Leadership im Scrum-Kontext (Aktualisiert für Scrum Guide V. 2020): Servant Leadership für Agile Leader und solche, die es werden wollen. Bewertung: 0 von 5 Sternen0 BewertungenChange Management für Anfänger: Veränderungsprozesse Verstehen und Aktiv Gestalten Bewertung: 1 von 5 Sternen1/5
Softwareentwicklung & -technik für Sie
UML @ Classroom: Eine Einführung in die objektorientierte Modellierung Bewertung: 0 von 5 Sternen0 Bewertungen50 Arten, Nein zu sagen: Effektives Stakeholder-Management für Product Owner Bewertung: 0 von 5 Sternen0 BewertungenKnigge für Softwarearchitekten. Reloaded Bewertung: 0 von 5 Sternen0 BewertungenSketchnotes in der IT: Abstrakte Themen mit Leichtigkeit visualisieren Bewertung: 0 von 5 Sternen0 BewertungenDigital Painting Workbook Bewertung: 0 von 5 Sternen0 BewertungenProgrammieren lernen mit Python 3: Schnelleinstieg für Beginner Bewertung: 0 von 5 Sternen0 BewertungenEinfach Python: Gleich richtig programmieren lernen Bewertung: 0 von 5 Sternen0 BewertungenDigital Paintbook Volume 3 Bewertung: 5 von 5 Sternen5/5KOMA-Script: Eine Sammlung von Klassen und Paketen für LaTeX 2e Bewertung: 0 von 5 Sternen0 BewertungenIT Wissensmanagement: Theorie und Praxis Bewertung: 0 von 5 Sternen0 BewertungenAgiles Produktmanagement mit Scrum: Erfolgreich als Product Owner arbeiten Bewertung: 3 von 5 Sternen3/5Agile Spiele – kurz & gut: Für Agile Coaches und Scrum Master Bewertung: 0 von 5 Sternen0 Bewertungen3D-Drucken für Einsteiger: Ohne Frust 3D-Drucker selbst nutzen Bewertung: 0 von 5 Sternen0 BewertungenEinfach Java: Gleich richtig programmieren lernen Bewertung: 0 von 5 Sternen0 BewertungenBaukunst für Softwarearchitekten: Was Software mit Architektur zu tun hat Bewertung: 0 von 5 Sternen0 BewertungenPrinzipien des Softwaredesigns: Entwurfsstrategien für komplexe Systeme Bewertung: 0 von 5 Sternen0 BewertungenKompaktes Managementwissen: Die Grunstruktur agiler Prozesse Bewertung: 0 von 5 Sternen0 BewertungenEinstieg in Reguläre Ausdrücke Bewertung: 0 von 5 Sternen0 BewertungenProjekt Unicorn: Der Roman. Über Entwickler, Digital Disruption und das Überleben im Datenzeitalter Bewertung: 0 von 5 Sternen0 BewertungenDas große Python3 Workbook: Mit vielen Beispielen und Übungen - Programmieren leicht gemacht! Bewertung: 4 von 5 Sternen4/5Agiles Requirements Engineering und Testen Bewertung: 0 von 5 Sternen0 BewertungenSoftwaredesigndokumente - sinnvoller Einsatz im Projektalltag: Sinnvoller Einsatz im Projektalltag Bewertung: 0 von 5 Sternen0 BewertungenProjektmanagement für Anfänger: Grundlagen, -begriffe und Tools Bewertung: 0 von 5 Sternen0 BewertungenScrum: Agiles Projektmanagement erfolgreich einsetzen Bewertung: 4 von 5 Sternen4/5Single-Page-Web-Apps: JavaScript im Einsatz: Webseiten erstellen mit AngularJS, Meteor und jQuery Mobile Bewertung: 0 von 5 Sternen0 BewertungenAutomatisiertes Testen: Testautomatisierung mit Geb und ScalaTest Bewertung: 0 von 5 Sternen0 BewertungenGrundlagen und Methoden der Wirtschaftsinformatik: Eine anwendungsorientierte Einführung Bewertung: 0 von 5 Sternen0 BewertungenKanban für Anfänger: Grundlegendes über den Einsatz von Kanban in der Industrie und der Softwareentwicklung Bewertung: 0 von 5 Sternen0 BewertungenLean Management für Einsteiger: Grundlagen des Lean Managements für Kleine und Mittelständische Unternehmen – mit Vielen Praxisbeispielen Bewertung: 0 von 5 Sternen0 Bewertungen
Rezensionen für Bessere Softwareentwicklung mit DevOps
0 Bewertungen0 Rezensionen
Buchvorschau
Bessere Softwareentwicklung mit DevOps - Uwe Baumann
GmbH
1 DevOps und Business Agility
Im Zuge von Digitalisierung und Industrie 4.0 gefährden Softwarelösungen etablierte Geschäftsmodelle oder stellen zumindest einen wesentlichen Teil der Innovationskraft von Unternehmen dar. Es ist an der Zeit, zu hinterfragen, ob die Art und Weise, wie heute Software entsteht, den Anforderungen der Zukunft gerecht wird.
Nach dem klassischen Wasserfallmodell werden heute kaum noch Softwareprojekte realisiert. Die meisten Softwareentwicklungsteams sind mehr oder weniger agil unterwegs. Unstrittig hat sich damit die Entwicklungsarbeit verändert – für viele zum Positiven. Aber wie sieht die Veränderung durch Agilität für die Endanwender der Software aus? Wie hat Agilität die Arbeit von Vertriebsmitarbeitern beeinflusst, die die Software verkaufen sollen? Wie wirkt sich Agilität auf das Geschäftsmodell und die Marktposition unseres Unternehmens aus? Unsere These: Der tatsächliche Einfluss von Agilität im Software-Development auf das tatsächliche Business einer Firma ist sehr gering.
Im Grunde genommen verhält es sich – überspitzt gesagt – mit der agilen Entwicklung wie mit dem Einsatz des neuesten XY-Frameworks oder einer schicken neuen JavaScript-Bibliothek: Entwickler können sich dafür begeistern und klopfen sich gegenseitig auf die Schulter angesichts der phänomenalen Verbesserungen. Außerhalb des Entwicklungsteams bekommen aber Wenige davon mit.
Unsere These: Wir müssen uns stärker darauf konzentrieren, was Software in der realen Welt bewirken kann und wie gute IT-Lösungen dazu beitragen, auf die rascheren Veränderungen am Markt adäquat reagieren zu können. Doch die meisten Teams haben endlose Backlogs, prall gefüllt mit über lange Jahre gesammelten Userwünschen. Agilität ist hier lediglich ein Werkzeug, um besser zu steuern, was davon als Erstes abgearbeitet werden soll. Wie wollen wir damit aber innovativ sein? Wie wollen wir Kunden begeistern, wenn oftmals die positivste Reaktion ist „na endlich habt ihr dieses Feature eingebaut"?
Business Agility – Agilität auf den Unternehmenskontext ausweiten
Vielleicht ist es zehn Jahre nach dem Agile Manifesto [1] nun Zeit für ein neues Manifest: Wir brauchen eine neue Form der Kundenorientierung. Wir müssen nicht nur Wünsche erfüllen, sondern echten Bedarf erkennen und dafür Lösungen anbieten. Wir müssen die Software dazu nutzen, um die Marktposition und Wirtschaftlichkeit unseres Unternehmens positiv zu unterstützen. Wir müssen uns mehr darauf fokussieren zu lernen, was unsere Kunden benötigen und wie wir sie dabei unterstützen können. Wir müssen Experimente wagen und aus der Beobachtung der Reaktionen lernen, wie wir unser Angebot verbessern können. Dieses Vorgehen wird oft als Business Agility bezeichnet. Ein Zitat aus dem CIO-Magazin bringt es auf den Punkt: „It has been said that the only sustainable advantage in business is the ability for a company to learn faster and respond more effectively than its competitors (also known as business agility)." [2]
Der Begriff Business Agility beschreibt nicht nur sehr treffend das eigentliche Ziel unserer Arbeit in der Softwareentwicklung, sondern drückt gleichzeitig auch aus, dass wir auch Personen aus dem Business in unsere Softwareprojekte einbeziehen müssen. Wir müssen die Prinzipien und Philosophie von Agilität auf weitere Unternehmensbereiche ausdehnen, wie z. B. auf Marketing und Vertrieb, Support oder die Geschäftsführung. Wie dieser Umbruch konkret gestaltet werden kann, diskutieren wir im zweiten Kapitel.
Das Ziel von mehr Business Agility bedingt die Notwendigkeit, Softwareprojekte ganzheitlicher anzugehen. Wir müssen das Wissen und die Kompetenz von Kollegen aus unterschiedlichen Abteilungen nutzen, um uns möglichst gut zu positionieren. Wir müssen unsere Annahmen kritisch hinterfragen: Was macht die Anwender wirklich glücklich? Wir formulieren Hypothesen, die wir kontinuierlich beweisen oder widerlegen und somit weiterentwickeln und anpassen können.
Und hier schließt sich der Kreis zur klassischen agilen Idee. Damit dieser integrierte Prozess überhaupt funktionieren kann, brauchen wir ein flexibles, anpassungsfähiges, also ein agiles Vorgehen. Aber nur dann, wenn wir Agilität in diesen Gesamtkontext einbetten, werden wir auch das volle Potenzial nutzen können. Wir müssen in kurzen Iterationen agieren, um häufig eine Standortbestimmung vorzunehmen und entsprechend nachzusteuern. Diese kurzen Zyklen sind das Grundelement von Business Agility und DevOps.
Und DevOps, was ist das?
DevOps ist ein Begriff, der inzwischen sehr unterschiedlich gebraucht wird. In diesem Kapitel definieren wir DevOps als Prozess, der viele nötige Voraussetzungen schafft, um Software in kurzen Zyklen entwickeln und ausliefern zu können. Ursprünglich entstammt der Begriff der Idee, dass wir Software effizienter und in höherer Qualität bereitstellen können, wenn die Entwickler (Dev) und die Personen, die für den Betrieb der Software zuständig sind (Ops), eng zusammenarbeiten. So soll Operations bereits bei der Planung neuer Funktionen einbezogen werden, um frühzeitig Aspekte aus dem Betrieb einzubringen, die dann bereits bei der Entwicklung berücksichtigt werden können. Die Entwickler wiederum sollen nach Abschluss der Entwicklung einer Funktionalität die neue Version nicht einfach „über den Zaun werfen" und die Operations-Abteilung mit der Aufgabe allein lassen, den neuen Code auf dem Produktivsystem in Betrieb zu nehmen.
Vielmehr gibt es ein gemeinsames Ziel von Dev und Ops: Die Inbetriebnahme soll reibungslos verlaufen und die Anwender sollen neue, stabile und nützliche Funktionen nutzen können. Dazu sollen alle Beteiligten ihren Beitrag leisten. Idealerweise arbeiten Dev und Ops dazu in einem Team zusammen, und jedes Teammitglied bringt seine Erfahrungen und Kompetenzen ein. Dabei endet die Zusammenarbeit nicht mit dem Deployment. Erkenntnisse aus der Inbetriebnahme und dem Betrieb fließen in der Folge in die Entwicklung ein, um spätere Versionen der Software noch stabiler und besser zu machen [3].
Zu dieser ursprünglichen Idee wurden nach und nach weitere Konzepte hinzugefügt, wie das häufige Liefern neuer Softwareversionen, aber auch die Ausdehnung der Zusammenarbeit über Development und Operations hinaus. Gerade die kurzen Lieferzyklen generieren neue technologische Herausforderungen. Die Bewältigung dieser Herausforderungen durch entsprechende Tools, Practices und Prozesse, aber auch durch geeignete Architektur, Testmethoden und Telemetrie sind die Aspekte von DevOps, die wir in den nächsten Kapiteln beleuchten wollen. Aber zunächst können wir DevOps auch mit einem Satz zusammenfassen: DevOps bedeutet zehn Releases am Tag.
Der Weg hin zu DevOps
Bevor Sie aufhören zu lesen: Ja, viele Teams können neue Features gar nicht so schnell entwickeln und wenige brauchen tägliche oder stündliche Releasefrequenzen. Es geht vielmehr darum, die organisatorischen und technischen Voraussetzungen zu schaffen, sodass wir problemlos mehrmals am Tag eine neue Version bereitstellen könnten – idealerweise auf Knopfdruck und ohne manuelle Schritte.
Ob es nun zehn Releases am