Bessere Softwareentwicklung mit DevOps
By Uwe Baumann and Thomas Schissler
()
About this ebook
Uwe Baumann
Prof. Dr. Uwe Baumann lehrt Anglistik: Literatur- und Kulturwissenschaft an der Universität Bonn.
Read more from Uwe Baumann
Wissenschaft und Lehrerbildung Europäische Gründungsmythen im Dialog der Literaturen: Festschrift für Michael Bernsen zum 65. Geburtstag Rating: 0 out of 5 stars0 ratingsWozu Literatur(-wissenschaft)?: Methoden, Funktionen, Perspektiven Rating: 0 out of 5 stars0 ratings
Related to Bessere Softwareentwicklung mit DevOps
Titles in the series (100)
Einstieg in Google Go Rating: 0 out of 5 stars0 ratingsServiceorientierte Architektur: Anforderungen, Konzeption und Praxiserfahrungen Rating: 0 out of 5 stars0 ratingsTFS 2012 Versionskontrolle: Grundlagen, Check-In Policies und Branch-Modelle Rating: 0 out of 5 stars0 ratingsQualität in IT-Architekturen: Strategie und Planung Rating: 0 out of 5 stars0 ratingsJava EE Security Rating: 0 out of 5 stars0 ratingsSpring: Vier Perspektiven auf Framework und Ökosystem Rating: 0 out of 5 stars0 ratingsNFC: Near Field Communication für Android-Entwickler Rating: 5 out of 5 stars5/5JavaScript für Eclipse-Entwickler: Orion, RAP und GWT Rating: 0 out of 5 stars0 ratingsHTML5 Security Rating: 0 out of 5 stars0 ratingsErfolgreiche Spieleentwicklung: OpenGL, OpenAL und KI Rating: 0 out of 5 stars0 ratingsÜberzeugende Präsentationen: Konzeption, Technik und Design Rating: 0 out of 5 stars0 ratingsHTML5 für Mobile Web Rating: 0 out of 5 stars0 ratingsJava 7: Fork-Join-Framework und Phaser Rating: 0 out of 5 stars0 ratingsSkalierbare Softwaresysteme: Design, Betrieb und Optimierungspotenziale Rating: 0 out of 5 stars0 ratingsJavaScript auf dem Server Rating: 0 out of 5 stars0 ratingsAmazon Web Services für .NET Entwickler Rating: 0 out of 5 stars0 ratingsF#: Ein praktischer Einstieg Rating: 0 out of 5 stars0 ratingsGeolocation mit PHP: Foursquare-API, Google Places & Qype Rating: 0 out of 5 stars0 ratingsIT Wissensmanagement: Theorie und Praxis Rating: 0 out of 5 stars0 ratingsAlgorithmen: Grundlagen und Implementierung Rating: 0 out of 5 stars0 ratingsBPM: Strategien und Anwendungsfälle Rating: 0 out of 5 stars0 ratingsErfolgreiche Spieleentwicklung: OpenCL Rating: 0 out of 5 stars0 ratingsTitanium Mobile: Multi Platform Apps mit JavaScript Rating: 0 out of 5 stars0 ratingsTFS 2012 Anforderungsmanagement: Work Items und Prozessvorlagen Rating: 0 out of 5 stars0 ratingsBig Data: Technologiegrundlagen Rating: 0 out of 5 stars0 ratingsjQuery Mobile - Basics: Basics Rating: 0 out of 5 stars0 ratingsUX Design für Tablet-Websites: Ein Überblick Rating: 0 out of 5 stars0 ratingsBig Data: Executive Briefing Rating: 0 out of 5 stars0 ratingsSharePoint-Entwicklung für Einsteiger Rating: 0 out of 5 stars0 ratingsJava EE 7: Ein Ausblick Rating: 0 out of 5 stars0 ratings
Related ebooks
Softwareentwicklungsprozess: Von der ersten Idee bis zur Installation Rating: 0 out of 5 stars0 ratingsAgile Softwareentwicklung: Ein Leitfaden für Manager Rating: 0 out of 5 stars0 ratingsModellbasiertes Requirements Engineering: Von der Anforderung zum ausführbaren Testfall Rating: 0 out of 5 stars0 ratingsAgiliät und Continuous Delivery Rating: 0 out of 5 stars0 ratingsZertifizierung für Softwarearchitekten: Ihr Weg zur iSAQB-CPSA-F-Prüfung Rating: 0 out of 5 stars0 ratingsDevOps-Leadership - Schritte zur Einführung und Umsetzung von DevOps: Erfolgreiche Transformation vom Silo zur Wertschöpfungskette Rating: 0 out of 5 stars0 ratingsGlossar Agilität: kurz - knapp - klar Rating: 0 out of 5 stars0 ratingsAgil im ganzen Unternehmen: Wie Sie eine dynamische, flexible und kundenorientierte Organisation gestalten Rating: 0 out of 5 stars0 ratingsZukunftssichere Architektur: So bauen Sie monolithische Anwendungen zu komponentenorientierten um Rating: 0 out of 5 stars0 ratingsScrum. Schnelleinstieg (3. Aufl.) Rating: 0 out of 5 stars0 ratingsAgiles Requirements Engineering und Testen Rating: 0 out of 5 stars0 ratingsKnigge für Softwarearchitekten. Reloaded Rating: 0 out of 5 stars0 ratingsAgiles Arbeiten: Das Wesentliche kurz erklärt. Version 3.0 Rating: 0 out of 5 stars0 ratingsDevOps - Erfolgreich Entwicklung und IT-Betrieb verbinden: Grundlagen und Werkzeuge für eine erfolgreiche DevOps-Implementierung Rating: 0 out of 5 stars0 ratingsErfolgreiche Einführung neuer Pozessmodelle: Ihr Praxis-Leitfaden! Rating: 0 out of 5 stars0 ratingsLean Management im Einkauf und Beschaffung: Definieren, aufzeigen und praxisgerecht umsetzen Rating: 0 out of 5 stars0 ratingsModernes Projektmanagement: Erfolg und Nachhaltigkeit in der Projektarbeit Rating: 0 out of 5 stars0 ratingsAgiles Produktmanagement mit Scrum: Erfolgreich als Product Owner arbeiten Rating: 3 out of 5 stars3/5Kommunikation in der Produktion: Produktionsmanagement für Führungskräfte Rating: 0 out of 5 stars0 ratingsDer Design-Thinking-Werkzeugkasten: Eine Methodensammlung für kreative Macher Rating: 0 out of 5 stars0 ratingsPlötzlich schlank ... Lean in 90 Tagen Rating: 0 out of 5 stars0 ratingsScrum: Schnelleinstieg Rating: 0 out of 5 stars0 ratingsLean Management für Einsteiger: Erfolgsfaktoren für Lean Management – Lean Leadership & Co. als langfristige Erfolgsgaranten Rating: 0 out of 5 stars0 ratingsScrum: Agiles Projektmanagement und Scrum erfolgreich anwenden Rating: 0 out of 5 stars0 ratingsGrundlagen der Softwareentwicklung Rating: 0 out of 5 stars0 ratingsChange Management für Anfänger: Veränderungsprozesse Verstehen und Aktiv Gestalten Rating: 1 out of 5 stars1/5
Software Development & Engineering For You
Agiles Projektmanagement: Scrum für Einsteiger Rating: 0 out of 5 stars0 ratingsProgrammieren lernen mit Python 3: Schnelleinstieg für Beginner Rating: 0 out of 5 stars0 ratingsLean Production - Grundlagen: Das Prinzip der schlanken Produktion verstehen und in der Praxis anwenden. Schlank zur Wertschöpfung! Rating: 0 out of 5 stars0 ratingsKOMA-Script: Eine Sammlung von Klassen und Paketen für LaTeX 2e Rating: 0 out of 5 stars0 ratings3D-Drucken für Einsteiger: Ohne Frust 3D-Drucker selbst nutzen Rating: 0 out of 5 stars0 ratingsEinstieg in Reguläre Ausdrücke Rating: 0 out of 5 stars0 ratingsDigital Painting Workbook Rating: 0 out of 5 stars0 ratingsProjekt Unicorn: Der Roman. Über Entwickler, Digital Disruption und das Überleben im Datenzeitalter Rating: 0 out of 5 stars0 ratingsProjektmanagement für Anfänger: Grundlagen, -begriffe und Tools Rating: 0 out of 5 stars0 ratingsDesign Thinking für Anfänger: Innovation als Faktor für unternehmerischen Erfolg Rating: 0 out of 5 stars0 ratingsDas große Python3 Workbook: Mit vielen Beispielen und Übungen - Programmieren leicht gemacht! Rating: 4 out of 5 stars4/5Kanban für Anfänger: Grundlegendes über den Einsatz von Kanban in der Industrie und der Softwareentwicklung Rating: 0 out of 5 stars0 ratingsSketchnotes in der IT: Abstrakte Themen mit Leichtigkeit visualisieren Rating: 0 out of 5 stars0 ratings50 Arten, Nein zu sagen: Effektives Stakeholder-Management für Product Owner Rating: 0 out of 5 stars0 ratingsEinfach Java: Gleich richtig programmieren lernen Rating: 0 out of 5 stars0 ratingsKompaktes Managementwissen: Die Grunstruktur agiler Prozesse Rating: 0 out of 5 stars0 ratingsAgiles Coaching als Erfolgsfaktor: Grundlagen des Coachings, um Agile Teams erfolgreich zu managen Rating: 0 out of 5 stars0 ratingsAgile Spiele – kurz & gut: Für Agile Coaches und Scrum Master Rating: 0 out of 5 stars0 ratingsPrinzipien des Softwaredesigns: Entwurfsstrategien für komplexe Systeme Rating: 0 out of 5 stars0 ratingsScrum: Agiles Projektmanagement erfolgreich einsetzen Rating: 4 out of 5 stars4/5Softwaredesigndokumente - sinnvoller Einsatz im Projektalltag: Sinnvoller Einsatz im Projektalltag Rating: 0 out of 5 stars0 ratingsAgiles Requirements Engineering und Testen Rating: 0 out of 5 stars0 ratingsAutomatisiertes Testen: Testautomatisierung mit Geb und ScalaTest Rating: 0 out of 5 stars0 ratingsDigital Paintbook Volume 3 Rating: 5 out of 5 stars5/5Lean Management für Einsteiger: Erfolgsfaktoren für Lean Management – Lean Leadership & Co. als langfristige Erfolgsgaranten Rating: 0 out of 5 stars0 ratingsAgiles Produktmanagement mit Scrum: Erfolgreich als Product Owner arbeiten Rating: 3 out of 5 stars3/5Baukunst für Softwarearchitekten: Was Software mit Architektur zu tun hat Rating: 0 out of 5 stars0 ratingsChange Management für Anfänger: Veränderungsprozesse Verstehen und Aktiv Gestalten Rating: 1 out of 5 stars1/5Einfach Python: Gleich richtig programmieren lernen Rating: 0 out of 5 stars0 ratings
Reviews for Bessere Softwareentwicklung mit DevOps
0 ratings0 reviews
Book preview
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