Blog & Articles by Markus Harrer

Blog Post

Über AI-Einsatz in verschiedenen Coding-Situationen

Wo hilft LLM-gestützte Softwareentwicklung bei der Entwicklungsproduktivität und wo bleibt sie hinter den Erwartungen zurück? Anstatt KI in der Softwareentwicklung als eindimensionalen Produktivitätsbeschleuniger zu sehen, gehen wir diesen Fragen entlang mehrerer Dimensionen nach, welche eine Studie aus dem Stanford-Umfeld bietet: Projektreife, Aufgabenkomplexität und Popularität der Programmiersprache. Ziel ist es, ein realistischeres Bild für die Erwartungshaltung bei KI für Softwareentwickelnde und Führungskräfte zu schaffen, fernab des aktuellen Hypes.

Blog Post

Modern Legacy (dank KI)

Die Diskussion über Softwaremodernisierung wird derzeit stark von Lösungen rund um künstliche Intelligenz (KI) in der Softwareentwicklung geprägt. KI gestützte Code-Vervollständigung, Agentic Software Engineering und weitere Werkzeuge versprechen, Entwicklungsprozesse massiv zu beschleunigen. Der Gedanke liegt nahe, diese Werkzeuge direkt am bestehenden Code einzusetzen: Refactorings, Redokumentation oder sogar generierter Code für neue Funktionen in vorhandenen Legacy Systemen. Technisch ist hier bereits viel möglich und auch die Buzzword-Industrie ist hier wieder massiv unterwegs. Doch diese Code-nahen, KI-getriebenen Ansätze können für Unternehmen, die sich mit einem Dschungel aus Legacy Systemen auseinandersetzen, zu kurzsichtig sein. Eine Modernisierung, die von Anfang an nur auf Code zielt, führt schnell zu Modern Legacy: Systeme, die dank KI-Unterstützung technisch hochmodern und vorbildlich dokumentiert wirken, deren eigentlicher Zweck aber längst fragwürdig ist.

Blog Post

Modern Legacy (thanks to AI)

Why Focusing on Code Alone Falls Short in the Age of AI

Blog Post

Software Analytics going crAIzy!

I’ve long been an advocate of treating software like data and analyzing it accordingly with tools like Python, pandas, Jupyter Notebook, Neo4j, and jQAssistant. In the era of AI and code transformation tools, seeing software as data gets more and more important when you want to improve your software system at a large scale. This blog post is a short interim report from me about my efforts taking software analysis to the next level.

Blog Post

LLM-assisted Abbreviation Mining for Legacy Systems

This blog post shows the process of mining abbreviations and discovering first concepts a COBOL legacy mainframe codebase is made of with the help of Large Language Models. It uses Python, pandas and Claude 3.5 Sonnet to generate insights that can be gathered from such a simple thing like a list of files.

Article

The Evolutionist

Software Architecture Work on Existing Systems

Blog Post

Was treibt dich an?

In der heutigen schnelllebigen Welt der Softwareentwicklung ist die Modernisierung von Software eine unerlässliche Aufgabe, um mit ständig ändernden Anforderungen und Technologien Schritt zu halten. Es gibt immens viele Ansätze zur Modernisierung von Software. Aber es ist eine Herausforderung, die richtigen Werkzeugkästen in den richtigen Situationen zu finden. Wie schön wäre es, die eine «Ultimative Softwaremodernisierungsmethode™️» in den Händen zu halten, die all die Probleme mit den in die Jahre gekommenen Softwaresysteme lösen kann?

Blog Post

Evolving software like an orchardist

Software systems are usually larger, overgrown structures that developers need to bring back into shape after some time. However, creating an overview of the sprawling conglomerate of software components is challenging, let alone developing a clear plan for moving on. This blog post uses analogies from pruning apple trees to show developers how to evolve their software systems using a value-based approach.

Article

cards42 English edition

The activity cards for software architects

Blog Post

Software quality in the context of value chains and evolution

Quality goals help to make more informed architectural decisions. However, identifying a set of the most needed qualities is a challenging task. Quality requirements are strongly dependent on the perspective of individuals. The importance of certain qualities also changes over time. In this blog post, I introduce an idea that helps to understand qualities in terms of their relevance (and non-relevance). We discover how qualities interplay with value creation activities and evolution by using the ISO 25010 quality model together with Wardley Maps as a foundation.

Blog Post

Collaborative Learning with Mobshops

After a year with COVID-19 and plenty of online activities, I think we are tired with workshops that copy the offline world into an online setting. More interactive formats are needed. In this blog post, I briefly describe my learnings with a new format I’ve developed and piloted in practice: Mobshops.

Blog Post

Defect Analysis using pandas

Using standard Data Science tools from Python to track bugfixing activities

Blog Post

Wenn Customizing zur Legacy wird

In diesem Blog-Post visualisiere ich ein regelrechtes Schlamassel mit Hilfe von Wardley Maps und Elementen aus dem strategischem Domain-driven Design.

Article

cards42

Die Mitmach-Karten von cards42 unterstützten bei der täglichen Arbeit mit Softwarearchitekturen. Die Karten geben kurze Denkanstöße für festgefahrene Situationen und helfen, neues Licht auf schwierige Herausforderungen zu werfen. Dieser Artikel bietet ausführliche Erklärungen sowie die Hintergründe und weitere Informationen zu den Karten.