Lazar Nikolov / Birgitta Böckeler / Martin Fowler: Unterschied zwischen den Versionen
Keine Bearbeitungszusammenfassung |
Keine Bearbeitungszusammenfassung |
||
| Zeile 35: | Zeile 35: | ||
** '''Evals & Monitoring:''' Die Bewertung der Ausgaben von LLMs ("Evals") ist das Herzstück produktiver KI-Anwendungen. Da GenAI nicht-deterministisch ist, müssen Systeme überwacht werden, um "Halluzinationen" zu erkennen. | ** '''Evals & Monitoring:''' Die Bewertung der Ausgaben von LLMs ("Evals") ist das Herzstück produktiver KI-Anwendungen. Da GenAI nicht-deterministisch ist, müssen Systeme überwacht werden, um "Halluzinationen" zu erkennen. | ||
** '''Vom Prototyp zur Produktion:''' Viele GenAI-Projekte scheitern am Übergang zum produktiven Einsatz, weil sie nicht als komplexe, softwaretechnische Systeme (mit Testing, Monitoring) behandelt werden. [[https://martinfowler.com/articles/gen-ai-patterns/ 1], [https://toot.thoughtworks.com/@bboeckel 2]] | ** '''Vom Prototyp zur Produktion:''' Viele GenAI-Projekte scheitern am Übergang zum produktiven Einsatz, weil sie nicht als komplexe, softwaretechnische Systeme (mit Testing, Monitoring) behandelt werden. [[https://martinfowler.com/articles/gen-ai-patterns/ 1], [https://toot.thoughtworks.com/@bboeckel 2]] | ||
== Zusammenfassende Kernargumente (Übersicht) == | |||
'''Strategische Ausrichtung: Die Zukunft der Softwareentwicklung''' | |||
Die drei Experten stimmen darin überein, dass sich die Softwareentwicklung fundamental wandelt. Der Übergang von menschlich geschriebenem Code zu KI-assistierter Entwicklung ist unumkehrbar. Dies erfordert jedoch, dass Softwareingenieure ihre Rolle vom "Schreiber" zum "Harness Engineer" oder "Prüfer" weiterentwickeln (Fowler/Böckeler). [[https://understandlegacycode.com/blog/key-points-of-refactoring/ 1], [https://en.wikipedia.org/wiki/Martin_Fowler_(software_engineer) 2], [https://martinfowler.com/tags/continuous%20delivery.html 3]] | |||
=== 1. Die neue Rolle des Codes und der Architektur === | |||
* '''Code-Qualität bleibt entscheidend:''' Trotz KI-Autonomie ist sauberer, verständlicher Code weiterhin das Ziel, da er die Absicht des Entwicklers dokumentiert (Fowler). [[https://martinfowler.com/data/ 1], [https://hosseinnejati.medium.com/martin-fowler-the-architect-of-modern-software-development-and-why-every-developer-should-read-his-4356a5ffdc71 2]] | |||
* '''Evolutionäre Architektur:''' Architektur ist ein sozialer Prozess, der durch "Architectural Decision Records" (ADRs) dokumentiert und durch "Harness Engineering" (Böckeler) gegen KI-bedingten Nicht-Determinismus geschützt werden muss. | |||
=== 2. Der Einfluss von KI (GenAI) auf die Delivery === | |||
* '''Harness Engineering als Kerntechnik:''' Da KI-Agenten komplexe Aufgaben übernehmen (Agentic AI), muss das Team Sicherungen ("Harnesses") – bestehend aus Tests, Guardrails und Spezifikationen – bauen, um die Ergebnisse zu validieren (Böckeler/Fowler). | |||
* '''Abstraktionssprung:''' KI ist eine neue Abstraktionsebene, die uns "seitwärts" führt (nicht nur nach oben wie Assembler zu Java). Wir müssen lernen, mit nicht-deterministischen Ausgaben zu arbeiten. [[https://martinfowler.com/articles/2025-nature-abstraction.html 1]] | |||
* '''RAG & Evals:''' Für produktive KI-Systeme ist RAG (Retrieval-Augmented Generation) entscheidend, um Kontext hinzuzufügen. Evals sind das "neue Testing" für KI-Anwendungen (Nikolov). [[https://martinfowler.com/articles/gen-ai-patterns/ 1]] | |||
=== 3. Technische Praktiken und menschliche Faktoren === | |||
* '''Kognitive Bias-Behandlung:''' Architekten und Entwickler müssen aktiv gegen kognitive Verzerrungen (Cognitive Biases) arbeiten, um rationale Architektur- und Implementierungsentscheidungen zu treffen. [] | |||
* '''Pairing und Teamkultur:''' Das Paarprogrammieren (Pair Programming) bleibt entscheidend, um die Qualität von KI-Code zu bewerten und Mentoring zu gewährleisten, gerade wenn die Komplexität durch KI-Tools steigt. [[https://birgitta.info/ 1]] | |||
=== 4. Fazit === | |||
Die Kombination aus bewährten agilen Praktiken (Refactoring, CI/CD, Testing) und neuen KI-Engineering-Mustern (Harness Engineering, Evals) bildet die Basis für erfolgreiche Softwareentwicklung in den kommenden Jahren. Die Expertise der Autoren betont, dass KI den Menschen nicht ersetzt, sondern eine strenge, ingenieurmäßige Disziplin erfordert, um verlässliche Systeme zu liefern. [[https://martinfowler.com/agile.html 1]] | |||
[[Category:People]] | [[Category:People]] | ||
Version vom 11. Mai 2026, 14:38 Uhr
Diese Zusammenfassung behandelt die einflussreichsten Veröffentlichungen und Kernargumente von Martin Fowler, Birgitta Böckeler und Lazar Nikolov, basierend auf ihrer Arbeit bei Thoughtworks und dem Portal martinfowler.com (Stand: Mai 2026).
Zusammenfassung: Wichtige Publikationen und Argumente
1. Martin Fowler (Softwarearchitektur & Engineering)
Fowler ist einer der prägenden Denker moderner Softwareentwicklung, besonders in den Bereichen Refactoring, Agile und Architektur. [1]
- Wichtigste Werke: Refactoring: Improving the Design of Existing Code (2nd ed. 2018), Patterns of Enterprise Application Architecture, NoSQL Distilled, martinfowler.com (Bliki). [1]
- Kernargumente:
- Refactoring & Evolutionäres Design: Softwaredesign muss sich kontinuierlich anpassen. Refactoring ist kein optionaler Schritt, sondern eine essenzielle Technik, um Code durch kleine, verhaltensbewahrende Änderungen sauber und wartbar zu halten.
- Architecture: The Important Stuff: Architektur ist das, was "schwer zu ändern" ist. Sie besteht aus den entscheidenden, gemeinsamen Entwürfen der besten Entwickler im Team. Dokumentation sollte agil und leichtgewichtig sein (z.B. Architecture Decision Records).
- Microservices & Dezentralisierung: Komplexe Systeme sollten als Reihe kleiner, eigenständiger Dienste entwickelt werden, die über APIs kommunizieren.
- Continuous Delivery: Die Häufigkeit von Releases erhöht die Qualität und senkt das Risiko, sofern technische Exzellenz (Testing, CI) gewährleistet ist.
- GenAI & Abstraktion: Große Sprachmodelle (LLMs) sind der größte Abstraktionssprung seit den Hochsprachen, bringen aber auch Nicht-Determinisumus. Die Kernaufgabe verschiebt sich von "Code schreiben" zu "Harness Engineering" (Absicherung der Ergebnisse). [1, 2, 3, 4, 5, 6, 7]
2. Birgitta Böckeler (AI-Assisted Delivery & Architektur)
Böckeler ist eine führende Expertin für KI-gestützte Softwareentwicklung und kognitive Prozesse in der Architektur.
- Wichtigste Werke: Exploring GenAI Memos (martinfowler.com), Harness engineering for coding agent users (2026), Cognitive Biases in Software Architecting.
- Kernargumente:
- AI-Assisted Software Delivery: Der Fokus liegt darauf, KI nicht nur als "Fancy Auto-complete" (Copilot) zu nutzen, sondern als agentische Systeme, die ganze Aufgaben übernehmen. Dies erfordert neue Ansätze im Engineering.
- Harness Engineering: Da LLMs nicht-deterministisch sind, müssen Entwickler "Harnesses" bauen – Umgebungen, Spezifikationen und automatisierte Prüfungen, um die Qualität KI-generierten Codes zu sichern.
- Kognitive Verzerrungen in der Architektur: Architekten müssen sich ihrer kognitiven Verzerrungen (z.B. Ankereffekt, Bestätigungsfehler) bewusst sein, da diese die Entscheidungsfindung negativ beeinflussen. Vertrauen in Architektur sollte auf Daten basieren, nicht auf Intuition.
- Pair Programming & Mentoring: Die Zusammenarbeit (Pairing) ist ein entscheidender Faktor für Wissensverbreitung und Qualität, besonders im Zeitalter der KI, um "Vibe Coding" (unreflektiertes KI-Coding) zu verhindern. [1, 2, 3, 4]
3. Lazar Nikolov (AI Product Development & Patterns)
Nikolov arbeitet eng mit der Thoughtworks-Community an der Implementierung von KI-Systemen in der Praxis.
- Wichtigste Werke: Emerging Patterns in Building GenAI Products (2025), Mitarbeit an Thoughtworks Tech Podcasts. [1]
- Kernargumente:
- RAG (Retrieval-Augmented Generation): Der Standardansatz, um LLMs verlässlich zu machen. RAG liefert Kontext aus unternehmenseigenen Quellen, anstatt sich auf das statische Training des Modells zu verlassen.
- Evals & Monitoring: Die Bewertung der Ausgaben von LLMs ("Evals") ist das Herzstück produktiver KI-Anwendungen. Da GenAI nicht-deterministisch ist, müssen Systeme überwacht werden, um "Halluzinationen" zu erkennen.
- Vom Prototyp zur Produktion: Viele GenAI-Projekte scheitern am Übergang zum produktiven Einsatz, weil sie nicht als komplexe, softwaretechnische Systeme (mit Testing, Monitoring) behandelt werden. [1, 2]
Zusammenfassende Kernargumente (Übersicht)
Strategische Ausrichtung: Die Zukunft der Softwareentwicklung
Die drei Experten stimmen darin überein, dass sich die Softwareentwicklung fundamental wandelt. Der Übergang von menschlich geschriebenem Code zu KI-assistierter Entwicklung ist unumkehrbar. Dies erfordert jedoch, dass Softwareingenieure ihre Rolle vom "Schreiber" zum "Harness Engineer" oder "Prüfer" weiterentwickeln (Fowler/Böckeler). [1, 2, 3]
1. Die neue Rolle des Codes und der Architektur
- Code-Qualität bleibt entscheidend: Trotz KI-Autonomie ist sauberer, verständlicher Code weiterhin das Ziel, da er die Absicht des Entwicklers dokumentiert (Fowler). [1, 2]
- Evolutionäre Architektur: Architektur ist ein sozialer Prozess, der durch "Architectural Decision Records" (ADRs) dokumentiert und durch "Harness Engineering" (Böckeler) gegen KI-bedingten Nicht-Determinismus geschützt werden muss.
2. Der Einfluss von KI (GenAI) auf die Delivery
- Harness Engineering als Kerntechnik: Da KI-Agenten komplexe Aufgaben übernehmen (Agentic AI), muss das Team Sicherungen ("Harnesses") – bestehend aus Tests, Guardrails und Spezifikationen – bauen, um die Ergebnisse zu validieren (Böckeler/Fowler).
- Abstraktionssprung: KI ist eine neue Abstraktionsebene, die uns "seitwärts" führt (nicht nur nach oben wie Assembler zu Java). Wir müssen lernen, mit nicht-deterministischen Ausgaben zu arbeiten. [1]
- RAG & Evals: Für produktive KI-Systeme ist RAG (Retrieval-Augmented Generation) entscheidend, um Kontext hinzuzufügen. Evals sind das "neue Testing" für KI-Anwendungen (Nikolov). [1]
3. Technische Praktiken und menschliche Faktoren
- Kognitive Bias-Behandlung: Architekten und Entwickler müssen aktiv gegen kognitive Verzerrungen (Cognitive Biases) arbeiten, um rationale Architektur- und Implementierungsentscheidungen zu treffen. []
- Pairing und Teamkultur: Das Paarprogrammieren (Pair Programming) bleibt entscheidend, um die Qualität von KI-Code zu bewerten und Mentoring zu gewährleisten, gerade wenn die Komplexität durch KI-Tools steigt. [1]
4. Fazit
Die Kombination aus bewährten agilen Praktiken (Refactoring, CI/CD, Testing) und neuen KI-Engineering-Mustern (Harness Engineering, Evals) bildet die Basis für erfolgreiche Softwareentwicklung in den kommenden Jahren. Die Expertise der Autoren betont, dass KI den Menschen nicht ersetzt, sondern eine strenge, ingenieurmäßige Disziplin erfordert, um verlässliche Systeme zu liefern. [1]