Continuous Integration und Deployment – CI/CD

Softwareentwicklung geschieht vielfältig und CI/CD spielt bei Anwendungsentwicklern eine wichtige Rolle. Continuous Integration und Deployment (CI/CD) ist ein Prozess in der Softwareentwicklung. So werden Änderungen an einer Anwendung schnell und effizient in die Produktion zu überführt. Dies geschieht durch eine kontinuierliche Integration von Code-Änderungen und Tests, sowie eine automatisierte Bereitstellung von Software-Updates.

In der traditionellen Softwareentwicklung erfolgt die Integration von Code-Änderungen oft erst am Ende des Entwicklungsprozesses. Dies führt oft zu Problemen bei der Integration, da die einzelnen Komponenten der Anwendung nicht richtig miteinander funktionieren. Durch den Einsatz von CI/CD werden Code-Änderungen hingegen kontinuierlich und automatisiert in die Anwendung integriert und getestet.

Continuous Integration (CI)

Continuous Integration (CI) bezieht sich auf den Prozess der kontinuierlichen Integration von Code-Änderungen in ein zentrales Repository. Dabei werden alle Änderungen automatisch gebaut und getestet. So wird sichergestellt, dass sich die Änderungen problemlos in die bestehende Codebasis integrieren lassen. Dadurch können Probleme frühzeitig erkannt und behoben werden.

Continuous Deployment (CD)

Continuous Deployment (CD) geht noch einen Schritt weiter als CI. Es benutzt  Prozesse zur automatisierten Bereitstellung von Anwendungs-Updates. Dabei wird der Code automatisch auf die Produktionsumgebung übertragen und in Betrieb genommen, nachdem er erfolgreich getestet wurde. Dies ermöglicht eine schnelle und effiziente Bereitstellung von Software-Updates. Ausfallzeiten werden minimiert.

Durch den Einsatz von CI/CD können Entwickler die Qualität ihrer Anwendungen verbessern, die Entwicklungszeit verkürzen und die Auslieferung von Software-Updates beschleunigen. Dabei ist es wichtig, dass die Entwickler regelmäßig Änderungen am Code vornehmen und diese Änderungen automatisiert testen. Durch die kontinuierliche Integration und Bereitstellung von Code-Änderungen wird sichergestellt, dass die Anwendung zu jeder Zeit stabil und funktionsfähig bleibt.

Fazit

Zusammenfassend ist Continuous Integration und Deployment ein wichtiger Bestandteil der modernen Softwareentwicklung. Es ermöglicht eine schnelle, sowie effiziente Bereitstellung von Software-Updates. Es hilft Unternehmen, ihre Anwendungen schneller und mit höherer Qualität auf den Markt zu bringen.

 

Die Six Sigma Methodik im Überblick

Die Six Sigma Methodik wurde 1979 von Motorola entwickelt und dient der Qualitätsverbesserung bei vorhandenen Produkten oder Dienstleistungen. Dabei werden die Methoden DMAIC, DFACE und DMADV eingesetzt. Dazu wird das statistische Qualitätsmanagement eingesetzt. Dazu haben Genichi Taguchi und William Edwards Deming große Beiträge geleistet.

So hat  der japanische Ingenieur Gen’ichi Taguchi die nach Ihm benannte Taguchi-Methode entwickelt, bei der Prozesse, Produkte und Systeme so robust wie möglich gestaltet werden. Es ist heute eine der Methoden, die bei Six Sigma angewandt werden.

Zur gleichen Zeit entwickelte der amerikanische Ingenieur William Edwards Deming die prozessorientierte Sicht und den Einsatz von Statistik im Qualitätsmanagement. Seine Erkenntnisse sind auch heute in Qualitätsnormen und in der Lehre im Einsatz. So nutzen viele Menschen die PDCA Methode.

DMAIC

DMAIC ist eine sich wiederholende Methode, die aus fünf Schritten besteht. Die fünf Schritte sind Define, Measure, Analyze, Improve und Control. Mit DMAIC werden Probleme in bestehenden Prozessen und Produkten identifiziert, analysiert und gelöst.

DFACE

Die DFACE Methode ist eine Erweiterung von DMAIC. Sie betrachtet zusätzlich die zum üblichen Vorgehen bestehenden Chancen und  Risiken des Prozesses (Failure Mode and Effects Analysis, FMEA), sowie identifiziert DFACE die Anforderungen der Stakeholder (Customer Expectations).

DMADV

DMADV ist eine weitere Methode, die aus fünf Schritten besteht. Hier gibt es die Schritte Define, Measure, Analyze, Design, Verify, um einen neuen Prozess mit großer Leistung und Zuverlässigkeit zu entwerfen und umzusetzen. Im Gegensatz zu DMAIC liegt der Fokus auf der Prozessneugestaltung.

Das Pareto Diagramm ein Werkzeug des Qualitätsmanagement

Beim Qualitätsmanagement ist es wichtig, dass man sich auf die Hauptprobleme konzentriert. Eine gute Unterstützung liefert das Pareto Diagramm, dass das Pareto Prinzip nutzt. Dazu wird die relative Häufigkeit von Problemen in einem Balkendiagramm dargestellt.

Prozess zur Nutzung des Pareto Diagramms

  1. Festlegen, welches Problem analysiert werden soll
  2. Brainstorming anhand von Daten über Probleme oder Ursachen
  3. Sinnvolle Messgrößen ermitteln
  4. Den Untersuchungszeitraum festlegen
  5. Daten für die Untersuchung sammeln oder vorhandene Daten ermitteln
  6. Vergleich der relativen Häufigkeit jeder Problem Kategorie
  7. Kategorien in der horizontalen Achse eintragen
  8. Die kumulierten Prozentwerte der Problemkategorien eintragen
  9. Zum Abschluss die Ergebnisse analysieren und interpretieren

Beispiel einer Auswertung mit dem Pareto Diagramm

blankDas Ergebnis zeigt, dass mit der Beseitigung der zwei größten Fehler eine Fehlerreduktion von fast 80% erreicht wird. Durch die Beseitigung der Fehler „Kabelbruch“ und „Messfehler“ lässt sich die Qualität in kurzer Zeit wesentlich steigern.

Fazit:

Das Paretoprinzip unterstützt eine schnelle und effektive Steigerung der Qualität eines Produkts oder einer Dienstleistung. Es ist ein nützliches Werkzeug aus der Werkzeugkiste von Six Sigma.

Das Pflichtenheft im Anforderungsmanagment

Das Pflichtenheft beschreibt, wie der Auftragnehmer die Anforderungen des Auftraggebers lösen will. Die Anforderungen sind im Lastenheft beschrieben. Das Pflichtenheft enthält das Lastenheft als Anlage. Genaues ist in der DIN 69901-5 und der DIN VDI/VDE 3694: 91-04 geregelt.

Das Pflichtenheft schildert, wie und mit welchen Mitteln die Anforderungen umgesetzt werden. Die Umsetzung wird erst nach der Zustimmung der Auftraggebers durchgeführt. Die Abnahme wird mit Hilfe der Beschreibung aus dem Pflichtenheft und Lastenheft durchgeführt.

 

Fehlersuche in Java mit dem Eclipse Debugger

Um ein perfektes Produkt mit der Programmiersprache Java zu erstellen braucht es eine gründliche Qualitätskontrolle und methodisches Vorgehen.

Der Entwickler unterscheidet, ob ein logischer Fehler oder ein Schreibfehler vorliegt. Logische Fehler können mit Hilfe  einer genauen Beschreibung des Produkts oder Vorgangs durch Soll-Ist Vergleiche erkannt und beseitigt werden. Manchmal wäre es praktisch, wenn ein Programm zum Test Schritt für Schritt ausgeführt werden könnte und dabei die Werte der Variablen, Übergabeparameter und Attribute auslesen kann. Hier kann die Java Entwicklungsumgebung Eclipse durch den integrierten Debugger unterstützen. Durch setzen eines Breakpoints, einer temporären Haltestelle, können die gewünschten Werte geprüft werden. Das setzen des Breakpoints erzeugt einen kleinen blauen Punkt auf der linken Seite. Durch erneutes Klicken mit der Maus auf diesen Punkt wird der Breakpoint wieder entfernt.

Breakpoint im Eclipse Debugger

Mit der Taste F11 wird der Debugger in Eclipse gestartet.  Bei Punkt 1 wird die Breakpoint Markierung und der Java Quellcode angezeigt.  Bei dem rechten Fenster werden bei Punkt 2 die Breakpoints und nach dem klicken auf einen Breakpoint werden unten weitere Informationen angezeigt. Auf der linken Seite bei Punkt 3 die Aufrufhierarchie angezeigt.

Java Debugger bei Eclipse

Für die weitere Bearbeitung stehen weitere Funktionen zur Verfügung

  • F5 Step into
    Es können Methoden aufgerufen und in der ersten Zeile angehalten werden. Ansonsten wird der Debugger bis zum nächsten Methodenaufruf weiterlaufen.
  • F7 Step Return
    Mit Step Return kann der Sprung in eine Methode durch Step Into zurückgenommen werden und an der vorherigen Haltestelle wieder weiter analysiert werden.
  • F6 Step Over
    Step Over kann einen zu analysierenden Bereich überspringen.
  • F8 Resume
    Das Programm wird bis zum nächsten Breakpoint ausgeführt.
  • CTRL+R Run To Line
    Die Ausführung des Programms wird bis zu einer bestimmten Zeile durchgeführt.
  • CTRL+F2 Terminate
    Die Ausführung des Programms wird beendet.

Mit dem Debugger lassen sich während des Probelaufs eines Programms die Variablen, Schleifen, Abfragen, Methodenaufrufe beobachten und so können Fehler leichter gefunden werden.

 

Die PDCA Methode von William Edwards Deming

Dr. William Edwards Deming, der Mann der die Welt veränderte und den kaum einer kennt. Dr. Deming war ein Guru des Qualitätsmanagements, der neue Wege aufzeigte und umsetzte. Seine Methoden machten Toyota zum langjährigen Weltmarktführer im Automobilbau. Die US Autoindustrie wurde in den 80er Jahren durch mangelhafte Qualität und „This is good enough“ fast ruiniert.

Eine von Dr. Demings  grundlegenden Methoden ist die PDCA Methode.

PDCA Methode
Die Nutzung gestaltet sich in vier Schritten. Diese werden beliebig oft wiederholt.

  1. Plan: Plane den Vorgang
  2. Do: Führe den Vorgang wie geplant aus
  3. Check: Prüfe das Ergebnis, z.B.  mit einem Soll-Ist Vergleich
  4. Act: Handle und gestalte den Vorgang mit den neuen Erkentnissen um

Sie werden feststellen, dass sich ihr Produkt oder ihre Dienstleistung stetig verbessern.

Qualität bei Software messen

Wer kennt das nicht? Es wurde die Entwicklung einer Software in Auftrag gegeben. Bei der Übergabe ist das Produkt nicht so, wie Sie Anforderung definierten. Da kann im Vorfeld einiges getan werden, damit die unerwünschten Ergebnisse ausbleiben.

Die Produktbeschreibung im Lastenheft

Der erste Schritt ist eine ausreichende Beschreibung des Produkts oder der Dienstleistung in einem Lastenheft. Dieses Lastenheft enthält auch eine Abgrenzung. In der steht, was nicht zum Umfang der Entwicklung gehört. Das Lastenheft wird bei der Angebotsanforderung an potentielle Auftragnehmer weitergereicht.

Die lieferbare Leistung im Pflichtenheft

Es ist die Basis für das Pflichtenheft. Dort beschreibt ein möglicher Auftraggnehmer den Rahmen seines Angebotes. Es steht dort geschrieben, was der potentielle Auftragnehmer umsetzen kann und was nicht. Es ist ein Teil der Basisinformationen zur Entscheidungsfindung. Denn mit dem Pflichtenheft erfolgt die Entscheidung, wer den Auftrag erhält. Zudem sind Lastenheft und Pflichtenheft ein wichtiger Bestandteil der abschliesenden Abnahme des Produkts oder der Dienstleistung.

Der Soll-Ist Vergleich zur Ermittlung der Qualität

Der ausgewählte Auftragnehmer entwickelt nun die Software oder Dienstleistung. Dabei ist zu beachten, dass es sogenannte verdeckte Arbeiten geben kann. Diese lassen sich nur innerhalb eines bestimmten Zeitraumes prüfen. Diese verdeckten Arbeiten sind im Vorfeld zu ermitteln und rechtzeitig gesondert zu kontrollieren.

Mit Hilfe des Lastenhefts, des Pflichtenhefts und der Dokumentation kann am Ende des Projekts die Abnahme durch den Auftragnehmer erfolgen. Da in der genannten Dokumentation alle erforderlichen Daten vorhanden sind, ist eine sachgerechte Prüfung und Abnahme möglich.

Ein wichtiger Punkt ist unbedingt zu beachten

Jede Änderung oder Erweiterung ist ein gesonderter Auftrag und hat im aktuellen Projekt nichts zu suchen. Änderungen und Erweiterungen werden erst nachfolgend oder nach Vereinbarung bearbeitet.

Der Einsatz von KPI

Mit Key Performance Idikatoren (KPI) können standardisierte Kennzahlen zur wiederholten und dabei vereinfachten Prüfung erstellt werden. Dazu werden aussagekräftige Parameter ermittelt, die über den Zustand des Produkts, der Dienstleistung oder deren Umfeld etwas aussagen.

Fazit:

Software Qualität hängt von vielen Parametern ab und ist zu prüfen. Wer nicht das notwendige Know-How hat, sollte einen Spezialisten hinzuziehen. Denn fehlerhafte Produkte können zu hohen Folgekosten führen.

William Edwards Deming: Grundlegende Fehler, die Verbesserung in Unternehmen behindern

William Edwards Deming, ein weltbekannter Pionier des Qualitätsmanagement entwickelte die prozessorientierte Sicht bei Management Abläufen in Unternehmen. Daraus entstanden später verschiedene Normen und Lehren zur Qualität. Deming analysierte im Rahmen seiner Qualitätsmanagement Lehre unter anderem, welche Fehler sich negativ auf Unternehmen auswirken.

  • Wenn ein Unternehmen hauptsächlich auf kurzfristigen Gewinn aus ist, dann kann keine strategische Planung vorgenommen werden. Mittelfristig werden solche Unternehmen durch Ihre planloses Vorgehen anderen unterliegen. Denn ohne Plan gibt es ständig wechselnde Ziele.
  • Das Gleiche gilt, wenn der Zweck einer Organisation oder Abteilung ständig verändert wird. Mit “kreativer Buchhaltung” können Unternehmen durch Entlassungen, Fusionen, Devisenbewertungen und anderen Tätigkeiten ständig positive Zahlen erzeugen, bis ein Unternehmen zusammenbricht.
  • Durch Leistungsbewertung von Mitarbeitern wurden noch nie langfristig Verbesserungen erzielt. Vielmehr gibt es Mitarbeiter, die das System zu Ihren Gunsten manipulieren können. Besser ist es, die Mitarbeiter individuell auszubilden und zu fördern. Kein erstelltes Profil vermag den Menschen, seine Arbeitsleistung und -qualität richtig darzustellen.
  • Hier ist das “Weisse Ritter Syndrom” gemeint. Ein oder mehrere Manager treten in einem Unternehmen als Retter auf. Sie veranlassen viele Veränderungen und zeigen auf kurzfristig erreichte, positive Ergebnisse. Sie verlassen das Unternehmen mit einer persönlichen Gewinnmitnahme, bevor langfristig negative Auswirkungen Ihrer Tätigkeit zu sehen sind.
  • Wichtiger als die bekannten oder sichtbaren Zahlen (manchmal aus KPI genannt) sind die unsichtbaren Zahlen die Unternehmen nicht zur Verfügung stehen. Zum Beispiel die Softskills der Mitarbeiter, der entstandene Nutzen oder Schaden für Kunden. Vorhandene Zahlen bilden immer nur die Vergangenheit ab.
  • Gesunde und motivierte Mitarbeiter sorgen für geringe Kosten. Daher sollte die Erhaltung von Gesundheit und Motivation ein ständiges strategisches Ziel eines Unternehmens sein.
  • Es ist eine Belastung für die zukünftige Entwicklung, wenn Unternehmen durch unzureichende Recherche, mangelhafte Qualität oder durch Absichten die Verträge zu brechen. Dann sind nachfolgend hohe Kosten zu bezahlen. Daher sollten Unternehmen Geschäftsbeziehungen bevorzugen, die auf gegenseitigen Vertrauen beruhen.

Fazit:

Die Demingschen Regeln für ein erfolgreiches Management sind von der Unternehmenskultur abhängig. Was lebt, unterliegt der Veränderung. Bei richtiger Veränderung kann mittel- oder langfristig mit einer positiven Entwicklung gerechnet werden.

Demings Erkenntnisse als Statistiker und Qualitätsexperte haben vor allem Japans Top Manager seit den 1960-er Jahren geprägt und zeigen sich weltweit in vielen Produkten der heutigen Zeit. Um Demings Ideen nicht zu vergessen, wurde in der Schweiz das Deming Institut gegründet.

Erweiterung der Hoshin Kanri Methode durch agiles Management

Hoshin Kanri ist ein aus Japan stammendes Planungs- und Management Konzept. Das Konzept hat sich in den 60er Jahren bei einigen Unternehmen entwickelt. Es wurde durch den PDCA Zyklus von William Edwards Deming und dem “Management mit Zielvorgaben” durch Peter Drucker beeinflusst. In den 80er Jahren wurde dieses Konzept von vielen Unternehmen in den USA wie zum Beispiel Hewlett Packard und Intel übernommen. Es basiert auf  zwei Anwendungsebenen, die Dr. Yoij Akano in seinem Buch beschrieben hat.

1. Strategische Planungsebene des Hoshin Kanri

In der strategischen Planungsebene werden Unternehmensziele mit einem 5 Jahres- oder manchmal einem 2 Jahres-Plan beibehalten. Die Pläne sind auf das Erzielen von signifikanten Änderungen ausgerichtet und werden mit entsprechenden Kennzahlen gemessen.

2. Agile Entwicklung

Agile Entwicklung wurde Anfang der 1990er Jahre begründet. Die Grundsätze agiler Entwicklung sind:

  • Menschen und deren Interaktionen zählen mehr als modulierte Prozesse
  • Das Reagieren auf Veränderung ist wichtiger als das Befolgen eines Plans
  • Zusammenarbeit mit dem Kunden ist wichtiger als eine Vertragsverhandlung
  • Funktionierende Prozesse sind wichtiger als umfassende Dokumentation

3. Alltägliche Ebene des Hoshin Kanri

Hier wird das alltägliche Geschäft getätigt. Alle wertschöpfenden Tätigkeiten werden gemessen und bewertet. Durch Kaizen kann der Prozessinhaber durch Änderungen Prozessverbesserungen erreichen.

Dazu werden Indikatoren in den Prozessen ermittelt. Ausgewählte Kreisläufe werden in weitere, kleinere Elemente zerlegt. Dann kommt eine “agile” Hoshin Kanri Methode zum tragen. Diese Elemente sind wie spiralförmige Kreisläufe zu betrachten und zu messen. So lassen sich Planungselemente modular wechseln, ohne das Gesamtkonzept in Frage stellen zu müssen. Die Kontrolle auf der strategischen Ebene muss dazu direkt, fast in Echtzeit tief in die alltägliche Ebene messen können, um dem Management das notwendige Feedback zur Entscheidung und daraus resultierenden agilen Handlung bieten zu können. Dies ist setzt eine spiralförmige Entwicklung in Gang die auch bei Veränderung Entwicklungszyklen überspringen kann. So wird Hoshin Kanri dynamisiert. Es können Ressourcen und Kosten gespart werden.

Voraussetzung dazu ist die Akzeptanz, dass der ständige Einsatz des Managements und aller Mitarbeiter für diese Methode notwendig ist. Durch die ständige Verbesserung und eine abgekoppelte Messung von unabhängigen Prüfern lassen sich markttragende Ergebnisse erzielen. Unabhängige Prüfer sind notwendig, damit der Entwickler nicht gleichzeitig der Prüfer ist!