Wie werde ich zum IDE Kung Fu-Meister?

Jede/r von uns SoftwareentwicklerInnen dürfte eine eigene Lieblingsentwicklungsumgebung haben, mit der man täglich gut und zufrieden arbeitet, über deren Funktionen man einen guten Überblick hat, und mit der die Arbeit bisher auch Spaß macht. Trotzdem wird bei den meisten von uns der Tag kommen, an dem man auf eine andere Entwicklungsumgebung wechseln muss (oder möchte). Das kann entweder deshalb der Fall sein, weil ein neues Projekt eine andere IDE als Projektstandard vorgibt, oder weil man jetzt doch mal diese andere, moderne IDE ausprobieren möchte, von der alle schwärmen und zu der einige KollegInnen schon begeistert gewechselt sind.

Dieser Artikel möchte allen, denen dieser Schritt bevorsteht, einige nützliche Tipps und Tricks an die Hand geben, die es leichter machen, schnell mit der neuen Umgebung produktiv zu werden. Entstanden sind diese Tipps aus meinen eigenen Erfahrungen, als ich vor einigen Jahren von Eclipse auf IntelliJ IDEA umgestiegen bin. Diese Best Practices haben mir damals sehr dabei geholfen (und helfen mir immer noch dabei), mich zügig umzugewöhnen, ohne dass mich die Arbeit mit der ungewohnten Umgebung frustriert.

Aller Anfang ist … deprimierend

Meinen ersten Kontakt mit IntelliJ hatte ich, als ich in ein Grails-Projekt gewechselt bin, bei dem mit IntelliJ gearbeitet wurde. IntelliJ hatte damals die bessere Groovy/Grails-Unterstützung als Eclipse, sodass diese IDE die Vorgabe für das Projekt war. Ich erinnere mich noch genau, dass der Umstieg auf die neue IDE in dem Grails-Projekt ein sehr mühsamer Prozess war. Ich wollte eigentlich mit meiner Arbeit vorankommen, musste mich aber mit einer vollkommen ungewohnten Umgebung herumschlagen, bei der nichts so funktionierte, wie ich es gewohnt war. Die Tastenkürzel waren anders, die Bedienkonzepte unterschieden sich fundamental, die Projektkonfiguration sah anders aus und so weiter. Mir kam die Arbeit vor, wie ein Dauerlauf mit zusammengebundenen Schnürsenkeln. Mich voll und ganz auf die neue Umgebung einzulassen, darauf hatte ich auch keine richtige Zeit und Lust, außerdem gab es da ja noch andere parallele Projekte, bei denen man wieder mit Eclipse arbeiten konnte.

Das Ende vom Lied war, dass ich nach dem Projekt wieder bei Eclipse geblieben bin.

Bis ich mich eines Tages irgendwann erneut IntelliJ zugewendet habe. Dieses Mal um einen konsequenten Komplettumstieg anzugehen, da ich Eclipse nicht mehr länger verwenden wollte. Der Grund dafür war einfach der, dass ich mit Eclipse nicht mehr wirklich zufrieden war und ich das Gefühl hatte, nicht so effektiv entwickeln zu können, wie es eigentlich möglich wäre. IntelliJ hat eine große Menge an Funktionalitäten, mit der eine sehr hohe Produktivität möglich wird.

Um nicht vor denselben Problemen zu stehen, wie bei meinem ersten Ausflug zu einer neuen IDE, musste ich eine andere Strategie anwenden, als damals. Wie ich den Umstieg gut geschafft habe und welche Erfahrungen ich dabei gemacht habe, werde ich im Folgenden beschreiben.

Zuvor aber eine Bemerkung vorweg: Natürlich lassen sich diese Tipps für den Umstieg auf jede beliebige IDE anwenden, nicht nur für IntelliJ. Da ich in meinem Fall den Umstieg auf IntelliJ vollzogen habe, fällt dieser Beitrag natürlich recht IntelliJ-lastig aus. Die Grundideen sind aber natürlich unabhängig von einer konkreten IDE anwendbar und beschränken sich nicht auf die Java IDE von JetBrains.

Ganz oder gar nicht

Der erste Punkt, der einem bewusst sein sollte, ist dass man im besten Fall komplett auf die neue IDE wechselt. Mal ein Projekt hier mit IDE X machen und dann dort wieder mit IDE Y zu arbeiten kann man machen, wenn man mal kurz in die neue Umgebung hereinschnuppern möchte. Hat man sich aber dazu entschieden umzusteigen, sollte man das auch konsequent tun.

Der Grund dafür ist einfach der, dass man mit zwei oder gar mehr IDEs in Parallelnutzung nicht so produktiv arbeiten kann, wie mit einer einzigen. Allein schon dadurch, dass jede IDE ihre eigenen Tastenkürzel hat, steht man vor dem Problem, dass man schnell durcheinanderkommt und man die falschen Shortcuts in der falschen IDE benutzt. Um sich einen Großteil der Tastenkürzel von mehr als einer IDE merken zu können, die noch dazu ja auch zwangsläufig unterschiedlich belegt sind, braucht man schon ganz besondere mentale Fähigkeiten. In den meisten Fällen wird es so enden, dass man sich auf keine der IDEs richtig einlässt und man nur den kleinsten gemeinsamen Nenner der jeweiligen Features nutzt. Produktiv wird man dadurch nicht.

Nun kann es natürlich sein, dass ein Projekt eine bestimmte IDE zwingend vorschreibt. Allerdings ist es normalerweise kein Problem, dass man mit unterschiedlichen IDEs am gleichen Projekt arbeitet — vorausgesetzt beide IDEs verwenden die gleichen Formatierungsregeln und die Projektkonfiguration liegt in einem IDE-unabhängigen Format (Maven, Gradle, etc.) vor. Eine bestimmte IDE vorzuschreiben, ist also bei einem vernünftigen Projekt-Setup unnötig und wirkt sich nur negativ auf die Entwicklerproduktivität und -zufriedenheit aus.

Iiiiih, eine Maus!

Möchte man wirklich produktiv arbeiten, dann geht das nur, wenn man seine ganze Konzentration auf das Schreiben von Code ausrichten kann — und wenn dabei die IDE möglichst viel der notwendigen Tipparbeit übernimmt. Je mehr Energie man dazu aufwenden muss, die IDE selbst zu steuern und in der Codebasis zu navigieren, desto behäbiger geht die Arbeit voran und desto unproduktiver ist man am Ende.

Aus diesem Grund kommt man nicht daran vorbei, seine Computermaus in die Verbannung zu schicken. Das Ziel muss es sein, die IDE weitestgehend ohne Verwendung der Maus zu bedienen. Alteingesessene vi oder Emacs-Profis wissen, wovon ich rede. Jeder Griff zur Maus kostet Zeit. Bis man die gewünschte Option dann mit dem Mauszeiger getroffen hat, vergeht weitere Zeit, und dann muss man wieder etwas weitere Zeit aufwenden, um mit den Fingern zur Tastatur zurückzufinden. Eine Tastenkombination ist hingegen schnell gedrückt und man kann sofort weiterarbeiten.

Ein Trick, den man beim Programmieren anwenden kann, um möglichst wenig dazu versucht zu sein, die Maus zu benutzen, ist dass man diese einfach auf den Rücken legt. Jedes Mal, wenn man dann nach ihr greift, wird man daran erinnert, dass man gerade etwas Verbotenes tut — und man bekommt hoffentlich ein schlechtes Gewissen.

Die Steuerung einer IDE nur mit Tastenkombinationen funktioniert natürlich nur insoweit, wie das auch von der IDE unterstützt wird. Es empfiehlt sich daher im Sinne der Produktivität auf eine IDE zu wechseln, die ein mausfreies Arbeiten möglichst durchgehend unterstützt. IntelliJ ist in dieser Hinsicht sehr zu empfehlen, da man diese IDE fast ausschließlich mit der Tastatur bedienen kann.

Hilfsmittel

Was kann man am Anfang tun, um den Lernprozess weg von der Maus, hin zu Tastenkürzeln zu unterstützen? Dafür gibt es einige Hilfsmittel, die man sich einrichten kann und die einem dabei helfen, sich die wichtigsten Tastenkürzel einzuprägen. Zum einen gibt es Plugins, die einen auf diesem Weg unterstützen. Zum anderen bieten IDEs auch eingebaute Hilfsmittel dafür an.

Man kann sich sogenannte Key Promoter Plugins installieren, die jedes Mal, wenn man eine Aktion mit der Maus ausführt, die dazugehörige Tastenkombination in einem Popup anzeigen. Es wird einem damit immer vor Augen geführt, wie man diese Aktion hätte schneller durchführen können.

Für IntelliJ gibt es zwei empfehlenswerte Key Promoter Plugins: Key Promoter X und Presentation Assistant. Beide zeigen die Tastenkürzel der ausgeführten Aktionen in einem Popup an. Während Key Promoter X nur aktiv wird, wenn man die Maus benutzt, zeigt der Presentation Assistant immer jede Aktion an, auch wenn man schon das Tastenkürzel verwendet. Das ist, wie der Name schon andeutet, besonders hilfreich bei Präsentationen.

Für Eclipse gibt es das MouseFeed Plugin, das ebenfalls Tastenkürzel für Mausinteraktionen anzeigt.

Einen Schritt weiter kann man mit dem Force Shortcut Plugin für IntelliJ gehen. Dieses Plugin verhindert das Ausführen von Aktionen mit der Maus komplett und zeigt statt dessen die dazugehörige Tastenkombination an, die man dann drücken muss.

In IntelliJ kann man zum Üben auch den Distraction Free Mode (Alt + D) einschalten, der alle nicht notwendigen Bildschirmelemente ausblendet, sodass man nur den Code sieht und größtenteils auf Tastenkürzel angewiesen ist. Dieser Modus ist in der Standardinstallation von IntelliJ vorhanden.

Ein weiteres Hilfsmittel von IntelliJ ist der Productivity Guide (Help -> Productivity Guide). Dieser listet alle Features von IntelliJ in einer Tabelle auf und zeigt an, wie oft und wann man eine bestimmte Funktion das letzte Mal verwendet hat. Zusätzlich kann man eines der Features in der Auflistung auswählen und bekommt dann eine kurze Beschreibung dazu angezeigt (inklusive Tastenkürzel, falls vorhanden). Besonders interessant an dieser Liste ist der Überblick über alle Funktionen, die man noch nie verwendet hat. Diese sollte man sich anschauen.

Neue IDE, neue Keymap

Eine Frage, die häufig beim Umstieg auf eine neue IDE gestellt wird, ist ob man sich für den Übergang die Keymap der gewohnten IDE in der neuen Umgebung einrichten soll, sodass man zum Beispiel die Tastenkürzel von Eclipse in IntelliJ nutzen kann oder umgekehrt.

Dies sollte man tunlichst vermeiden! Man kann das höchstens dann machen, wenn man nur temporär auf die andere IDE wechselt und man weiß, dass man bald wieder mit der gewohnten Umgebung arbeiten wird.

Möchte man komplett wechseln, dann muss man sich auch auf die neuen Bedienkonzepte einlassen. Dazu gehört, dass man die vorgegebenen Tastenkombinationen benutzt. Diese sind zumeist nach einem bestimmten, durchdachten System aufgebaut.

Dazu ein Beispiel: In IntelliJ kann man mit Strg + N eine Klasse finden und öffnen. Solche Basisfunktionen können mit zusätzlichen Modifier Keys immer weiter modifiziert werden, sodass man über eine Reihe von ähnlichen Shortcuts ähnliche Funktionen erreichen kann. Das heißt, mit Strg + Shift + N findet man eine beliebige Datei und mit Strg + Shift + Alt + N findet man ein Symbol (Methoden, Variablen, etc.). Da verschiedene IDEs unterschiedliche Funktionalitäten haben, die nicht zwingend deckungsgleich sind, würde man dieses System zerstören, wenn man fremde Shortcuts benutzt. Verwendet man hier zum Beispiel die Tastenkürzel von Eclipse (Strg + Shift + T zum Klassenöffnen und Strg + Shift + R zum Öffnen von Dateien, eine Symbolsuche gibt es nicht), hat man kein einheitliches System mehr und man macht sich die IntelliJ-Shortcuts für Go to Test (Strg + Shift + T) und Replace in Path (Strg + Shift + R) kaputt, für die man dann wiederum eigene, möglichst konfliktfreie Tastenkürzel erfinden muss. Das Ganze endet damit, dass man sich eine Tastenbelegung einprägt, die auf keine IDE so richtig passt.

Die PostIt-Methode

Die schiere Menge von Tastenkürzeln, die eine IDE anbietet, ist überwältigend. Man muss sich nicht zwingend jede einzelne davon merken. Aber für eine effiziente Arbeit sollte ein Großteil der häufig verwendeten Funktionen über die Tastatur gesteuert werden. Wie schafft man es nun am besten, sich die vielen Kürzel einzuprägen?

Ein Trick, den ich dazu erfolgreich anwende, ist die PostIt-Methode. Ich schreibe mir dazu ein, zwei wichtige Tastenkürzel und ihre Funktion auf einen PostIt-Zettel und klebe diesen an meinen Monitor. In den nächsten Tagen versuche ich dann, diese Funktion so oft wie möglich zu benutzen und sie ausschließlich über die Tastenkombination aufzurufen. Das hilft mir dabei, mir Tastenkombinationen einzuprägen, aber erinnert mich auch ständig daran, dass es eine bestimmte Funktion überhaupt gibt. Irgendwann ist mir das Tastenkürzel dann soweit in Fleisch und Blut übergegangen, dass ich den PostIt-Zettel entfernen und einen neuen ankleben kann.

Jeden Tag was Neues lernen: Tip-of-the-Day, Release Notes, Twitter, Blogs und Videos

Wichtig ist, dass man nicht stehen bleibt. Um weiter effizient mit einer IDE arbeiten zu können, muss man seine Kenntnisse immer auf dem Laufenden halten. Wenn man seine IDE nur wie einen besseren Texteditor verwendet, macht man etwas falsch.

Aus diesem Grund ist es empfehlenswert, sich auf allen möglichen Kanälen regelmäßig über Neuigkeiten oder Features, die einem bis dato noch nicht bekannt waren, zu informieren. Ganz oft lernt man dadurch, dass man Dinge, die man bisher sehr umständlich und zeitaufwändig gelöst hat, mit bestimmten Features der IDE eigentlich ganz einfach und schnell umsetzen kann.

Welche Quellen gäbe es da? Die einfachste Quelle ist die Tip-of-the-Day-Funktionalität der IDE. Hier lohnt es sich tatsächlich, diese nicht sofort unbesehen wegzuklicken, sondern sich eine Minute Zeit zu nehmen und sich jeden Tipp kurz anzusehen und einmal sacken zu lassen. Über diese Funktion habe ich selber schon einige Funktionen meiner IDE kennengelernt, die mir unheimlich viel Zeit sparen.

Daneben sollte man sich die Zeit nehmen, die Release Notes jeder neuen Version in Ruhe durchzulesen und die neuen Features auch mal auszuprobieren. Oftmals gibt es hier neues Material für weitere PostIt-Zettel mit Tastenkürzeln.

Weitere Kanäle sind Twitter, YouTube und die jeweiligen Blogs der IDE Hersteller.

Auf Twitter lohnt es sich, den offiziellen Accounts zu folgen, also Eclipse Java IDE für Eclipse und IntelliJ IDEA für IntelliJ. Daneben gibt es aber auch eine ganze Reihe von Einzelpersonen, die intensiv über IDE-relevante Themen twittern und denen man folgen kann, um sich auf dem Laufenden zu halten.

Auf YouTube gibt es sehr viel Videomaterial zu finden, das einem den Einstieg in eine neue IDE erleichtert oder Features, die man bisher noch nicht kannte, anschaulich vorführt. Für IntelliJ ist da der offizielle Kanal von JetBrains zu empfehlen. Als guten Einstieg in IntelliJ IDEA gibt es das interessante Video von Yann Cébron “IntelliJ IDEA Trickkiste – Ein Entwickler packt aus”.

Zu guter Letzt sollte man natürlich auch regelmäßig den Blogs der IDE Hersteller einen Besuch abstatten. Hier findet man viele interessante Artikel über neue Funktionen oder Tipps, wie man bestehende Funktionalität sinnvoll einsetzt.

Fazit

Der Umstieg auf eine neue Programmierumgebung kostet Zeit und Überwindung. Diese Zeit sollte man sich unbedingt nehmen, um seine persönliche Produktivität steigern zu können und Frust bei der Arbeit zu vermeiden. Die beschriebenen Tipps und Tricks können dabei helfen.

Wichtig ist, dass man nie damit aufhört, zu lernen und neugierig zu sein. Wenn die bisher kennengelernten Funktionen der IDE in Fleisch und Blut übergegangen sind, darf man nicht stehen bleiben. Dann ist es an der Zeit, sich die nächsten Features anzuschauen und zu verinnerlichen. Das wiederholt man, bis man auch das obskurste Nebenfeature zumindest kennt und im besten Fall einsetzen kann (bei IntelliJ zum Beispiel Structural Search and Replace, die Unterstützung von Emmet, unterschiedliche Einfärbung von Scopes, usw.)

Am Ende bleibt festzuhalten, dass man nur dann wirklich produktiv werden kann, wenn man auch die Möglichkeiten zur Produktivitätssteigerung nutzt. Dazu muss man sie aber kennen. Dazu ein Beispiel: möchte man einen if-Block schreiben, kann man den natürlich komplett eintippen, mit Sonderzeichen und allem drum und dran. Man kann sich den if-Block aber auch generieren lassen, indem man if und Strg + Shift + Enter eingibt. Oder die Postfix Completion .if verwendet.

Short URL for this post: https://wp.me/p4nxik-31C
Roland Krüger

About Roland Krüger

Software Engineer at Orientation in Objects GmbH. Find me on Google+, follow me on Twitter.
This entry was posted in Did you know? and tagged , , . Bookmark the permalink.

Leave a Reply