Vorwort
Als ich das erste Mal von Exact Coding gehört habe, dachte ich: „Was für ein Mist?“ Jetzt wird plötzlich so getan, als ob normale Entwickler immer und überall guten und verlässlichen Code schreiben und stets alle Regeln dafür im Kopf hätten. Und das nur, weil eine Maschine zwar allen Code der Welt „kennt“, die zugehörigen Regeln aber nicht mit ihm in Zusammenhang bringt.
Was mich zum zweiten Hingucken bewogen hat, war eine schlichte Erkenntnis: Auch eine Maschine muss an die Hand genommen werden. Ähnlich wie einem unerfahrenen oder übermüdeten Entwickler müssen ihr Kontext und klare Handlungsanweisungen gegeben werden. „Das System muss prüfen, ob alle Regeln eingehalten werden.“ — damit kann weder die Maschine noch der Mensch etwas anfangen. Der Unterschied: Ein Entwickler stoppt und fragt nach. Die Maschine macht einfach irgendetwas und erzeugt dabei Code, den niemand mehr nachvollziehen kann.
Genau dieses Spannungsfeld greift Exact Coding auf. Warum sollten wir die Erkenntnisse aus 50 Jahren Softwareentwicklung vergessen, nur weil ein LLM Code erzeugen kann? Eben nicht. Die Prinzipien, die wir entwickelt haben, um wartbaren, verlässlichen und sicheren Code zu schreiben, sind nach wie vor gültig — und aus meiner Sicht wichtiger denn je. Wir müssen diese Regeln, die gute Entwicklerinnen und Entwickler fast unbewusst anwenden, der künstlichen Intelligenz bewusst übergeben. Nur so kann sie uns wirklich von den Aufgaben befreien, die uns keine Freude machen. Dann können wir endlich das tun, was uns antreibt: Software entwickeln — nicht einfach nur coden —, die ihre Aufgaben zuverlässig, nachhaltig und sicher erfüllt. Exact Coding gibt uns dafür einen durchdachten Workflow, der — davon bin ich überzeugt — in den kommenden Jahren noch weiter wachsen wird. Ich wünsche Ihnen viel Freude beim Lesen und noch mehr beim Anwenden.
Dr. Annegret Junker
Annegret ist Chief Software Architect der codecentric AG und ist eine anerkannte Persönlichkeit in der DDD-Community – eine erfahrene Architektin, Speakerin und Autorin, deren Arbeit Theorie und praktische Anwendung im modernen Softwaredesign miteinander verbindet.