Blog & Articles by Markus Harrer

Blog Post

Where AI Helps (and Hurts) Across Different Coding Scenarios

Where does LLM-assisted software development improve developer productivity—and where does it fall short? Instead of treating AI in software development as a one-dimensional productivity booster, we explore the question across several dimensions suggested by a Stanford-adjacent study: project maturity, task complexity, and the popularity of the programming language. The goal is to create a more realistic expectation baseline for both software developers and leaders—well away from today’s hype.

Blog Post

Modern Legacy (thanks to AI)

The discussion around software modernization is currently dominated by solutions involving artificial intelligence (AI) in software development. AI-assisted code completion, agentic software engineering, and other tools promise to massively accelerate development processes. The obvious thought is to apply these tools directly to existing code as well: refactorings, re-documentation, or even generated code for new features in legacy systems. Technically, much of this is already possible, and the buzzword industry is once again in full swing. Yet these code-centric, AI-driven approaches can be shortsighted for organizations tangled in a jungle of legacy systems. A modernization that focuses solely on code quickly leads to modern legacy: systems that appear technically advanced and well documented thanks to AI, but whose actual purpose has long become questionable.

Blog Post

Modern Legacy (dank KI)

Warum der Fokus auf Code in der KI-Ära zu kurz greift

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.