Wir hatten darüber gesprochen, dass technische Schulden dadurch entstehen,
dass Änderungen gemacht werden, die unvollständig sind.
Dass man unter Zeitdruck verschiedene Sachen macht, die erstmal eine
schnelle Lösung versprechen, aber die eigentlich noch aufzuräumen sind.
Man hat, das schiebt das vor sich her und das ist häufig
in manchen Projekten wird es einfach nur als To-do bezeichnet oder so etwas.
Wir haben dazu auch eine Folie oder zwei Folien,
die nochmal die Definition ein bisschen oder ein bisschen genauer sagen zum Begriff.
Definition ist ein bisschen schwierig, weil es gibt verschiedene Autoren,
die das unterschiedlich formulieren. Ich habe mal versucht,
hier das ein bisschen besser zusammenzufassen und es gibt so ein kleines Koordinatensystem,
was sagt, Das ist eigentlich das Nicht-Sichtbare.
Wir haben hier sozusagen zwei Koordinaten. Einerseits das, was
wir sehen können. Sehen können wir neue Features. Und
natürlich sehen wir auch Fehler und Effekte. Aber das,
was wir nicht sehen, aber was trotzdem positiv wäre,
wenn wir irgendwie die Architektur ist besonders gut skalierbar oder sie erlaubt Sicherheitsmaßnahmen,
das ist etwas Positives.
Und das, was wir nicht sehen können,
aber was in der Architektur versteckt, Schlechtes ist,
das wäre dann das Technical Debt.
Diese beiden Folie nur, um dass sie das
ein bisschen besser noch verstehen können
Hatten, das war also das eine, Verschlechterung,
während dieser Änderungen, die wir machen. Und dann auch noch,
wir hatten ja eine ganze Reihe von Änderungen, die wir da durchführen.
Und dann kommt noch dazu, wir müssen die Änderungen machen.
Und wir wollen das System trotzdem langfristig nutzen.
Um das Ganze besser verständlich zu machen,
gibt es eine Darstellung, die mir sehr gut gefällt,
weil man daran gut das erklären kann, worum es geht.
Das Stage Model. Das Stage Model stammt von Rollick,
einem amerikanischen Kollegen, der verschiedene Sachen zu Evolutionen von Software schreibt.
Und dieses, dieses Modell sieht erstmal aus, so ein bisschen
wie ein Wasserfallmodell. Wasserfall im Sinne von, ja,
ich komme da von Anforderungen zur Entwicklung und Implementintegrationentest und wie auch immer.
Ja, so ähnlich kennen Sie das. Hier ist es
anders. Zum einen muss man sagen, das ist eigentlich
ein Zustandsmodell. Das heißt, diese verschiedenen Kästen hier,
die wir hier sehen, sind jeweils Zustände.
Ja, also das sind, schreiben wir mit dran.
Vom Typ her ist das
ein Automatengraf
So, Stagehart im Englischen. So,
was wir hier haben, ist in dem ersten,
in diesem ersten Zustand Entwicklung, wird Verschiedenes zusammengefasst.
Nämlich alles das, was wir eigentlich als Entwicklung kennen.
Anforderungsanalyse, Entwicklung in der Architektur eines Entwurfs,
die eigentliche Kodierung, die Integration, die in Betriebnahme,
all das findet da statt.
Test sowieso nach jeder dieser Phasen. Das ist alles hier
vorne in dem ersten drin. Und in dem Zustand,
im Automatenkraft ist das ja immer so,
so ein Kasten ist ein Zustand
Und die Linie ist ein Zustandsübergang und der Zustandsübergang passiert hier,
wenn wir die erste Version zum Kunden geben.
Das heißt, alles das, was wir als Wartung bezeichnen, ist hier Unterhalt.
Die Definition von Wartung, die kommt jetzt hier gleich,
wir können schon mal einen Blick drauf werfen,
Software wartet auf der nächsten Folie, ja,
Modification of a Product After Delivery.
Ja, die wir hatten ja Überwartungen schon gesprochen,
aber noch nicht die Folie gezeigt.
Jetzt, also alles, das ab hier unterhalb,
das ist das, was man als Wartung bezeichnet.
Wartung ist so ein ziemliches Kuddelmuddel,
deswegen ist dieses Bild so richtig,
dass man
das besser verstehen kann
So, was wir hier haben, sind zunächst,
dass wir einen Zustand haben, indem man evolutionäre Veränderungen machen können.
Evolution, da denken Sie vielleicht vom Niederen zum Hören,
vom, was weiß ich, vom Affen zum Menschen oder sowas.
Tatsächlich hat es damit zu tun. Aber vor allen Dingen ist es
der Begriff Nevolution in Abgrenzung, Evolution in Abgrenzung von Revolution.
Revolution wäre, weg mit dem König, was Neues her,
weg mit dem alten System, wir wollen ein neues System.
Das wäre Revolution
Und Evolution im Sinne von, wir entwickeln das System weiter.
Und insbesondere, wir entwickeln die Struktur weiter.
Also solche Änderungen, die die Struktur weiterentwickeln,
da können wir auch schön in diesem Zustand Evolution bleiben.
Also wir fakten neue Features hinzu und restrukturieren ein bisschen.
Und da machen wir wieder. Und da bleibt die Fähigkeit erhalten,
dass wir weiter solche Veränderungen machen über eine lange Frist.
Wenn es dazu kommt, das,
was wir jetzt gerade besprochen hatten auf den vergangenen zwei Folien
und mit dem Technical Debt, wenn es dazu kommt,
dass die Wartbarkeit schlechter wird,
die Struktur geht verloren,
dann landen wir hier im nächsten Zustand
In diesem nächsten Zustand, der ist dadurch gekennzeichnet,
dass die Wartbarkeit halt schlechter ist. Also sie sind hier
im Dustandsübergang, steht dran, vor Lust an Wachbarkeit.
Ich kann das messen. Die Metriken sagen mir,
das und das ist schlecht, das ist nicht überall gleichmäßig in einem Softwaresystem.
Manche sind besser, manche sind schlechter,
die Qualifikation des Entwicklers war schlechter, der hat weniger darauf Wert gelegt,
dass ein guter Entwurf ist und eine gute Struktur das Coolste ist.
Es gab häufiger Änderungen durch wechselnde Leute,
was auch immer, sind unterschiedliche Punkte. Das heißt,
der Status der Wachbarkeit ist nicht überall gleich und die Teile,
die so Geschlechtewartbarkeit haben,
da trauen sich
die Entwickler nicht mehr ran
Sie trauen sich nicht mehr ran, sie müssen natürlich noch Features einbauen.
Also all diese Änderungen, die wir hier kurz vorher hatten,
ja, was für Änderungen haben wir, wo stehen die?
Hier, gesetzliche Veränderungen, Optimierung von Geschäftspräsidenten, das muss natürlich
weiter passieren, sonst ist die Software nicht mehr nutzbar.
Wenn der Geschäftsprozess verändert worden ist und die Software bildet das nicht ab.
Ja, dann können wir die nicht mehr verwenden.
So, also all diese Änderungen muss es trotzdem geben.
Man macht die aber nur als Patches.
Patch. Den Begriff kennen sie, flicken.
Ja, Patchwork ist ein Flickwerk
Kann man als ganz schön betrachten. Es gibt halt diese netten Sofa-Überzüge,
die so aus kleinen Stückchen Stoff zusammengenäht sind. Es gibt die Patchwork-Familien,
die man, ja, das Leben ist so,
die Leute bleiben nicht ewig zusammen und dann ist man als Kind das Leid tragende,
der Leid tragende, aber es gibt auch so das alte Kupferkesselchen vom Opa,
was schon dreimal gelötet ist, ja, es geht noch zum Wasser kochen,
aber schön ist es nicht mehr, hygienisch auch nicht.
So ungefähr ist das mit der Software,
die ist dann funktioniert noch, ja,
wir können tatsächlich diese Änderungen,
die wir brauchen, alle noch machen,
aber schön ist sie nicht mehr und die Änderungen fallen
schon sehr schwer
Das ist wie mit diesem Kupferkesselchen, mit dem Wasserkesselchen,
wenn da schon drei Flicken drauf sind und an der Stelle
kommt es wieder undicht in noch einen vierten Flick mit drauf machen.
Das wird einem ganz schwer, das noch dicht zu bekommen.
Und da läuft es immer mal wieder, trotzdem mal wieder
mal raus und der Oma geht das Herdfeuer dann aus.
So, also das zu den Patches. Ja, wir betrachten,
betrachten, bezeichnen diesen oder Roll League bezeichnet diesen Zustand als Servicing.
So, es kann dazu kommen, dass wir dann
die Software irgendwann nicht mehr ändern können.
Dieses nicht mehr ändern können hat nichts mit unseren Fähigkeiten zu
tun, sondern einfach mit dem schlechten Zustand.
Man bekommt es nicht mehr stabil
Es ist nicht mehr möglich, die und die Änderungen zu machen,
ohne dass nicht dort und dort und dort Folgefehler auftreten,
die sie nicht mehr herrschen, wo sie die Ursache nicht finden,
muss ich am besten sagen, nein, es geht nichts mehr zu machen.
Das wäre ein Grund, dass wir sagen, nein,
wir machen ja aber nichts mehr, der andere Grund kann sein,
marketingmäßig, dass wir sagen, nein,
also wir nehmen ja damit gar kein Geld ein und überhaupt strategisch die neue Plattform.
Also zum Beispiel, also wenn Windows,
wenn Microsoft Windows XP abkündigt und Windows 7 abkündigt,
alle sollen bitte zu Windows 10 wechseln,
dann spielen sicherlich Gründe eine Rolle, dass man sagt,
es spielt ja, es ist ja schlechter,
schlechter möglich, der Aufwand ist viel höher,
aber es sind auch andere Gründe, unternehmenspolitische Gründe,
ich sage, ich möchte jetzt bitte die neue Plattform haben.
Oder ich möchte nochmal Lizenzgebühren kassieren oder wie auch immer.
Während das etwas ist, was einfach passiert,
weil ich kann es ja auch messen.
Es passiert durch die Änderungen. Ist das etwas, was
eine Entscheidung der Entwickler ist? Meistens nicht der einzelne Entwickler,
sondern die Entwicklerorganisation, die Firma, die die Software entwickelt.
Das ist also eine Entscheidung. Die ist in gewisser Weise
bewusst und auch vielleicht manchmal auch ein bisschen willkürlich.
Ja, es muss ja auch jemand bezahlt, das Ganze.
So, wenn wir entscheiden, wir können keine Service-Patches mehr machen.
Sie sehen, im nächsten Zustand gibt es keine Veränderungen mehr,
dann kann die Software natürlich
trotzdem benutzen
Benutzt werden. Ja, also wenn jemand von Ihnen,
Windows XP noch auf einem Rechner zu Hause hat,
dann weiß er ja, er kriegt keine Service-Patches mehr, Sicherheits-Updates.
Er sollte damit möglichst nicht mehr ins Internet gehen
und er kriegt für seinen neuen Scanner auch keine Software.
Aber vielleicht, ich zum Beispiel hatte mal einen Scanner,
der war super und ich wollte eigentlich nur den Scanner nicht wegschmeißen,
weil für Windows 7 gab es da keinen Treiber.
Das ist ein Motiv, das zu behalten. Also wenn Sie
die alte Software behalten, dann läuft die natürlich erstmal doch.
Aber sie läuft natürlich nur so lange, wie die Veränderungen,
die die Umwelt so mit sich bringt, nicht das verhindern.
Wenn Sie dann ein neues Gesetz haben mit einem anderen Sortevollen Minijob,
Und sie kriegen das in ihre Gehaltsabrechnung nicht mehr rein.
Oder sie müssen andere Sozialabgaben machen. Oder er hat
den Mehrwertsteuersatzänderungen, die kriegt man meistens durch Parameter abgefangen.
Aber irgendwas ganz Neues. Dann können wir die Software
nicht mehr verwenden und dann müssen wir sie abschalten.
Das wäre dann das Closed Down. Ob sie jetzt,
ich werde manchmal gefragt, was muss ich denn für die Prüfung wissen?
Sie müssen erklären können, und dazu haben wir ja gleich eine Frage,
sie müssen erklären können, was ist denn, was sind denn diese Zustände?
Und wenn sie in Faceout nicht einfällt, sie sagen,
das Rückertrieben und es gibt keine Updates,
dann wäre das für mich völlig okay.
Und Closed Down ist einfach, die Software ist ausgeschaltet, ja.
Wenn sich stattdessen Lockdown sagen wollen, dann sagen sie das.
Das ist okay. Wichtig wissen sie,
dass sie wissen, was sie hier dahinter verbirgt.
So, jetzt zu der Frage, die wir dazu haben,
wo sind die Fragen, finde ich auch noch irgendwo?
Nein, das war es nicht. Jetzt habe ich mich
ganz aufgehängt hier. Wir waren Hier sind die Fragen.
So, jetzt habe ich mich in meinen Folien fort. Also,
wir haben hier, sie sollen erläutern im Stage Model,
die Zustände des Software-Systems und in Bezug zu Technical Debt.
Das ist eine beispielhafte Frage. Das sind zum Beispiel sowas wie Altklausurfragen.
Ja, manchmal werde ich gefragt, gibt es denn eine Altklausur?
Ja, die gibt es, das sind diese Fragen.
So, wir gehen wieder zurück zu unserem Stage Model.
Ja, also sie sollen diese Zustände erklären.
Ja, ich schreibe deswegen mal noch was dran.
Insbesondere frage ich sie auch ganz gerne, was ist denn,
was ist denn der Unterschied zwischen den Evolutionen werden Veränderungen hier und den Service-Patches hier?
Das ist tatsächlich, hier klingelt jemand,
ich muss mal kurz das ausmachen und dann so die Ablösung
eines alten Systems durch ein neues ist, nicht durchaus verwerflich.
Manchmal ist es wirklich die einzige Lösung. Wir sollten
uns klar sein, das ist nicht die Lösung ist,
wie Manager, das sich manchmal vorstellen.
Ich habe häufig erlebt, dass die sagen, ach super,
jetzt eine richtige saubere Lösung und weg mit dem alten Zeug und etwas Neues.
Lassen Sie uns das kurz besprechen, worum es geht.
Ablösung eines alten Systems, eines Systems durch Neuentwicklung
Durch neue Entwicklung. Das hat durchaus Vorteile,
dass wir nämlich die früheren Probleme alle loswerden.
Und diese früheren Probleme sind zum Beispiel Fehler,
Und geringe Wartbarkeit, also schlechte Struktur.
Oder dass sich die Umgebung so weit verändert hat,
dass das Ganze sowieso nicht mehr passt.
Gerechte Passung zu veränderter Umgebung
Das sind Sachen, die wirklich nicht mehr vorhanden sind.
Und wenn wir etwas Neues haben, sollten wir denken,
es läuft eine Weile. Ja, also wir können dann
häufig... Eine neue beginnende Nutzungsperspektive aufmachen. Ich möchte hier
nicht davon sprechen, wie lange die Nutzungsdauer dauert.
Das hängt ja sehr davon ab, wie wir mit dem System umgehen.
Es kann durchaus sein, wir entwickeln das Neue und haben
während der Entwicklung schon so viele Änderungen drin,
dass es zur Fertigstellung schon ganz schlechte Wartbarkeit hat.
Also das kann alles passieren
So, je neu beginnende Nutzungsperspektive ist dann etwas,
was wir jetzt brauchen, was wir eigentlich erreichen wollen.
Doch das Ganze hat auch noch Nachteile.
Und die dürfen wir nicht außer auf Acht lassen.
Das eine ist, die Neuentwicklung hat enorm hohe Kosten.
Wir entwickeln ein ganzes System, ja,
und wir müssen eigentlich dafür sagen, das wird richtig teuer.
Und natürlich auch, wir müssen lange drauf warten,
lange Entwicklungsdauer
Das alte System wurde vielleicht innerhalb von einem oder zwei Jahren
entwickelt und dann wird es zehn Jahre genutzt und weiterentwickelt.
Und diese ganzen Weiterentwicklungen müssen ja jetzt in dem System drin sein.
Dann müssen wir durchaus sagen, es hat die typischen Risiken einer Neuentwicklung.
Es könnte sein, es wird teurer, Budgetüberschreitung.
Dann hätten wir, dass wir Terminüberschreitungen haben
Dann könnte es durchaus auch sein,
dass das System unreif ist, so einen Fehler hat.
Sie kennen ja diesen Spruch, Bananensoftware reift beim Kunden.
Also das kann mit dem neuen System passieren. Aber das Wichtigste ist eigentlich,
dass niemand so ganz genau weiß, was das System tut.
Wofür wird es innen verwendet? Weil niemand über die Zeit
aufgeschrieben hat und diese Informationen gibt es typischerweise nicht, was leistet das System?
Anforderungen, Dann, und Leistungen des Software Systems nicht genau bekannt.
Ja, und das machen wir rot, ja,
hier, das hat mich jetzt nicht ganz falsch,
was ist denn das jetzt hier?
Sorry, da ist was, was weg,
wo habe ich denn das jetzt hin?
Och ja, zu viele von ihm offen
Hier sind wir. Das wollte ich eigentlich nur rot machen
, ja. Nein, was ist denn das jetzt?
Ist das weg, muss ich sagen, alles nochmal.
Anforderungen an. Und Leistungen. Software
Systems nicht genau bekannt. Und das ist eigentlich der Punkt,
der richtig kritisch ist,
der verhindert, dass wir hier eine Ablösung vornehmen können