Konstantin Diener und Stefan Roock zu Rewrrite/Migration von Legacy-Produkten

Shownotes

Konstantin und Stefan diskutieren Herausforderungen und Lösungsstrategien beim Rewrite bzw. bei der Migration von Legacy-Produkten, wie z.B. Branchen-Software, von der es in Deutschland sehr viel gibt.

Transkript anzeigen

00:00:02: Stefan Herzlich willkommen zum IT Agile Podcast mit again Konstantin Diener.

00:00:09: Stefan Mein Name ist Stefan Roock und ich versuche durch möglichst schlaue Fragen durch den Podcast zu führen und bringe vielleicht die ein oder andere Erfahrung auch mit ein.

00:00:20: Stefan Erstmal guten Morgen Konstantin.

00:00:22: Konstantin Moin Moin.

00:00:23: Konstantin Genau.

00:00:23: Konstantin Genau.

00:00:25: Stefan Das Thema, das wir uns für heute vorgenommen haben, ist die Migration von

00:00:30: Stefan Legacy Produkten.

00:00:33: Stefan So, wir wollen erst mal fokussieren auf, man hat ein echtes Produkt, zum Beispiel eine Branchenlösung, die ist in die Jahre gekommen und jetzt will man das mal so richtig neu machen und diesmal viel besser.

00:00:48: Stefan Und gucken dann hinterher, ob man aus diesem Spezialfall vielleicht auch noch generelle Learnings ableiten kann für

00:00:56: Stefan Andere Software-Systeme, wenn beispielsweise eine Versicherung die Schadensfallbearbeitung neu machen möchte.

00:01:02: Stefan Aber lass uns erst mal bei diesem Branchenthema bleiben, Konstantin.

00:01:02: Konstantin Genau.

00:01:05: Konstantin Genau.

00:01:05: Konstantin Und was mich immer wieder überrascht ist, wie viele gute Branchensoftware wir tatsächlich in Deutschland haben.

00:01:14: Konstantin Also vom Mittelstand für den Mittelstand.

00:01:17: Konstantin Und oft ist es ja so gewesen, dass jemand sehr stark inhaltlich in dem Thema drinsteckte.

00:01:22: Konstantin Ich habe es letztens mir wieder ins Gedächtnis gerufen, als ich Anfang der 90er Jahre zur Softwareentwicklung gekommen bin.

00:01:31: Konstantin Da war das ein Vater von einem meiner Mitschüler, der eine Computer-AG in der Schule gemacht hatte.

00:01:36: Konstantin Und der hatte ein EDV-Entwicklungsbüro.

00:01:39: Stefan Was für ein schönes Ort.

00:01:39: Konstantin So was gibt es ja heute auch eher weniger noch.

00:01:42: Konstantin Und der war auch sehr stark mit Leuten verbandelt, die Branchensoftware entwickelt haben.

00:01:48: Konstantin Der Nachbar meiner Eltern hat auch Branchensoftware irgendwie in der Automobilindustrie für ganz wilde, spitze Anwendungsfälle gemacht.

00:01:56: Konstantin Und vor ein paar Wochen durfte ich bei uns in der Region bei einem Branchensoftwarehersteller zu Gast sein.

00:02:03: Konstantin Die machen Medikamentenzulassungsdokumentationssoftware.

00:02:07: Konstantin Und so gibt es, das ist ein wunderbares deutsches Wort.

00:02:11: Stefan Medikamentenzulassungsdokumentationssoftware.

00:02:14: Konstantin Genau.

00:02:17: Konstantin So gibt es oft Branchensoftware, die vielleicht für den Normalsterblichen unter uns gar nicht im ersten Moment so erkenntlich sind.

00:02:27: Konstantin Ich habe letztens wieder mit einem Branchensoftwarehersteller gesprochen fürs Baugewerbe und wir haben da unglaublich viel und meist ist in der Vergangenheit da eben was entstanden, noch so in den Zeiten, wo man mit Delphi irgendwas gebaut hat.

00:02:40: Konstantin Man hatte irgendwie ein gutes Branchenwissen und sagt, da muss doch jemand was tun, das kann man doch nicht mit Zettel und Papier machen, da muss es doch eine ordentliche Softwarelösung für geben.

00:02:49: Konstantin Und dann hat man halt mit Delphi oder Visual Basic oder sowas eine entsprechende Branchensoftware gebaut,

00:02:55: Konstantin die dann weiterentwickelt, vielleicht im Microsoft-Universum irgendwie dann noch den Migrationspfad zu.NET hinbekommen, aber stellt dann fest, dass diese Branchensoftware doch jetzt langsam in die Jahre gekommen ist und mit dem, was die Kunden so an Erwartungen an moderner Software-Systeme haben, nicht mehr unbedingt Schritt halten kann.

00:03:18: Stefan Ich habe in meiner Historie übrigens auch relativ viel mit so Branchensoftware zu tun gehabt.

00:03:23: Stefan Das fällt mir jetzt gerade wieder auf, wo du das erwähnt hast.

00:03:26: Stefan Ich habe als Student an der Branchensoftware für Tischler gearbeitet.

00:03:32: Stefan Das ist auch eine Rolle, weil die meisten Tischlereien sehr klein sind.

00:03:36: Konstantin Vertretungspläne.

00:03:36: Konstantin Stundenpläne und Vertretungspläne.

00:03:37: Stefan Dann an einem für Schulen, für Inventarverwaltung und für die

00:03:44: Stefan Was war denn das andere?

00:03:47: Stefan Ich habe schon wieder vergessen.

00:03:54: Stefan Unterrichtspläne sind das nicht.

00:03:55: Stefan Schulpläne.

00:03:56: Stefan Also welcher Lehrer?

00:04:00: Stefan Genau, Schulpläne und dann Vertretungspläne.

00:04:02: Stefan Das ist ja auch an Komplexität kaum zu überbieten, was man da bauen muss.

00:04:09: Stefan Ja.

00:04:11: Stefan Genau, dann habe ich an einer sehr lange, auch oder mehrere Jahre an einer Software in Kobol für so ein Warenwirtschaftssystem mit Fokus auf chemische Produktion gearbeitet, von dann KMUs.

00:04:26: Stefan Und war beteiligt an der Software, die war aber eben nicht über so eine Delphi-Geschichte entstanden, sondern die war in C entwickelt, Software fürs Baunebengewerbe.

00:04:36: Stefan Also für die, die nicht eigentlich die Gebäude bauen, aber dann Bautischler beispielsweise.

00:04:40: Konstantin Ja, und da gibt es, ich habe tatsächlich auf einer Messe auch mal mit jemandem an einem Stand bei uns gesprochen und der sagte, sie, die haben keine Branchensoftware, aber die haben sich ihr eigenes ERP-System geschrieben.

00:04:43: Stefan Ja, okay, also es scheint sehr viel, also wenn wir beide schon so viel Erfahrung mitbringen, muss es davon tatsächlich unfassbar viel geben.

00:04:49: Stefan Ja.

00:05:03: Konstantin Und ich meine, früher, als wir angefangen haben mit dieser Softwareentwicklung, Stefan, war das ja gang und gäbe, da hieß das vielleicht im Zweifel noch nicht mal ERP-System, sondern die haben sich halt eine Software gebaut, um ihren Laden durchzuorganisieren.

00:05:17: Konstantin Und der sagte, sie machen eine Besaumung für Autositze zum Beispiel.

00:05:22: Stefan Mhm.

00:05:22: Stefan Mhm.

00:05:23: Konstantin Also, und haben so eine spezielle Anforderung an ihr ERP-System, dass eine Standardsoftware ihnen dabei nicht viel hilft, also haben sie sich ihr eigenes geschrieben.

00:05:33: Konstantin Und die sind sozusagen schon in ihrem Markt super spitz und haben dann für ihren super spitzen Anwendungsfall sich auch noch eine Software geschrieben.

00:05:42: Konstantin Und das gibt auch so ein bisschen den Ausblick zu dem, was du schon für weiter hinten raus in der Folge gesagt hast, dass es natürlich nicht nur Branchensoftware gibt,

00:05:52: Konstantin die tatsächlich für Kunden angeboten wird, sondern dass es Branchen gibt, die so spitz in ihrem Offering sind, dass die sich selber Branchensoftware schreiben müssen, weil es am Markt einfach nichts Passendes gibt.

00:06:06: Stefan Oder die Anpassung viel teurer wäre, als es selber zu bauen.

00:06:09: Konstantin Genau, und man ja mit jeder Softwareversion dieser Standardsoftware im Zweifel die Anpassung zumindest nachziehen muss.

00:06:19: Stefan Okay.

00:06:21: Stefan So, und wie du gesagt hast, jetzt kommt solche Software auch in die Jahre, also manchmal vielleicht auch relativ schnell, weil es im Grunde angefangen hat, als ich bastel mal was in Visual Basic zusammen.

00:06:33: Stefan Manchmal dauert es ein bisschen länger, weil man das gleich in Anführungsstrichen in einer, das klingt so abwertend, aber in einer richtigen Programmiersprache geschrieben hat, wenn man dann COBOL als richtige Programmiersprache begreifen möchte.

00:06:46: Konstantin Mhm.

00:06:46: Stefan Aber auch dann kommt natürlich irgendwann der Zeitpunkt, wo irgendwas nicht mehr so geil passt.

00:06:52: Stefan In dem COBOL-Beispiel war es übrigens und in dem C-Beispiel auch, war ein Treiber die Benutzungsoberfläche.

00:07:02: Stefan Also weil beides character-based war und das in der Software-Struktur und Architektur nicht mehr irgendwie machbar erschien, da jetzt eine grafische Benutzungsoberfläche draufzusetzen.

00:07:15: Konstantin Also das ist ja oft einer der Treiber.

00:07:17: Konstantin Und das ist das ja auch, was ich gesagt habe, dass die Kundenwünsche sich weiterentwickeln und die Kunden zum Beispiel gewöhnt sind, dass man heutzutage Web-Anwendungen hat, dass man zum Beispiel die Software sogar mieten kann.

00:07:29: Konstantin Und wenn wir dann von einer, sagen wir mal, desktop-basierten Windows-Anwendung kommen, so wie zum Beispiel es mit Delphi über lange Jahre super war,

00:07:41: Konstantin Oder vielleicht sogar Client-Server, da war Delphi ja auch relativ stark oder auch Visual Basic oder ähnliche Technologien.

00:07:47: Konstantin Und jetzt kommen die Kunden immer häufiger und erwarten diese modernen Web-Oberflächen, die quasi Rich-Clients im Browser sind und

00:08:01: Konstantin Je öfter diese Nachfragen kommen und je öfter dieser Wunsch kommt, desto stärker wird natürlich auch der Druck bei diesem Standardsoftwarehersteller, bei diesem Branchensoftwarehersteller, da jetzt mal was zu tun.

00:08:10: Konstantin Und es ist auch meist völlig klar, dass das nicht ein, wir spielen eine neue API-Version ein oder sowas ist, sondern da muss man schon großflächiger ran an diese Software, weil das meist ein kompletter Technologiewechsel ist.

00:08:29: Stefan Genau, also dann kommt man irgendwann zu der Schlussfolgerung, so jetzt machen wir es mal richtig neu.

00:08:37: Stefan Hoffentlich hat man auch ein bisschen Geld auf dem Konto in der Kriegskasse, um das zu finanzieren.

00:08:46: Stefan Und jetzt kommt man natürlich ganz schnell auf die Idee zu sagen, okay, dann...

00:08:49: Stefan Lass uns das doch mal als so richtig geiles Grüne Wiese Projekt starten.

00:08:54: Stefan Also wir werfen alles weg und schreiben das komplett neu.

00:08:57: Stefan Und wenn wir fertig sind, dann gehen wir damit an den Markt.

00:09:02: Konstantin Genau.

00:09:04: Stefan Hört sich vielleicht geiler an, als es ist, oder?

00:09:06: Stefan Ja.

00:09:07: Konstantin Ja, das, also es fängt schon damit an, was heißt denn fertig?

00:09:12: Konstantin Denn ich habe selten solche Initiativen zum Erfolg führen sehen.

00:09:21: Konstantin Meist ist das, also gibt es kein wirkliches Ergebnis, sondern es dauert sehr lange und man

00:09:30: Konstantin Also es heißt oft Rewrite dann das, was die Firmen machen und es dauert sehr lange und es kommt aber nicht zu dem Punkt, den du beschrieben hast, so jetzt gehen wir da mit an den Markt, weil

00:09:33: Stefan Mhm.

00:09:44: Konstantin sich in der Technologie wieder was ändert, weil einem fachlich was auffällt, was man jetzt noch cooler und was man noch besser und so weiter und so fort.

00:09:52: Konstantin Und das hat natürlich auch mit dem Druck der Kunden zu tun.

00:09:55: Konstantin Das sehen wir jetzt gerade wieder bei einem Kunden, den wir aktuell betreuen.

00:09:59: Konstantin Die haben ein Altsystem,

00:10:01: Konstantin Die sind schon relativ weit mit ihrem neuen System, sind damit schon am Markt.

00:10:07: Konstantin Aber viele der Bestandskunden sagen halt, diese eine Funktion, die es im Altsystem gibt, die fehlt mir da drüben noch.

00:10:15: Stefan Mhm.

00:10:15: Stefan Mhm.

00:10:16: Konstantin Wenn ihr die eingebaut habt, dann würde ich langsam anfangen zu migrieren wahrscheinlich.

00:10:21: Konstantin Ob das dann wirklich so ist, sei mal dahingestellt.

00:10:24: Konstantin Aber das sind meist sehr langwierige, sehr kräfteraubende Funktionen,

00:10:31: Konstantin weil die auch kein konkretes Ziel haben.

00:10:38: Konstantin Du hast es jetzt sehr schön beschrieben, aber das mag globalgalaktisch so gut klingen, aber im Detail stellt sich dann immer die Frage, was fangen wir denn jetzt zum Beispiel mit dieser Funktion hier an?

00:10:51: Konstantin Oder was machen wir denn hiermit?

00:10:53: Konstantin Oder wie migrieren wir denn das?

00:10:54: Konstantin Oder in welcher Reihenfolge?

00:10:56: Konstantin Und müssen wir wirklich alles in diesem Rewrite neu geschrieben haben,

00:11:02: Konstantin bevor wir wirklich an den Markt gehen können.

00:11:04: Konstantin Und was wir auch nicht vergessen dürfen ist, dass diese Branchensoftware-Systeme, über die wir hier reden, vor 20, 30 Jahren gestartet haben.

00:11:16: Konstantin Da waren die Leute, die das entwickelt haben, so im besten Mannesalter.

00:11:20: Konstantin Es waren meist Männer oder im besten Damenalter.

00:11:24: Konstantin Das heißt,

00:11:25: Konstantin von denen sind jetzt der eine oder die andere auch schon in Ruhestand gegangen.

00:11:30: Konstantin Das heißt, wenn man so ein Rewrite macht, muss man auch erstmal wieder verstehen, was bestimmte Funktionen in dieser Standardsoftware, in dieser Branchensoftware überhaupt tun.

00:11:39: Konstantin Also so ein, hey, wir bauen das jetzt nochmal neu da drüben mit der anderen Technologie und vielleicht einem anderen Team, das ist gar nicht so einfach, weil man ja erstmal verstehen muss, was da drin ist und die Know-how-Träger gar nicht mehr im Unternehmen sind möglicherweise.

00:11:55: Konstantin Und auf der anderen Seite, wenn man das mit einem neuen Team macht, auf der anderen Seite, wenn man sagt, okay, die Leute sind noch hier,

00:12:03: Konstantin wir machen jetzt eine völlig neue Technologie mit dem bestehenden Team, wissen wir beide auch, dass das auch zu lustigen Effekten führen kann, weil natürlich ein Team, was jetzt seit 20, 30 Jahren zum Beispiel eine Visual Basic-Anwendung entwickelt hat und soll jetzt auf einmal mit Node.js im Backend und Express und dann irgendwie im Frontend mit

00:12:28: Konstantin mit Angular oder React oder sowas eine Anwendung bauen.

00:12:32: Konstantin Das ist ja eine völlig neue Welt.

00:12:33: Konstantin Und da wissen wir beide, da kommt dann so eine menschlich-psychologische Komponente dazu,

00:12:40: Konstantin Da fragt sich dann der eine oder andere aus dem bestehenden Team auch, das ist doch alles noch gut, was wir damals gebaut haben.

00:12:45: Konstantin Und das war viel einfacher, was zum Teil mit Delphi auch gar nicht so falsch ist, als jetzt in diesen verteilten Architekturen und Session Handling und Blablabla und State Handling im Browser und sowas.

00:12:49: Stefan Okay.

00:12:49: Stefan Und was waren so

00:12:58: Konstantin Warum müssen wir das denn eigentlich alles machen?

00:13:00: Konstantin Also man hat so eine permanente Diskussion von wegen, wohin soll das eigentlich führen?

00:13:04: Konstantin Wozu ist das eigentlich gut?

00:13:14: Stefan Strategien, die die Erfolgswahrscheinlichkeit erhöhen, also die besser funktionieren, als ich jetzt einfach hinzusetzen, wir bauen alles komplett neu auf der grünen Wiese.

00:13:25: Konstantin Also was ich schon regelmäßig gesehen habe, ist dann als erstes mal an die bestehende Anwendung dranzugehen und mit einer Produktmanagementbrille, muss ich jetzt Produktmanagement-Nerd natürlich wieder sagen,

00:13:38: Konstantin Und sich mal anzugucken, ob die Probleme, die man für die Kunden löst, immer noch dieselben sind.

00:13:43: Konstantin Oder ob es zusätzliche Probleme gibt oder ob manche Probleme vielleicht einfach weggefallen sind.

00:13:49: Konstantin Ich kann mir vorstellen, dass es in manchen dieser Branchen Systeme auch noch Funktionen gibt, die aus einer Vor-Euro-Ära

00:14:00: Konstantin Und dafür noch haufenweise toter Code in diesen Anwendungen rumliegt, wenn man international in Europa Geschäft gemacht hat und in 25.000 Währungen umrechnen musste und das heute einfach nicht mehr muss.

00:14:13: Konstantin Oder andere Funktionen derart wegzunehmen.

00:14:17: Konstantin wo es die Kundenprobleme dazu nicht mehr gibt.

00:14:19: Konstantin So, und jetzt kann man natürlich hingehen und sich den Code angucken.

00:14:24: Konstantin Also, was ich auf jeden Fall immer machen würde, ist, wie bei jedem Umzug zu sagen, schmeiße ich das weg oder packe ich das in eine Umzugskiste?

00:14:35: Konstantin Oder packe ich das in die Kiste, wo ich jetzt noch nicht ganz sicher bin und mir auf der anderen Seite nochmal angucke, ob ich das wirklich noch brauche?

00:14:35: Stefan Vielen Dank.

00:14:42: Konstantin Also, das würde ich auf jeden Fall machen.

00:14:47: Konstantin Und dann mit Produktmanagement-Techniken drangehen, das ist so die nächste Stufe und eigentlich nicht von dem, was ich schon habe, an Code zu kommen, sondern zu gucken, welche Probleme habe ich seinerzeit für die Kunden gelöst oder mit meiner bisherigen Version, welche Probleme möchte ich zukünftig für die Kunden lösen.

00:15:05: Konstantin Und da kann es zum Beispiel sein, dass man auch erstmal ein Produkt lanciert, was eine andere Zielgruppe adressiert, also was nur einen Ausschnitt beispielsweise des bisherigen tut, sodass man einen kleinen Kern hat, mit dem man schon an den Markt gehen kann, also aus dem großen Problemraum, den man vorher für die Kunden gelöst hat.

00:15:23: Konstantin jetzt in der Software-as-a-Service-Geschichte einen Ausschnitt dafür zu lösen.

00:15:28: Konstantin Beispielsweise, du hast jetzt gerade angesprochen, Tischlereien.

00:15:32: Konstantin Vielleicht hatte ich eine Lösung, die für alle möglichen Größen von Tischlereien funktioniert hat.

00:15:38: Konstantin Und ab einer bestimmten Größe haben die Sonderprobleme.

00:15:41: Konstantin Dann müssen die auch irgendwelche, weil die Auftragsfertigung möglicherweise machen, ich kenne mich damit nicht so aus, aber dann wie üblich heutzutage vielleicht auch irgendwelche

00:15:50: Konstantin Konstruktionszeichnung, CAD und dann müssen die das importieren können und blablabla.

00:15:55: Konstantin Aber das zum Beispiel eine kleine Tischlerei überhaupt nicht interessiert.

00:15:58: Konstantin Die machen Abrechnungen, die machen Materialeinkauf und so weiter und so fort.

00:16:03: Konstantin Das müssen die abdecken und die haben jetzt ein Material, was auch nicht unendlich lange haltbar ist und durch Rumstehen nicht unbedingt besser wird oder sowas.

00:16:12: Konstantin Also dass man einen kleinen Kern rausschält und sagt, wir machen jetzt erstmal

00:16:17: Konstantin den Teil der Lösung mit der geringsten Komplexität, wo wir den größten Anteil unserer Kunden bedienen können.

00:16:24: Konstantin Was haben die denn heute für Probleme?

00:16:26: Konstantin Und das heißt eben auch, wieder mit seinen Kunden in Interaktion zu treten, was vielleicht die letzten fünf bis zehn Jahre auch ein bisschen eingeschlafen ist, weil die ja artig immer ihre Rechnungen bezahlt haben und man davon ausgegangen ist, solange sie sich nicht beschweren, wird die Lösung schon passen.

00:16:27: Stefan Mhm.

00:16:43: Konstantin Also jetzt wieder stärker in den Austausch zu gehen und zu sagen, was sind denn die dringendsten Probleme, die die heute haben?

00:16:49: Konstantin Vielleicht Probleme, die wir bis heute nie gelöst hatten, wie diese ganze Lieferketten-Thematik.

00:16:55: Konstantin Wo kommen die Materialien her?

00:16:58: Konstantin Ist da ein grüner Stempel drauf, was Lieferketten angeht und sowas, was wir bisher nie gelöst hatten.

00:17:03: Konstantin Aber das jetzt für die zu lösen, was ein absoluter Kopfschmerzpunkt für kleine Tischlereien beispielsweise sein kann.

00:17:08: Stefan Genau, ich finde da immer die Frage total spannend, wenn man einfach sagt, von den Kunden, die wir haben, welcher ist der, der die geringsten Ansprüche hat?

00:17:21: Stefan Und wenn wir nur für den was bauen würden, wie groß wäre das dann?

00:17:25: Stefan Also das heißt ja immer noch nicht, dass man das unbedingt machen muss, weil vielleicht gibt es von denen so wenige, dass sich das nicht rechnet.

00:17:25: Konstantin Ja.

00:17:25: Konstantin Mhm.

00:17:31: Stefan Aber es würde mindestens mal so gedanklich die Tür öffnen in Richtung,

00:17:35: Stefan MVP, also wie klein können wir denn hier werden, bevor wir das erste Mal an den Markt gehen.

00:17:40: Stefan Weil das Größte, also was ich immer gesehen habe, ist, dass diese kompletten Rewrites so für drei bis vier Jahre angesetzt waren und dann locker das Doppelte manchmal mehr gedauert haben.

00:17:55: Stefan Also deswegen wäre das

00:17:56: Konstantin wenn sie überhaupt zu einem Ende kamen.

00:17:58: Stefan Ja, ja, genau.

00:17:58: Stefan Und häufig ist es dann mehr als das Doppelte und dann ist irgendwann das Geld oder die Energie alle und dann bricht man das Ganze ab.

00:18:05: Stefan Und deswegen glaube ich, ist tatsächlich, wie du ja auch sagst, ein extrem wichtiger Punkt.

00:18:09: Stefan Wie kriegt man das Neue, was man da macht, so zugeschnitten, dass man sehr schnell an den Markt geht, um Dinge zu validieren, Risiken zu minimieren und idealerweise auch schon Geld zu verdienen damit, ne?

00:18:21: Konstantin Genau.

00:18:21: Konstantin Und im Optimalfall schafft man sich vielleicht sogar mit dem Rewrite erstmal eine neue Kundengruppe, die man bisher gar nicht so stark beackert hat.

00:18:28: Stefan Ja.

00:18:32: Konstantin Und es ist gar nicht das primäre Ziel, von Tag 1 an seinen bisherigen Kundenstamm zu kannibalisieren, sondern wir fangen erstmal eine andere Ecke an und machen das dann größer.

00:18:46: Konstantin Und was, glaube ich, auch ganz wichtig ist, ist dieses...

00:18:54: Konstantin einfach nach Zahlen zu arbeiten, weil sonst, das merke ich bei Kunden auch immer wieder, die so aus diesem Branchensoftware-Bereich kommen, sonst fällt irgendjemandem am Tisch immer bei jedem Feature oder bei jeder Diskussion immer mindestens ein Kunde ein, der dann aber unglücklich wäre.

00:19:16: Stefan Mhm.

00:19:16: Stefan Mhm.

00:19:17: Konstantin Und so wird man keine sinnvolle Priorisierung machen können, sondern die wird man nur machen können, dass man bei jeder Diskussion weiß, okay, was hängt denn da betriebswirtschaftlich dran?

00:19:28: Konstantin Ja, aber wenn wir das machen, dann wird der Stefan Rohk von der Rohk KG, der wird total traurig darüber sein.

00:19:37: Konstantin Ja, der Stefan Rohk

00:19:39: Konstantin Der bezahlt aber auch im Jahr dafür 25 Euro und macht ständig irgendwelche Supportfälle auf.

00:19:46: Konstantin Wollen wir das wirklich jetzt priorisieren, weil dann der Stefan Rohk unzufrieden ist?

00:19:52: Konstantin Also immer zu gucken, wo du gesagt hast, welche sind denn die genügsamsten Kunden und wo hängt denn auch das meiste Geld dran und nicht hier noch für den die Sonderlocke und hier für den die Sonderlocke und hier für den die Sonderlocke.

00:20:05: Konstantin Das kann man ja immer noch machen, aber später.

00:20:10: Konstantin Sonst wird man nie irgendwie zu einer Roadmap kommen, die einen zügig zu Umsatz mit dem Rewrite-Produkt führt.

00:20:23: Stefan Was ich da raushöre, ist auch ein Wandel der Sichtweise oder vielleicht sogar der Identität, weil man dann ja sagt, unser Hauptasset sind

00:20:38: Stefan unsere Kundenbeziehung und unsere Kenntnis ihrer Probleme.

00:20:44: Stefan Und das Hauptasset ist nicht das existierende Stück Software, das irgendwo bei uns in der Organisation existiert, ne?

00:20:54: Konstantin Ja, so würde ich das auch sehen.

00:20:55: Konstantin Wobei man dazu sagen muss, dass das eine Langzeitbetrachtung ist.

00:21:05: Konstantin Denn oft sind in den letzten, so wie ich vorhin meinte, fünf bis zehn Jahren, ist diese intensive Kundenbeziehung bei dem einen oder anderen Branchensoftwarehersteller eingeschlafen.

00:21:15: Stefan Mhm.

00:21:17: Konstantin Man lebt so nebeneinander her, der Kunde bezahlt Geld und die Lösung ist immer noch 80% cool oder so.

00:21:23: Konstantin Sie ist halt ein bisschen in die Jahre gekommen und wirkt ein bisschen aus der Zeit gefallen, wenn man sie mit anderen Software-Systemen vergleicht, die man sonst so auf dem Rechner hat oder die man sonst so benutzt.

00:21:32: Konstantin Aber eigentlich ist es noch okay.

00:21:36: Konstantin Und viel miteinander geredet hat man auch nicht mehr.

00:21:39: Konstantin Aber das ist jetzt wieder was, wir haben doch eigentlich dieses ganze Branchen-Know-how.

00:21:44: Konstantin Wir wissen, wie die Branche tickt, aber wir müssen wieder mehr in unsere Kundenbeziehung investieren und verstehen, was sind tatsächlich die Probleme unserer Kunden, wo setzen wir an, was sind deren dringendste Punkte.

00:21:54: Konstantin Und das ist unser Asset, dass wir dieses Netzwerk haben, dass wir diese bestehende Kundenbasis haben und dass wir eigentlich aus der Historie ganz gut verstehen, was deren Sorgen und Nöte sind.

00:22:03: Stefan Okay.

00:22:06: Stefan Das heißt, eigentlich haben wir jetzt schon so ein bisschen so zwei Strategien.

00:22:09: Stefan Also das eine war ja einfach zu gucken, bei den existierenden Kunden, auf wen fokussieren wir zuerst, um eine kurze, zum guten Marketing zu kriegen.

00:22:16: Konstantin Genau.

00:22:18: Stefan Das zweite, was du angesprochen hast, war, wir könnten ja auch gucken, was ist mit Kunden, die wir bisher noch gar nicht haben oder mit Problemen, die unsere Kunden haben, die wir bisher gar nicht adressieren.

00:22:29: Stefan Und was ist mit so einer eher technischen Sichtweise?

00:22:32: Stefan Also dass man sagt, wir

00:22:35: Stefan bauen das neue Produkt quasi schrittweise und verbinden die bereits entwickelten neuen Komponenten mit dem Altprodukt, einfach um schneller an den Markt gehen zu können.

00:22:49: Konstantin Auf jeden Fall eine zielführende Geschichte, aber auch da wieder klingt in der Theorie total einleuchtend, sollte man so machen und in der Praxis nicht immer so einfach.

00:23:01: Konstantin Wir reden hier zum Teil über Technologie-Stacks, die in sich relativ abgeschlossen sind.

00:23:06: Konstantin Nehmen wir mal wieder Delphi, ja, das schreibt dann irgendeine Datenbank, aber da eine Interaktion hinzukriegen, ja, mit den modernsten Delphi-Versionen, die ich noch kenne, gab es dann irgendwelche, konnte man irgendwelche Soap-Services bauen.

00:23:18: Konstantin Aber dann ist natürlich schnell die Überlegung, wie viel wollen wir denn noch Arbeit reinstecken in unser bestehendes System, um das mit einem neuen schrittweisen Rauslösen zu verknüpfen.

00:23:29: Konstantin Grundsätzlich ist das immer eine gute Idee, nicht dieses Big Bang zu machen, ich migriere jetzt alles, selbst bei einer Branchensoftware-Lösung, die relativ abgehangen ist, bleibt ja die Welt nicht stehen, dann denkt sich der Gesetzgeber irgendwelche neuen Mehrwertsteuersätze aus, dann gibt es irgendwelche neuen gesetzlichen Regelungen, die du da einhalten musst.

00:23:50: Konstantin Dann denken sich irgendwo Menschen irgendwo auf dieser Welt neue Zölle aus oder irgendwie sowas, die du in deiner Anwendung reflektieren musst.

00:23:58: Konstantin Also die Welt bleibt ja nicht stehen und das ist dann auch so ein Moving Target.

00:24:01: Konstantin Von daher ist das grundsätzlich natürlich eine gute Idee, das scheibchenweise da rauszuschneiden.

00:24:07: Konstantin aus dieser Anwendung, aber auf der anderen Seite muss man natürlich immer gucken, wie funktioniert denn die Integration, weil wir ja hier im Zweifel auch über ganz andere Anwendungsarchitekturen reden, wo wir jetzt nicht eine sauber getrennte Business-Logik-Schicht haben, in der zum Beispiel Validierungen stattfinden, Berechnungen stattfinden,

00:24:28: Konstantin Sondern wenn wir wieder Delphi nehmen, dann ist das im Zweifel alles in dem Code, der hinter der UI liegt.

00:24:35: Konstantin Ich drücke auf einen Button und da gibt es eine Methode, die aufgerufen wird und dann findet die Berechnung statt und dann wird das in ein Feld eingetragen und so weiter und so fort.

00:24:42: Konstantin So, das heißt, die Integration, die einzige, die dann einfach ist, ist oft in die Datenbank und da bin ich natürlich völlig ohne Schutzmechanismen unterwegs, weil alles das, was die bisherige Anwendung an Validierung, Berechnung und so weiter gemacht hat,

00:24:59: Konstantin oberhalb der Datenbank liegt und ich da aber nicht so einfach rankomme.

00:25:02: Konstantin Oder wenn es noch wilder wird und damit bin ich aber dann mit meinem neuen Technologie-Stack möglicherweise ein bisschen gehandicapt oder ich schränke die Migration ein.

00:25:15: Konstantin Es gibt ja auch noch die Software-Systeme, die dann einiges in der Datenbank regeln mit Start-Procedures und sowas.

00:25:22: Konstantin Und dann muss ich halt gucken, wie ich diese Business-Logik irgendwie aus diesen Start-Procedures rausgefräst kriege.

00:25:29: Konstantin Und dann ist auch wieder die Frage, ob die Datenbank der richtige Integrationspunkt ist.

00:25:34: Konstantin Aber grundsätzlich stimme ich dir zu, man sollte irgendwie gucken, dass man möglichst

00:25:39: Konstantin scheibchenweise da was rausschneidet.

00:25:41: Konstantin Ich hatte jetzt gerade auf der We Are Developers auch wieder die Diskussion mit jemandem, die sagte, ja, sie wollten ihren Monolithen zerlegen und ich sagte, das Einzige, was ich jemals funktionieren gesehen habe oder die einzige Strategie ist, das Ding scheibchenweise rauszunehmen.

00:25:54: Konstantin Ein kompletter Rewrite und Big Bang, das habe ich nie funktionieren gesehen.

00:25:59: Konstantin Aber es ist eben technisch nicht immer einfach, weil wir da über mehrere Generationen reden, die an Softwareentwicklungspraxis dazwischen liegen.

00:26:08: Stefan Ja, also und die bezüglich der Integration auf der Datenbank-Ebene habe ich durchaus auch erfolgreich gesehen, dass man

00:26:19: Stefan dass das neue System eine eigene Datenbank hat und dazwischen Daten über Skripte transportiert werden.

00:26:26: Stefan Das führt natürlich dazu, dass sie eventually inconsistent sind.

00:26:30: Stefan Nee, schon, eventually consistent heißt das.

00:26:33: Stefan Also die Daten nicht immer an jeder Stelle synchron sind, aber je nachdem, wie man das schneidet,

00:26:41: Stefan kann das halt eine sinnvolle Strategie sein und dann würden diese Probleme nicht auftreten, weil dann jeder sein eigener Herr bleibt.

00:26:46: Konstantin Genau.

00:26:49: Konstantin Da war auf der Konferenz auch ein Vortrag zu und da ging es genau um dieses

00:26:54: Konstantin quasi eine Replika zu machen oder in moderneren Software-Systemen eben in dem Altsystem ein Event auszulösen, was vom neuen System konsumiert wird und dann dazu führt, dass das neue System seinen Datenstand darauf bringt, den, den das alte hat.

00:27:11: Konstantin Und sind wir mal ehrlich, wenn wir hier über Branchensoftware sprechen,

00:27:15: Konstantin reden, die wenigste davon muss jetzt wirklich in jeder Sekunde absolut synchron sein.

00:27:21: Konstantin Sondern da gibt es zum Beispiel einen Rechnungslauf und bis dahin müssen die Daten synchronisiert sein oder sowas.

00:27:25: Stefan Ja.

00:27:26: Konstantin Da ist das auch nicht so wild, dass das eventually consistent ist.

00:27:33: Stefan Genau, und wenn man sowas macht, also egal, wenn man das über die Datenbank oder Schnittstellen macht, hast du ja auf jeden Fall eine Herausforderung mit der Benutzungsoberfläche.

00:27:45: Stefan Also wenn du da eine Modernisierung vornehmen willst und bisher irgendwas Charakterbasiertes hattest und jetzt sagst du, das neue System soll im Browser laufen,

00:27:54: Stefan Dann kriegst du halt mitunter eigenartige Brüche in der Benutzung.

00:27:59: Konstantin Ja, das ist auch immer eine Diskussion, wenn wir mit Kunden über solche Migrationen und über solche Neuentwicklungen reden.

00:28:07: Konstantin Das heißt, nein, wir brauchen das ganze UI neu, sonst ist die Umgewöhnung für die Mitarbeiter unserer Kunden viel zu anstrengend.

00:28:19: Konstantin Also sich in zwei Systemen einzuloggen und dann diesen Prozess in dem einen System und jeden Prozess in dem anderen System.

00:28:27: Konstantin Das kann ich schon nachvollziehen, da wird aber viel...

00:28:30: Konstantin Das führt oft dazu, dass man dann doch alles migrieren will, bevor man es den Kunden zeigt.

00:28:37: Konstantin Tatsächlich kann man sich natürlich überlegen, das ist dann für größere Branchensoftware-Systeme, wenn man mehrere Rollen im Unternehmen hat, ob man sozusagen per Rolle schneidet und eine Rolle kriegt schon ein völlig neues UI und die andere bleibt erstmal im alten.

00:28:51: Konstantin Also gibt es auch Zwischenlösungen oder man ist wieder bei dem,

00:28:54: Konstantin hey, wir versuchen erstmal neue Kunden mit so einem neuen Service zu gewinnen, um das, was wir hier veranstalten, zu finanzieren.

00:29:04: Konstantin Und wenn das läuft, nehmen wir sowieso immer mehr darüber und dann können wir irgendwann unseren Bestandskunden anbieten, hey, jetzt sind 80% da drüben, es gibt nur noch so ein paar räudige Admin-Konfigurationsthemen, dafür müsst ihr in die alte Maske rein, jetzt wäre es doch mal Zeit zu migrieren.

00:29:22: Konstantin Und was ich auch festgestellt habe, wenn man es den Leuten überlässt, die Menschen sind halt doch Gewohnheitstiere.

00:29:30: Konstantin Ich benutze auch, ich benutze selten Outlook, aber wenn ich es benutze, benutze ich immer noch die alte Oberfläche von Outlook, die alte.

00:29:39: Konstantin Warum?

00:29:40: Konstantin Weil ich an die gewöhnt bin und, was noch viel wichtiger ist, weil ich es kann.

00:29:45: Konstantin weil Outlook mir die Möglichkeit lässt.

00:29:47: Konstantin Und was ich bei Kunden durchaus gesehen habe, dass die dann irgendwann die Reißleine ziehen, dass die dann ihren Kunden sagen, wir supporten dieses und jenes nur noch bis Ende 2027, dann ist Schluss oder bis Ende 2026 oder so.

00:30:03: Konstantin Und dann sind die Kunden gezwungen.

00:30:05: Konstantin Und natürlich werden sie in diesem Prozess welche verlieren.

00:30:08: Konstantin Da haben natürlich manche Angst davor und greifen dann nicht so hart durch.

00:30:14: Konstantin Aber natürlich werden sie dann den einen oder anderen in diesem Prozess möglicherweise verlieren.

00:30:18: Konstantin Aber wenn du nicht klar sagst, bis dann und dann muss das erledigt sein, musst du da drüben sein, dann beschäftigen sich die Leute nicht damit.

00:30:24: Konstantin Ah ja, ich habe ja noch Zeit.

00:30:27: Konstantin Und benutzen wie ich dann immer noch Jahre später die alte Maske von Outlook.

00:30:35: Stefan Genau, zu dem UI-Thema waren wir noch eingefallen.

00:30:38: Stefan Also dann gibt es die Befürchtung, die Benutzer sollen nicht mit zwei unterschiedlichen Benutzungsoberflächentypen arbeiten.

00:30:47: Stefan Aber wenn wir ehrlich sind, tun die meisten es ja sowieso schon.

00:30:52: Stefan Also die haben vielleicht nur irgendwas Mastenbasiertes laufen.

00:30:52: Konstantin Naja, plus...

00:30:55: Stefan Und dann haben die für einen anderen Anwendungsfall so eine Rich Client Desktop Anwendung und für irgendwas anderes selbst gebastelte Excel Makros.

00:31:04: Stefan Also wahrscheinlich sind die meisten Mitarbeitenden ja sowieso oder Benutzer viel mehr gewohnt auszuhalten, als das, was man ihnen da möglicherweise, von dem man glaubt, dass sie das tolerieren würden.

00:31:21: Konstantin Dann auch noch in der Arbeitswelt der Wechsel zwischen Desktop-Anwendungen oder Anwendungen auf dem Desktop-Rechner oder dem Notebook und mobilen Anwendungen.

00:31:32: Konstantin Also wir haben das sowieso ständig.

00:31:34: Stefan Mhm.

00:31:34: Stefan Mhm.

00:31:35: Konstantin Ich glaube...

00:31:38: Konstantin Da ist manchmal auch bei den Anbietern so ein vorauseilender Gehorsam.

00:31:41: Konstantin Nein, das können wir unseren Kunden und deren Mitarbeiter nicht zumuten.

00:31:44: Konstantin Und dann hilft es wahrscheinlich an der einen oder anderen Stelle, da doch ein bisschen mutiger zu sein und zu sagen, hey, der und der Teil ist jetzt schon neu.

00:31:52: Konstantin Und für den anderen müsst ihr halt, den ihr wesentlich seltener verwendet.

00:31:56: Konstantin Das ist ja auch so was, an dem man schneiden kann.

00:31:58: Konstantin Die Häufigkeit, habe ich Teile des Programms, die jeden Tag benutzt werden, die habe ich jetzt schon neu gemacht.

00:32:05: Konstantin Dann habe ich andere Teile, die werden irgendwie einmal im Monat oder unregelmäßig benutzt.

00:32:12: Konstantin Die sind halt noch alt.

00:32:13: Konstantin C'est la vie.

00:32:16: Stefan Ja.

00:32:17: Konstantin Ich meine, und da draußen bei Baustellen sind wir es auch gewöhnt,

00:32:23: Konstantin bei irgendwelchen Autobahnbaustellen oder sowas, da sind halt einige Teile schon neu, da können wir schon ganz easy cheesy über das Neue fahren und andere sind noch immer entstehen und wieder andere sind noch in der alten Form.

00:32:36: Konstantin Also dieses Nebeneinander von alt und neu, das kennen wir ja aus dem realen Leben auch.

00:32:46: Stefan Genau, das war jetzt so sehr stark die Produktmanagement-Perspektive.

00:32:52: Stefan Wenn wir mal auf die ERT... Ja genau, da wollte ich jetzt noch mehr reinmischen.

00:32:52: Konstantin Wobei du Gott sei Dank ja noch ein bisschen Technik auch reingemischt hast.

00:32:56: Konstantin Sehr gut.

00:33:00: Stefan Weil es gibt ja durchaus auch Fälle, wo man aus Produktmanagement- oder Unternehmenssicht sagen würde,

00:33:09: Stefan Das ist eigentlich okay, so wie es ist.

00:33:12: Stefan Also wir lösen die richtigen Probleme, wir wachsen weiter, die Benutzungsoberfläche ist ausreichend aktuell, aber dann die Entwickler aus technischer Sicht sagen, ja, es ist alles wunderbar, aber der Code ist halt unwartbar.

00:33:26: Stefan Und dann kriegt es natürlich auch eine Produktmanagementkomponente, weil die Kosten immer für die Weiterentwicklung extrem steigen.

00:33:31: Konstantin Korrekt.

00:33:31: Konstantin Ja.

00:33:35: Stefan Und das wäre ja dann ein zweiter Treiber für ein Rewrite.

00:33:42: Stefan Man dann sagt, lass uns das mal richtig gut neu machen.

00:33:47: Stefan Und da finde ich ja mindestens die Frage auch interessant und relevant.

00:33:53: Stefan Was schützt uns denn davor, wenn wir das neu bauen, relativ schnell wieder in die gleiche Situation zu kommen?

00:34:00: Stefan Also was ist denn die Ursache dafür, dass es überhaupt so gekommen ist, wie es gekommen ist und haben wir diese Ursache tatsächlich abgestellt?

00:34:07: Stefan Sonst investieren wir ja möglicherweise sehr viel Geld, haben vielleicht zwei, drei Jahre Ruhe, aber nach vier Jahren ist es wieder so wie jetzt.

00:34:14: Konstantin Ja, also erstmal ist ja so, ich bin ja selbst Softwareentwickler, deswegen darf ich das so ein bisschen abfällig sagen, wenn du einem Softwareentwickler oder einer Softwareentwickler im System hinhältst, wobei, glaube ich, Softwareentwickler dann noch anfälliger sind in meiner persönlichen, ganz persönlich gefärbten Erfahrung, dann ist in den meisten Fällen die Reaktion, oh, oh, nee, so kann man das nicht machen, müssen wir alles neu machen.

00:34:37: Konstantin Ja.

00:34:37: Stefan Okay.

00:34:40: Konstantin So, und da sprichst du, glaube ich, einen sehr wichtigen Punkt an, warum müssen wir das denn neu machen?

00:34:45: Konstantin Was hier ist denn genau schlechter drin?

00:34:48: Konstantin Und das eben auch dann in Leitlinien zu übersetzen für eine Neuentwicklung, damit genau das, was du beschreibst, eben nicht passiert, dass man jetzt vorher, ja, das macht heute kein Mensch mehr so, ja.

00:35:06: Konstantin Also, dass der Rewrite erstens nicht nur dadurch motiviert ist, dass eine jüngere Generation in der Softwareentwicklung sagt, mit den Tools, ey.

00:35:14: Konstantin Du musst mich ja zwingen zu.

00:35:17: Konstantin Also, das ist ein simples, ey, wir wollen nur andere Tools haben.

00:35:21: Konstantin Ähm,

00:35:24: Konstantin Da ist halt auch die Frage, kann berechtigt sein, denn am Ende muss man mit den Leuten arbeiten, die man kriegen kann und wenn ich nur Leute kriege, die sage, fasse ich wieder gleich, sage nicht an, was ihr hier habt an Codebase, dann kann das schon ein Treiber sein.

00:35:41: Konstantin Aber dann auch, wie verhindern wir denn, dass wir jetzt nicht

00:35:47: Konstantin die ganze Anwendung oder den ganzen maßgeblichen Teil Anwendungslogik nicht mehr in Delphi-Masken haben, sondern jetzt in Angular-Services.

00:35:56: Stefan Vielen Dank.

00:35:58: Konstantin Und was das Ganze dann irgendwie schwierig macht, wenn wir irgendwie ein Angular-Update machen oder sowas.

00:36:05: Konstantin Also da bist du...

00:36:09: Konstantin Da hast du sehr recht mit, mal zu gucken, was hat denn dazu geführt.

00:36:13: Konstantin Ja, das war auch, dass man früher Anwendungen zum Teil anders entwickelt hat, als man das heute tut.

00:36:18: Konstantin Und auch natürlich Business Logite in den Client packen konnte, weil sie da gut aufgehoben war damals und weil es auch nur diesen einen Client gab.

00:36:28: Konstantin Diese eine Art von Clients und nicht noch Mobile-Clients und Sprachassistenten und Schnipp und Schnapp und was hast du nicht noch alles gesehen und Uhren und andere Software-Systeme.

00:36:42: Konstantin Aber dann mal zu überlegen, okay, was ist denn unabhängig von der Technologie und von der Entwicklungsmethodik, die man früher an den Tag gelegt hat?

00:36:49: Konstantin Was hat denn dazu geführt, dass wir jetzt in dieser Situation sind?

00:36:51: Konstantin Und welche Leitlinien geben wir uns, damit das nicht gleich wieder passiert?

00:36:55: Konstantin Also, dass wir dann wieder haufenweise Businesslogik in Angular Services haben.

00:37:01: Konstantin Das ist durchaus eine wichtige Startvoraussetzung für so ein Rewrite.

00:37:08: Konstantin Und bei so einem Rewrite kann es tatsächlich sein,

00:37:13: Konstantin Da habe ich mal ein sehr großes, erfolgreiches Projekt in der Bank damals als Berater gesehen.

00:37:18: Konstantin Die hatten, da ging es rein um eine technische Migration, weil sie gesagt haben, sie wollen von einem proprietären Technologie-Stack damals, wollten sie auf einen Open-Source-Technologie-Stack.

00:37:29: Konstantin Und sie haben gesagt, damit dieses Projekt nicht den absoluten Scope-Creep kriegt und dann auf einmal alle sagen, ja, wenn wir das jetzt sowieso anfassen, dann könnten wir ja auch noch Folgendes.

00:37:38: Stefan Mhm.

00:37:41: Konstantin Und dann franzt das total aus überall und findet auch wieder kein Ende.

00:37:46: Konstantin Die hatten damals die klare Maßgabe.

00:37:48: Konstantin Das finde ich bei so einer technischen, rein technisch motivierten Migration, finde ich das eine interessante Überlegung zu sagen, wir machen eine 1 zu 1 Migration.

00:37:56: Konstantin Wir migrieren genau das, was da ist.

00:37:58: Konstantin Und so wie du es beschrieben hast, das Szenario ist ja auch das.

00:38:01: Konstantin Man hat aus Produktmanagementsicht drauf geguckt, wir lösen die richtigen Probleme für die Kunden, wir lösen die auch richtig und so weiter und so fort.

00:38:07: Konstantin Aber wir haben eine rein technische Motivation, zum Beispiel der Toolhersteller, der Proprietäre, auf dessen Tools wir aufgebaut haben, hat das abgekündigt.

00:38:15: Konstantin Wir können das nicht mehr weiterverwenden.

00:38:19: Konstantin Dann kann das durchaus sein, dass man ein sehr hartes Regime führt und sagt,

00:38:24: Konstantin Wir machen eine 1 zu 1 Migration und Ausnahmen müssen extrem gut begründet werden, warum wir etwas nicht mehr so machen, also inhaltlich nicht mehr.

00:38:32: Stefan Mhm.

00:38:34: Konstantin Tatsächlich finde ich diese Art von Migration, und jetzt wird mich vielleicht der eine oder der andere da draußen, die zuhören, steinigen, aber die finde ich einfacher, weil man da nicht so viel sich Gedanken darüber machen muss, wie man die Nutzer an eine neue Art der Anwendung gewöhnt.

00:38:52: Konstantin Sondern man kann im Zweifel auch unter der Haube einfach vieles tun, wovon der Nutzer gar nichts mitkriegt.

00:38:59: Konstantin Bei so einer rein technischen Migration.

00:39:02: Stefan Ja klar, also es reduziert ja erstmal Komplexität, weil das, was ja häufig da ist, ist, man möchte das in einer neuen Technologie machen, mit der man wenig Erfahrung hat.

00:39:11: Konstantin Ja.

00:39:11: Konstantin Ja.

00:39:13: Stefan Dann will man irgendwie eine neue Benutzungsoberfläche haben, mit der man keine Erfahrung hat und die Kunden auch nicht.

00:39:21: Stefan So, dann will man natürlich alles das bieten, was man vorher konnte, aber das soll noch geiler sein.

00:39:28: Stefan Also, weil man jetzt irgendwie eine noch geilere Idee hat, wie man eigentlich Adressen abbilden kann.

00:39:33: Stefan Genau.

00:39:34: Stefan Und dann kann man sich darin total verheddern.

00:39:37: Stefan Und wenn das irgendwie zu dem, wenn man sagt, es gibt einen primären Case und der ist Technologiemigration im Grunde.

00:39:46: Stefan dann könnte das natürlich erstmal extrem vereinfachen und man könnte sich dann gegebenenfalls Oberflächengeschichten oder andere Geschichten für danach aufheben, um dann erstmal sehr fokussiert nur das eine zu machen.

00:39:58: Stefan Und das könnte, also falls man irgendwo herkommt, wo man Fachlogik von dem Rest einigermaßen getrennt hat,

00:40:09: Stefan Und lustigerweise war das tatsächlich in dem COBOL-System so, an dem ich als Student gearbeitet habe.

00:40:17: Stefan Also das Ding war natürlich voller Redundanzen, weil COBOL ganz schwache Abstraktionsmechanismen nur hat, aber innerhalb der sprachlichen Möglichkeiten war das super klar strukturiert und die hatten auch sehr gut die Oberfläche von der Logik getrennt.

00:40:36: Stefan Und da könnte ich mir vorstellen,

00:40:40: Stefan dass wenn man da eine technologische Migration machen will, tatsächlich KI auch helfen kann.

00:40:48: Konstantin Ja.

00:40:48: Stefan Bei diesem Vibe-Coding-Kram, da bin ich ja nicht so von überzeugt, aber was das Ding richtig gut konnte in meinen Experimenten, war immer, wenn ich gesagt habe, hier ist Code in Programmiersprache X und ich hätte es gerne in Y, dass er das eigentlich immer hingekriegt hat, inklusive

00:41:05: Stefan wenn das prozedural entwickelt wurde und ich wollte es gerne in Lisp haben, dass er die Schleifen endrekursiv umformuliert hat.

00:41:14: Stefan Also da könnte was gehen.

00:41:16: Konstantin Naja, das ist ja fast was, was du sogar algorithmisch lösen kannst, ne?

00:41:17: Stefan Ja.

00:41:22: Konstantin Aber nochmal zurück zu deinem, man möchte zu viele Sachen auf einmal.

00:41:28: Konstantin In der Beratung hieß es immer, neu, neu, neu, neu wird nicht funktionieren.

00:41:33: Konstantin Also such dir die Neues aus.

00:41:36: Konstantin Und ich meine, du beginnst, glaube ich, also zumindest zu der Zeit, als ich die genossen habe, war das so und ich mache das ähnlich, deine agilen Trainings mit Stacy Landscape.

00:41:47: Stefan Ja.

00:41:48: Konstantin So und allein die Stacy Landscape zeigt uns ja, warum es nicht eine geile Idee ist, eine neue, unbekannte Technologie und die Kundenprobleme völlig neu zu lösen, gleichzeitig anzugehen.

00:42:04: Konstantin Und das auch noch at scale, also das ganze Software-System und nicht, hey, wir machen jetzt einen kleinen Service und damit war tatsächlich ein Kunde von uns, bei dem ist ein großer Rewrite völlig aus dem Ruder gelaufen, aber er hat sich dann einen kleinen Anwendungsfall rausgesucht und mit einer neuen Technologiebasis diesen kleinen Anwendungsfall, der neu war, also ein Problem, was durch Corona entstanden ist, eine Logistik,

00:42:32: Konstantin hat er dann dieses eine kleine Problem, für ihn neue Probleme und für seine Kunden zugegebenermaßen auch ein bisschen neues Problem gelöst, auf einer neuen Technologiebasis, aber sehr überschaubar, in sehr kleinem Rahmen, sodass es eben nicht im Chaos ausgeartet ist, was ja ganz oben in der Ecke bei der Stacey Landscape ist, sondern dass es dann eine überschaubare Komplexität geboten hat.

00:43:01: Konstantin Was dabei bei aller Bescheidenheit wahrscheinlich auch geholfen hat, ist, dass er Leute von uns hatte, die diese Technologie schon einigermaßen gut beherrschen und damit er auf diese einen Dimension in der Stacy Landscape zumindest nicht in den roten Bereich gefahren ist.

00:43:18: Stefan Ja.

00:43:21: Konstantin Und das kann auch immer was sein,

00:43:26: Konstantin wenn man sagt, hey, das hatten wir ja vorhin, unser Core-Asset ist eigentlich nicht diese Software und dass wir Software entwickeln können, sondern unser Core-Asset ist, dass wir diese Kundenbeziehungen haben, dass wir das Verständnis für die Branche der Kunden haben, für deren Probleme haben.

00:43:42: Konstantin Wir wollen das jetzt auf einer neuen Technologiebasis

00:43:47: Konstantin was Neues entwickeln mit diesem Branchenverständnis, dass man gezielt auf einer der Dimensionen dieser Stacy Landscape Risiko rausnimmt, indem man sich zum Beispiel einen externen Partner nimmt, der die Technologie, die man vorhat einzusetzen, schon extrem gut beherrscht.

00:44:02: Konstantin Und, zwinker, zwinker, völlig uneigennützig, wenn der dann auch noch was von Produktmanagement versteht,

00:44:07: Konstantin Dann ist es natürlich noch einfacher und man nimmt noch mehr Risiko aus diesem Thema raus.

00:44:12: Konstantin Aber sozusagen seinen Entwicklern, die man im Team hat, eine neue Technologie beizubringen und die Business Cases alle neu zu denken, was man eigentlich tun sollte, das ist ziemlich aufwendig und setzt die Mannschaft ganz schön unter Strom.

00:44:34: Stefan Es gibt tatsächlich, also bei allem, was Sie jetzt besprochen haben, ich habe in meiner Erfahrung ein Gegenbeispiel, wo Big Bang tatsächlich auch funktioniert hat, aber es ist tatsächlich, wie lange bin ich, wie lange entwickle ich Software seit 1992 für Geld?

00:44:49: Stefan Also das ist jetzt

00:44:56: Stefan 33 Jahre, in 33 Jahren ist das einmal passiert, das ist einmal gesehen.

00:45:02: Stefan Und das war eine größere E-Business-Plattform.

00:45:07: Stefan Und was ich glaube, was zum Erfolg beigetragen hat, war, dass man erstens dafür gesorgt hat, dass in dem Team supergute Leute waren, also die man teilweise auch nur dafür eingestellt hat.

00:45:21: Stefan Also die sind auch hinterher geblieben, aber man hat explizit sehr gute Leute besorgt und wahrscheinlich auch sehr viel Geld für die bezahlt.

00:45:28: Konstantin Mhm.

00:45:31: Stefan Ist dann bei einem überschaubar kleinen Team geblieben, also es war irgendwie, es war glaube ich über 10, aber unter 20.

00:45:40: Stefan Man hat eine harte Timebox gesetzt und hat gesagt, ihr habt sechs Monate Zeit.

00:45:46: Stefan Und hat für die Beteiligten 100% Fokus hergestellt.

00:45:49: Stefan Er hat gesagt, ihr macht nur das.

00:45:50: Stefan Und es gibt für die Fachseite einen Feature-Freeze.

00:45:56: Stefan Und das hat der damalige CTO auch sozusagen mit Klauen verteidigt.

00:46:03: Stefan Weil natürlich, also am Anfang sagt das Business ja kein Ding, verstehen wir.

00:46:10: Stefan Aber spätestens nach vier Wochen ist ja irgendwas ganz furchtbar wichtig Dringendes, was unbedingt noch gemacht werden muss.

00:46:17: Stefan Und das würde dann dazu führen, dass du es doppelt machen musst im Grunde.

00:46:21: Stefan Und das hat er irgendwie geschafft, vollständig zu unterbinden.

00:46:25: Stefan Und dann waren sie nach den sechs Monaten nicht hundertprozentig fertig.

00:46:29: Stefan Also da hing irgendwo im Backend noch irgendwas dran, was sozusagen alten Code aufgerufen hat.

00:46:36: Stefan Und das war auch noch sehr lange da, aber sie waren so, dass sie nach den sechs Monaten damit live gehen konnten.

00:46:42: Stefan Und dann mit einer einheitlichen Benutzungsoberfläche.

00:46:45: Stefan Also finde ich immer noch sehr beeindruckend, dass sie das gebacken gekriegt haben, aber das muss so irgendwo im Bereich 2005 bis 2008 passiert sein.

00:46:51: Konstantin Wie lang ist das her?

00:47:00: Konstantin Genau, meine Hypothese ist, dass das je näher es ans heute dran rückt, desto unwahrscheinlicher wird das, weil natürlich die Veränderungsgeschwindigkeit zugenommen hat.

00:47:06: Stefan Mhm.

00:47:06: Stefan Mhm.

00:47:09: Konstantin Die Fachbereiche denken sich ja diesen Kram nicht aus.

00:47:11: Konstantin So, hey, jetzt könnten wir eigentlich die IT mal, Softwareentwicklung mal knechten, sondern die haben wirklich Druck durch irgendwelche regulatorischen Anforderungen oder sonst irgendwas.

00:47:21: Konstantin Und die Vernetzung mit umliegenden Systemen hat ja in den letzten 20 Jahren so dermaßen stark zugenommen, durch verkettete Wertschöpfungsketten, wo es dann heißt, das können wir nicht, weil das nicht kann und wir können das vor X nicht umstellen und nach Y schon gar nicht.

00:47:43: Konstantin Und ich glaube, dass das früher noch einfacher war als heute.

00:47:46: Konstantin Aber wenn man das ein Stück abstrahiert, das passt ja zu dem Beispiel, was ich aus der Bank mitgebracht habe, wo man gesagt hat, man möchte von der proprietären Technologiebasis weg zu einem reinen Open-Source-Stack und man macht die klare Maßgabe, es ist eine 1-zu-1-Migration.

00:48:00: Konstantin Das ist das Prinzip, was über diesem ganzen Projekt steht.

00:48:04: Konstantin Und es gab ein Gremium aus Technikern und was weiß ich allen, die mussten alle zustimmen, wenn eine Änderung gemacht werden sollte.

00:48:15: Konstantin Also wenn man abwich von diesem 1 zu 1 Migration, wir machen eine reine technische Migration.

00:48:22: Konstantin Und dann sind wir ja wieder bei, in diesem Projektmanagement-3- oder 4-Eck, so wie du es auch beschrieben hast, zore ich ein paar Sachen fest.

00:48:33: Stefan Mhm.

00:48:33: Konstantin Also wie beispielsweise, das merken wir auch mit Kunden ja immer wieder, wenn es einen harten Zeitplan gibt, weil der Kunde zum Beispiel Saisongeschäft hat, das hilft so unfassbar bei der Priorisierung,

00:48:47: Konstantin Ja, das können wir alles machen.

00:48:49: Konstantin Also bei einem aktuellen Kunden ist meine Metapher dann immer, dass ich sage, wir sind in diesem Vergnügungspark unterwegs, wir haben euch versprochen, wir fahren mit jeder der Attraktionen einmal, bevor der Vergnügungspark schließt.

00:49:02: Konstantin Wir können jetzt noch viermal mit dieser geilen Achterbahn hier fahren.

00:49:06: Konstantin Und noch mehr Usability-Späßchen in diese eine Maske einbauen, dann gilt mein Versprechen aber nicht, dass wenn der Vergnügungspark schließt, wir mit allen Attraktionen einmal gefahren sind.

00:49:19: Stefan Mhm.

00:49:19: Konstantin Das kann ich dann einfach nicht mehr garantieren.

00:49:21: Konstantin Ah ja, okay, nee, nee, nee, dann gehen wir jetzt zum nächsten weiter.

00:49:25: Konstantin Und was, glaube ich, ganz wichtig ist, damit das nicht ausfranst, ist, an bestimmten Stellen die Rahmenbedingungen festzuzogen.

00:49:33: Konstantin Ihr habt einen festen Zeitrahmen, ihr habt ein festes Team, ihr habt ein festes Budget, ihr macht ausschließlich eine technische Migration, wir kümmern uns nur um die wichtigsten zehn Kundenprobleme.

00:49:46: Konstantin Und das hatte ich vorhin noch zu vergessen,

00:49:49: Konstantin Das klingt auch alles wieder so einfach, nur die meisten von diesen Branchensoftwareherstellern wissen gar nicht, welche der Funktionen in ihrer Software besonders häufig benutzt werden.

00:49:59: Konstantin Also eine der ersten To-Dos meist ist, so ein Tracing einzubauen.

00:50:04: Stefan Mhm.

00:50:05: Stefan Mhm.

00:50:05: Konstantin So eine Art Google Analytics.

00:50:07: Konstantin Das muss ja nicht irgendwie personalisiert sein, aber mal zu wissen, diese Maske wird 720 Mal die Woche aufgerufen und die da einmal aufgerufen.

00:50:17: Konstantin Und auch nur bei einem einzigen Kunden, die anderen benutzen die nie.

00:50:21: Konstantin Das wissen die meisten gar nicht, weil die keine Metriken in ihrer Software drin haben.

00:50:25: Konstantin Und das hilft natürlich auch total, um dann wieder die Rahmenbedingungen festzuzuholen und zu sagen, diese Maske, die ein einziger Kunde einmal im Monat aufruft, die räumen wir ganz nach hinten.

00:50:36: Konstantin Und diese Maske hier, die 720 Mal die Woche von fast allen Kunden aufgerufen wird, das ist die, um die wir uns als allererstes kümmern.

00:50:45: Konstantin Aber diese Daten muss man oft erstmal besorgen, weil es diese Telemetrie gar nicht gibt in der Anwendung.

00:50:50: Stefan Ja.

00:50:55: Stefan Okay.

00:50:56: Stefan So, jetzt haben wir hier schon fast wieder eine Stunde miteinander geredet und haben das Thema, wie sieht es denn aus mit Inhouse-Software, gar nicht so richtig gestreift.

00:51:06: Stefan Vielleicht ein Thema für einen weiteren Podcast.

00:51:11: Stefan Wenn wir nochmal versuchen, zusammenzufassen, was wir besprochen haben.

00:51:16: Stefan Wir versuchen das gemeinsam.

00:51:17: Stefan Also wir hatten ein

00:51:18: Konstantin Ja.

00:51:20: Stefan die Probleme der Kunden verstehen, um dann daraus Lösungen zu bauen und nicht einfach sozusagen den Code lesen und versuchen, das nachzubauen.

00:51:30: Stefan Es sei denn, wir entscheiden uns, eine rein technische Migration zu machen.

00:51:35: Stefan Wir hatten dann als Strategien sowas wie eben erstmal das nur für einen Teil der existierenden Kunden zu bauen, damit wir schneller an den Markt gehen, bis hin zu nur für den Anspruchslosesten.

00:51:47: Stefan oder für Kunden, die wir noch gar nicht haben oder Probleme zu lösen, die wir bisher gar nicht lösen für existierende Kunden.

00:51:57: Stefan Was hatten wir noch?

00:51:59: Stefan Fokus, Fokus, Fokus, ja.

00:51:59: Konstantin Ich glaube, dass, wenn man es, genau, Fokus ist das große Thema, weil so ein Migrations- oder Rewrite-Projekt viel größere Tendenz hat, auszufransen als irgendeine Neuentwicklung, weil man ja eine bestehende Kundenbasis hat, weil man ein bestehendes Entwicklungsteam hat, weil man eine bestehende Codebasis hat.

00:52:20: Konstantin Die größte Gefahr für alle diese Migrations- oder Rewrite-Projekte sind dieses Ausfransen.

00:52:25: Konstantin Man kommt nie an einer bestimmten Stelle an, wo es mal ein Zustand ist, womit man an den Markt gehen kann oder sowas.

00:52:28: Stefan Vielen Dank.

00:52:34: Konstantin Der Schlüssel, um das zu vermeiden, ist halt über Rahmenbedingungen festzurren,

00:52:41: Konstantin für Fokus zu sorgen.

00:52:43: Konstantin Rahmenbedingungen festzuhören kann sein, wir machen hier eine rein technische Migration, weil wir es müssen, von A nach B und fachlich ändern wir gar nichts.

00:52:56: Konstantin Oder eben das, was du eben beschrieben hast, diese Strategien, aber die dienen immer dafür,

00:53:00: Konstantin Ausfransen zu verhindern, Fokus zu schaffen, indem ich bestimmte Rahmenbedingungen festzure.

00:53:06: Konstantin Wir müssen in einem halben Jahr es schaffen, wir können ja nicht vier Jahre für eine erste Version brauchen, wir müssen es in einem halben Jahr schaffen, mit etwas an den Markt zu kommen, was für den Markt interessant ist und ein maßgebliches Problem löst beispielsweise.

00:53:19: Konstantin Zack, sofort habe ich ganz andere Priorisierungsdiskussionen und dieses Ausfransen.

00:53:23: Konstantin Und hier hatten wir aber noch eine Sonderlocke für ROG KG.

00:53:27: Konstantin Die wollen nämlich ihre Preise auch noch so und so berechnet haben.

00:53:27: Stefan Mhm.

00:53:32: Konstantin das fällt jetzt erstmal raus, die RohkG darf weiterhin schön in ihrer alten Welt ihre Sonderberechnungen haben, aber das führt uns nicht dazu, dass wir innerhalb von sechs Monaten ein erstes marktfähiges Produkt liefern.

00:53:45: Konstantin Und ich glaube, das ist der Schlüssel, weil eben dadurch, dass es schon eine Codebasis und Kunden und ein bestehendes Team für diese Software gibt, der die Gefahr von diesem Ausfransen und nie fertig werden, viel, viel größer ist als bei einer Neuentwicklung.

00:54:02: Stefan Okay, dann vielen Dank für die Diskussion, Konstantin.

00:54:10: Konstantin Es war mir immer eine Freude.

00:54:11: Konstantin Genau.

00:54:13: Stefan Vielleicht machen wir noch weitere Folgen.

00:54:16: Stefan Wir gucken mal.

00:54:18: Stefan Macht's gut.

Neuer Kommentar

Dein Name oder Pseudonym (wird öffentlich angezeigt)
Mindestens 10 Zeichen
Durch das Abschicken des Formulars stimmst du zu, dass der Wert unter "Name oder Pseudonym" gespeichert wird und öffentlich angezeigt werden kann. Wir speichern keine IP-Adressen oder andere personenbezogene Daten. Die Nutzung deines echten Namens ist freiwillig.