Eclipse und Mylyn – Task-Focussed Programming

Oft ist es so, dass man zahlreiche Projekte gleichzeitig bearbeitet, oder zu einem Projekt einfach unzählige Komponenten gehören. Im Project-Explorer wird es dann sehr schnell unübersichtlich. Die verschiedenen Dateien, welche zur Bearbeitung eines Problems bzw. einer neuen Aufgabe geöffnet werden müssen befinden sich dann oft nicht mehr auf einer Seite, sondern sind nur noch durch Scrollen zu erreichen. So ist es durchaus normal, dass man ständig jene Dateien sucht, welche man jetzt bearbeiten möchte.

Den erfahrenen Programmierer stört das üblicherweise nicht, zumal er (meist) auch genau weiß, wo sich welche Dateien befinden – man könnte glatt meinen, dass hier von Suchen nicht die Rede sein kann. Dennoch, das Scrollen bleibt, und man muss immer noch kurz einen Blick auf die Projekt- und Verzeichnisnamen werfen, um die gewünschte Datei zu öffnen.

Ein anderes Problem stellen Bug- oder Issue-Tracker dar: Da sie meist als Web-Applikationen implementiert sind, muss man die IDE verlassen, um sich der Pflege der dort eingetragenen Tickets zu widmen zu können. Bei der Verwendung von Subversion kann man zwar beispielsweise Tickets automatisch schließen, wenn man ein Commit in der IDE vornimmt (bzw. allgemein den Status eines Tickets ändern), jedoch bleibt es üblicherweise nicht aus, dass man die IDE verlassen muss, wenn man Details eines Tickets bearbeiten will.

Beides, das Suchen nach Dateien, wie auch das Bearbeiten von Aufgaben in einem externen Editor, führt dazu, dass der Arbeitsfluss gestört wird. Und an dieser Stelle kommt Mylyn ins Spiel. Mylyn ist im wesentlichen nur ein Client für verschiedene Ticket-Systeme, welcher als Plugin in Eclipse integriert ist. Dies ermöglicht es, beim Bearbeiten oder Betrachten der Tickets innerhalb der IDE zu bleiben, und so nicht den Kontext wechseln zu müssen. Aber Mylyn kann sehr viel mehr.

Denn “Kontext” ist das richtige Stichwort für unser zu Begin angesprochenes Problem: Um ein Ticket (oder besser: eine Aufgabe) zu bearbeiten, benötigt man oft nur wenige Dateien. Der komplette Baum der Projekte und deren Verzeichnisse erscheinen dabei ein wenig wie das sprichwörtliche mit Kanonen nach Spatzen schießen: es ist zuviel. Die meisten Dateien sind zum Erledigen unserer aktuell anfallenden Aufgabe wahrscheinlich gar nicht notwendig.

Um sich nun auf die eigendliche Aufgabe und deren Kontext konzentrieren zu können, bietet Mylyn die Möglichkeit den Kontext einer Aufgabe zu erfassen und nur diesen darzustellen. Bevor man mit einer Aufgabe beginnt aktiviert man hierfür die Aufgabe durch einen Klick auf das entsprechende Symbol. Mylyn merkt sich von nun an, was man bearbeitet, und reduziert die Ansicht auf diese Elemente. Nicht verwendete Elemente werden ausgeblendet, häufig verwendete Dateien sogar fett dargestellt. Dateien welche nicht dargestellt werden lassen sich mittels Alt-Klick dem Kontext hinzufügen. Darüber hinaus werden beispielsweise in Auswahllisten häufig verwendete Elemente und Optionen an oberer Position dargestellt.

Insbesondere bei größeren Aufgaben, welche sich über einen längeren Zeitraum ziehen und daher beispielsweise häufiger durch kleine, dringendere Aufgaben unterbrochen werden, ist das Konzept des Aufgaben-Kontexts äußerst wertvoll. Denn wird man unterbrochen, so muss man lediglich die aktuelle Aufgabe deaktivieren, und kann sich nun der Bearbeitung der dringenderen Aufgabe zuwenden. Kehrt man anschließend zur ursprünglichen Aufgabe zurück, so muss man sich nicht erst wieder alle relevanten Dateien zusammensuchen, öffnen und die entsprechenden Codestellen suchen. Durch Aktivierung des entsprechenden Tasks stellt Mylyn automatisch den Kontext wieder her, und man kann an genau der Stelle fortfahren, an der man zuvor unterbrochen wurde. Das heißt, dass zuvor geöffnete Editoren wieder genau so hergestellt werden, wie man sie beim Deaktivieren des Tasks verlassen hat (eben auch an der richtigen Textposition), und nur die relevanten Dateien angezeigt werden, etc. – Mylyn erleichtet es also einem an dieser Stelle sich schnell wieder in eine Aufgabe einzufinden, wenn man diese unterbrechen musste.

Ein weiteres sehr nützliches Feature im Team ist die Möglichkeit den Kontext als Anhang an ein Ticket anzuhängen. Zum einen erleichtert dies natürlich einem Kollegen die Aufgabe zu verstehen, wenn er ebenfalls an dieser Aufgabe arbeiten soll. Zum anderen ist das Wiederherstellen des Kontext auch sehr hilfreich, wenn man später nachvollziehen muss was gemacht wurde, um das entsprechende Ticket umzusetzten. Zwar kann man sich auch mittels SVN anzeigen lassen, was geändert wurde – wird aber die textuelle Beschreibung zusätzlich dadurch unterstützt, dass die Ansicht der Arbeitsumgebung auf die betroffenen Elemente beschränkt wird, so ist es um einiges einfacher die Änderungen nachzuvollziehen. Ein direkter Link zu der zugrundeliegenden Aufgabe und den ggf. damit verbundenen Diskussionen oder Anmerkungen komplettieren diese Unterstützung.

Weitere Hinweise zu Mylyn: