Blog & Artikel von 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.

Artikel

Der Evolutionist

Softwarearchitekturarbeit an bestehenden Systemen

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.

Artikel

cards42 English edition

The activity cards for software architects

Blog-Post

Softwarequalität im Kontext von Wertschöpfung und Evolution

Qualitätsziele helfen, Architekturentscheidungen fundierter zu treffen. Eine Auswahl angemessener Qualitäten zu finden ist aber ein herausforderndes Thema. Qualitätsansprüche sind stark abhängig vom Betrachtungspunkt aus. Notwendige Qualitäten ändern sich zudem über die Zeit hinweg. In diesem Blog-Post möchte ich gerne eine Idee vorstellen, die helfen kann, Qualitäten im Hinblick auf ihre Relevanz besser einzuordnen. Als Basis verwende ich hierzu das ISO 25010 Qualitätsmodell sowie Wardley Mapping, mit Hilfe dessen sich Wertschöpfungsaktivitäten und die Evolutionsstufen von Softwaresystemen kommunizieren lassen.

Blog-Post

Kollaboratives Lernen mit Mobshops

Nach einem Jahr mit COVID-19 und vielen Online-Aktivitäten denke ich, dass wir müde sind von Workshops, die die Offline-Welt in ein Online-Setting kopieren. Es werden mehr interaktive Formate benötigt. In diesem Blogbeitrag beschreibe ich kurz meine Erfahrungen mit einem neuen Format, das ich entwickelt und in der Praxis erprobt habe: 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.

Artikel

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.