Die rasante Entwicklung im Bereich der künstlichen Intelligenz hat auch die Welt der Softwareentwicklung nachhaltig beeinflusst. Insbesondere Coding-Agenten, die Entwickler bei der Programmiertätigkeit unterstützen, gewinnen an Bedeutung. Junie, der KI-basierte Coding-Agent von JetBrains, verspricht eine nahtlose Integration, vor allem in der beliebten IntelliJ-IDE, und setzt einen starken Fokus auf die Programmiersprache Kotlin. Im Folgenden schildere ich meine Erfahrungen mit Junie über mehrere Monate, um potenziellen Anwendern einen umfassenden Einblick zu geben. Junie positioniert sich als JetBrains’ Antwort auf etablierte Coding-Agenten wie GitHub Copilot oder Tools wie Cursor und Windsurf.
Es handelt sich dabei um ein pluginbasiertes System, das ausschließlich in IntelliJ-basierten Entwicklungsumgebungen funktioniert. Die Installation erfolgt unkompliziert über den JetBrains Marketplace, und das Tool fügt sich als separates Fenster im IDE-Interface ein. Die angebotenen Modi konzentrieren sich auf eine Unterscheidung zwischen aktivem Code-Schreiben und der rein auf Abfragen oder Beratung ausgelegten Funktionalität. Diese Trennung, in „Code“ und „Ask“ Modus aufgeteilt, bietet einen Mehrwert, denn sie schützt Entwickler davor, ungewollte Änderungen im Code vorzunehmen, wenn lediglich Rückfragen oder Überlegungen gewünscht sind. Ein besonders hervorzuhebendes Feature von Junie ist die „Brave Mode“ Option.
Dieser Modus erlaubt dem Coding-Agenten, selbstständig Befehle in der IDE-Terminalumgebung auszuführen, ohne bei jeder Aktion explizit um Zustimmung zu bitten. Dies kann den Workflow beschleunigen, ist aber auch mit einer gewissen Vorsicht zu genießen, da es prinzipiell zu riskanten Operationen kommen könnte. Bisher gab es in meinen Tests keine Probleme, doch dieser Aspekt verdeutlicht die Notwendigkeit, die Funktionen des Agents aufmerksam zu begleiten. Neben den technischen Details wirkte auf mich die Vielfalt und teilweise Unübersichtlichkeit des JetBrains KI-Produktportfolios etwas verwirrend. Während Junie klar als der Coding-Agent gekennzeichnet wird, gibt es zeitgleich den AI Assistant sowie Mellum, den firmeneigenen Large Language Model.
Die klare Abgrenzung und die jeweiligen Use-Cases sind noch nicht optimal herausgearbeitet, was neuen Anwendern den Einstieg erschweren kann. Positiv ist, dass die Preisgestaltung von Junie mit einem flachen Monatsbeitrag arbeitet, was im Markt der KI-Tools heutzutage eher ungewöhnlich und für Entwickler gut kalkulierbar ist. In der Praxis zeigt sich Junie als äußerst enthusiastisch und schnell bereit, viele Aufgaben gleichzeitig zu übernehmen. Der Ansatz, Junie eher wie einen Junior-Paarprogrammierer zu behandeln, der Stück für Stück Beistand leistet und nicht ein vollständiges Projekt am Stück übernimmt, hat sich als effektiv erwiesen. Allerdings hat Junie genau hier den Nachteil, dass es kaum möglich ist, nur einzelne Teile einer vorgeschlagenen Lösung zu übernehmen.
Wenn Junie zum Beispiel eine Testmethode allein schreiben soll, passiert es nicht selten, dass die KI gleich die gesamte Testklasse anlegt, den Produktionscode refaktoriert und sogar Abhängigkeiten aktualisiert. Für Entwickler, die präzise Eingriffe wünschen, kann das frustrierend sein. Technisch ist mir dabei aufgefallen, dass Junie manchmal auch einfache Basisaufgaben nicht immer optimal löst. Beispielsweise gab es Probleme bei der Auswahl und Einbindung von Bibliotheken wie AssertJ, was dazu führte, dass der generierte Code ohne manuelle Nachbesserung nicht kompiliert. Auch mit basalen Java-POJOs tat sich das Modell anfangs schwer und neigte zu unnötig komplexen Lösungen auf Basis von Reflexion statt simplen Konstruktionsweisen.
Hier zeigte sich ein gewisser Lernprozess, und mit wachsender Interaktion wurde Junie besser, jedoch ist ein gewisses Maß an Kontrolle und Nacharbeit für Entwickler unerlässlich. Ein weiterer kritischer Punkt war die Tatsache, dass Junie häufig Funktionen über das eigentliche Ziel hinaus ausführt. Während das unter Umständen positive Effekte wie Code-Qualitätsverbesserungen oder Aktualisierung von Abhängigkeiten haben kann, kann es gleichzeitig auch ungewollte Nebeneffekte mit sich bringen. Änderungen an Konfigurationen oder Formatierung fallen meist nicht sofort auf, was die Nachvollziehbarkeit erschwert und erhöhte Sorgfalt bei Reviews erforderlich macht. Zudem trifft Junie öfter Entscheidungen hinsichtlich Dateienbewegung oder Umbenennung, was zwar inhaltlich manchmal sinnvoll ist, aber die Versionshistorie unnötig verkompliziert.
Diese automatisch ausgeführten Refactoring-Schritte sind schwer vorhersehbar und teilweise auch schwer nachzuvollziehen. Besonders vermisse ich persönlich eine granularere Möglichkeit, Änderungsabschnitte selektiv zu akzeptieren oder abzulehnen. Während Junie am Ende einer Aufgabe eine einfache Entscheidung zwischen Annahme, Ablehnung oder nochmaligem Versuch anbietet, lassen sich einzelne Änderungen nicht differenziert bestätigen oder verwerfen. Das ist ein klarer Unterschied zu anderen Tools wie Cursor, die hier ein feineres Handling bieten. Die Empfehlung, stattdessen die IntelliJ-Commit-Übersicht zu nutzen, ist zwar nutzbar, aber für ein flüssiges und integriertes Nutzererlebnis suboptimal.
Positiv hingegen überrascht hat mich Junies „Ask“ Modus. Wenn Junie als Dialogpartner bei Konzeptfragen oder Architekturüberlegungen dient, gibt es strukturierte Antworten in Form von Markdown-Dateien, die in das Scratch-Verzeichnis des Projekts abgelegt werden. Diese Dateien sind gut lesbar, lassen sich leicht teilen und wärend der Entwicklungszeit als dokumentierte Entscheidungsbasis nutzen. Dadurch können Entscheidungen und Lösungsansätze nachvollziehbar gemacht und später wiederverwendet werden. Ein zentraler und sehr relevanter Kritikpunkt ist die Geschwindigkeit von Junie.
Im Vergleich zu anderen Coding-Agenten erlebe ich es als ausgesprochen langsam. Selbst beim Schreiben kleiner Methoden können leicht mehrere Minuten vergehen, bis der Code vollständig generiert, gebaut, getestet und validiert ist. Dieses Vorgehen entspricht zwar einer gewissen Sorgfalt und ist dem menschlichen Programmierer ähnlich, der auch erst denkt, plant und dann umsetzt und testet. Allerdings fehlt die Möglichkeit, währenddessen aktiv mitzuwirken oder zumindest parallel produktiv zu sein, da der Fokus auf das Ergebnis wartet. Für meine Arbeitsweise, bei der der Flow essenziell ist, führt die Wartezeit öfter zu Frust und Unterbrechungen.
Ich habe mich mehrfach entschieden, Junie für kleinere Aufgaben ganz auszusetzen, weil die Effizienz darunter leidet. Ebenso störend sind gelegentliche Verbindungsprobleme. Junie verliert bei offener IDE nach einiger Zeit mitunter die Verbindung zum Server, was nur durch einen kompletten Neustart der IDE behoben werden kann. Auch wenn dies ein kleines Ärgernis ist, trübt es dennoch die unterbrechungsfreie Nutzung, vor allem da moderne Entwicklerumgebungen möglichst ohne Neustarts auskommen sollten. Eine interessante Beobachtung betrifft den Umgang mit Guidelines und Vorgaben für Junie.
Aktuell herrscht in der Community eine Art Wildwuchs, und es gibt noch keinen etablierten Standard oder zentrale Sammlungen mit Einsatzempfehlungen. Die offiziellen Junie-Guidelines empfehlen zwar, der KI klare Leitplanken über sogenannte Guidelines-Dateien zu geben, doch die praktische Umsetzung bleibt den Nutzern oft selbst überlassen. Es wäre wünschenswert, wenn sich hier eine Austauschplattform entwickeln würde, denn konkrete Beispiele und Best Practices könnten den Umgang mit Junie deutlich verbessern. Als persönliche Empfehlungen nehme ich aus meiner Nutzung mit, Junie grundsätzlich durch eine Guidelines-Datei zu konfigurieren und Aufgaben zunächst im Gespräch zu gliedern, bevor einzelne Arbeitsschritte abgerufen werden. Außerdem sollte man mit Junie nie einfach pauschal Upgrades oder große Optimierungen starten lassen, sondern immer spezifizieren, was genau gewünscht ist.
Ein bewusster Wechsel zwischen „Ask“ und „Code“ Modus sorgt für bessere Kontrolle und Übersicht. Insgesamt ist Junie ein solides und innovatives Werkzeug, dessen Potential besonders für Kotlin-Entwickler mit IntelliJ-Umgebung attraktiv ist. Die Integration und der Fokus auf testgetriebene Entwicklung sind klare Pluspunkte. Allerdings zeigen sich in der Praxis noch typische Herausforderungen einer jungen KI-Anwendung – die Geschwindigkeit ist verbesserungswürdig, die granularen Steuerungsmöglichkeiten noch eingeschränkt und die manchmal unerwarteten Nebeneffekte erfordern Aufmerksamkeit. Ich freue mich darauf, wie JetBrains Junie weiterentwickelt, vor allem in puncto Performance und Workflow-Integration.
Bis dahin lohnt es sich, Junie gezielt und mit bewusster Steuerung einzusetzen, um das Beste aus der KI-Unterstützung herauszuholen. Wer bereit ist, die ein oder andere Geduld in Kauf zu nehmen und sich aktiv in den Entwicklungsprozess einzubringen, bekommt einen verständnisvollen und motivierten Coding-Partner an die Seite.