Warum gute Kommunikation in beiden Welten zählt
In den letzten Monaten habe ich gemerkt: Wer saubere Jira-Tickets schreiben kann, hat auch Vorteile im Umgang mit AI-Agents wie Gemini-CLI, JetBrains AI oder ChatGPT. Klingt erstmal komisch – ist aber logisch. Denn am Ende des Tages geht es in beiden Fällen um das Gleiche: klare Kommunikation.
Jira-Ticket schreiben: Was gehört rein?
Ein Ticket ist nicht einfach nur ein To-do. Es ist eine handlungsfähige Anweisung an jemanden im Team. Damit es wirklich „ready“ ist, braucht es bestimmte Bestandteile. Zunächst sollte es einen prägnanten Titel geben, der die Aufgabe auf den Punkt bringt – beispielsweise „Implementiere User-Login mit JWT“. Danach folgt eine Beschreibung des Ziels oder Zwecks: Warum ist die Aufgabe wichtig und was soll damit erreicht werden? Zusätzlich ist es hilfreich, Kontext bereitzustellen, etwa Links zu Architektur-Dokumentationen, Business-Entscheidungen oder verwandten Tickets.
Ein gutes Ticket enthält außerdem klare Akzeptanzkriterien, die definieren, wann die Aufgabe als erledigt gilt. Ebenso gehören technische Details hinein, also welche Module oder Bibliotheken betroffen sind und angepasst werden müssen. Constraints wie Performance-Limits, Sicherheitsanforderungen oder bestimmte Architekturvorgaben dürfen ebenfalls nicht fehlen. Abgerundet wird das Ganze durch Beispiele, zum Beispiel konkrete Input- und Output-Werte, User Stories oder Skizzen, sowie durch Referenzen auf Dokumentationen, Guidelines oder APIs. Wenn ein Ticket so aufgebaut ist, kann es auch ein Junior-Entwickler umsetzen, ohne zehnmal nachzufragen.
Praxis-Anekdote: Ich erinnere mich noch an ein Ticket, das ich vor Jahren an einen neuen Kollegen geschrieben habe. Ich dachte, die Aufgabe sei selbsterklärend – aber ohne klare Akzeptanzkriterien hat er einen halben Tag damit verbracht, ein Feature zu bauen, das komplett an der Anforderung vorbeiging. Seitdem schreibe ich in jedes Ticket, woran man erkennt, dass es „fertig“ ist. Das spart Zeit und Nerven.
AI-Prompt schreiben: Fast das Gleiche
Das Lustige ist: Ein guter Prompt für eine AI braucht nahezu die gleichen Elemente. Nur dass man hier statt mit Menschen mit einer Maschine kommuniziert. Diese versteht nichts zwischen den Zeilen, also muss man noch klarer und expliziter sein.
Ein Prompt könnte zum Beispiel mit einem kurzen Titel starten: „Schreibe eine Python-Funktion zur JWT-Validierung.“ Danach folgt die Erläuterung des Zwecks, etwa: „Die Funktion wird im Auth-Flow eines FastAPI-Backends genutzt.“ Um die AI nicht im Dunkeln zu lassen, sollte man auch den Kontext beschreiben, zum Beispiel: „Wir nutzen fastapi, pyjwt und haben bereits ein User-Model.“
Genauso wichtig sind Akzeptanzkriterien, etwa: „Die Funktion soll ein JWT validieren und den User zurückgeben, oder eine Exception werfen.“ Bei den technischen Details kann man spezifizieren, welche Bibliothek genau eingesetzt werden soll, etwa: „Verwende bitte pyjwt.decode und unser Secret aus settings.py. Kein anderes JWT-Paket!“ Constraints dürfen nicht fehlen, zum Beispiel: „Muss synchron laufen, da es im Request-Lifecycle genutzt wird.“ Schließlich helfen konkrete Beispiele – wie Input-Token und erwarteter Output – sowie Links zu relevanten Dokumentationen wie der PyJWT-Doku. Im Prinzip ist das ein Jira-Ticket, nur dass der Empfänger diesmal ein AI-Agent ist.
Praxis-Anekdote: Neulich habe ich einem AI-Agenten genau so einen Prompt gegeben. Ich war in Eile und habe die Constraint „synchron“ weggelassen. Was kam zurück? Eine perfekt funktionierende, aber komplett asynchrone Implementierung. Für mein Projekt unbrauchbar. Genau dieser Moment hat mir gezeigt: Ein Prompt ohne vollständige Infos ist wie ein Ticket ohne DoR – das Ergebnis ist selten das, was man wirklich braucht.
Unterschiede: Mensch vs. Maschine
Natürlich gibt es Unterschiede. Menschen haben oft implizites Wissen über Teamkonventionen und können Dinge zwischen den Zeilen verstehen. Eine AI kennt nur das, was man ihr explizit mitteilt. Auch die Feedback-Schleife läuft anders: Mit einem Junior-Entwickler kann ich direkt reden und Fragen beantworten, während ich bei einer AI iterativ über Prompts verfeinern muss. Außerdem ist die Detailtiefe bei AI oft höher, weil sie keine impliziten Kontexte versteht.
Praxis-Anekdote: Ich hatte mal eine Situation, in der ein Junior-Entwickler einfach kurz an meinem Schreibtisch stand und fragte: „Meinst du jetzt wirklich die neue API oder die alte?“ – Problem sofort geklärt. Bei einer AI muss ich diesen Kontext von vornherein im Prompt mitliefern, sonst produziert sie Ergebnisse, die mich später doppelt Arbeit kosten.
Aber die Basis ist die gleiche: klare, strukturierte Kommunikation.
Mein Fazit
Ja, man kann es so sagen: Wer gute Jira-Tickets nach Definition of Ready schreiben kann, schreibt auch gute AI-Prompts. Denn beide verlangen Klarheit statt vager Ansagen. Sie verlangen Kontext und Ziel statt eines bloßen „mach mal“. Sie profitieren von Struktur und Nachvollziehbarkeit. Und sie brauchen ein gemeinsames Verständnis, wann etwas wirklich „fertig“ ist.
Für mich bedeutet das: Prompt Engineering ist nichts Exotisches. Es ist einfach die Weiterentwicklung einer Fähigkeit, die wir als Senior Devs sowieso jeden Tag nutzen – nämlich Aufgaben so zu formulieren, dass andere sie umsetzen können. Und ganz ehrlich: Wenn ich es schaffe, dass ein Junior nach einem Ticket sofort loslegen kann, dann kann auch eine AI ziemlich gute Ergebnisse liefern.
Praxis-Anekdote: Mittlerweile nutze ich dieselbe innere Checkliste für beides. Wenn ich ein Ticket schreibe, frage ich mich: Könnte auch eine AI damit etwas anfangen? Und wenn ich einen Prompt schreibe, frage ich mich: Könnte auch ein Junior-Dev das verstehen? Diese Haltung sorgt dafür, dass meine Kommunikation klarer wird – egal, ob ich mit Menschen oder Maschinen zusammenarbeite.