Werde produktiv! Teil 1 (JIRA + Mylyn)

Welcher Softwareentwickler kennt es nicht? Man hat zig Baustellen gleichzeitig offen, arbeitet möglicherweise parallel an mehreren Projekten, die Kollegen unterbrechen den eigenen Arbeitsfluss regelmäßig mit Fragen und es raucht einem so sehr der Kopf, dass man gar nicht weiß, womit man anfangen soll. Da man immer im Sinn haben muss, was noch alles zu tun ist, kann man sich nicht mehr auf das Wesentliche - nämlich die Abarbeitung seiner Aufgaben - konzentrieren. Für jede Kleinigkeit braucht man plötzlich Stunden. Die Folge ist klar: Frustration und noch mehr Stress. In diesem Artikel möchte ich zeigen, wie mithilfe geeigneter Tools die Freude an der Arbeit und die Produktivität gesteigert werden können.

ToDo-Listen

Eine Möglichkeit Ordnung in das eigene Programmierleben zu bringen sind ToDo-Listen. Man schreibt alle Aufgaben auf eine oder mehrere Listen, priorisiert diese am besten und hat so ständig einen Überblick was noch zu tun ist. Dies befreit einen von der ständigen Last darüber nachdenken zu müssen, was noch zu tun ist. Der Effekt ist größer als man zunächst annehmen möchte, allerdings weiß jeder, der mit Programmierern zu tun hatte, dass Papier und Stift nicht die größten Freunde dieser Zunft sind, wo man doch sowieso am Computer sitzt und alles in die Tastatur hacken kann.

Aufgabenmanagement

Was liegt also näher als eine Software für das Aufgabenmanagement einzusetzen? Ich möchte im Folgenden aufzeigen wie man mithilfe geeigneter Methoden und Werkzeuge innerhalb kürzester Zeit nicht nur seine eigene Produktivität, sondern auch die eines ganzen Teams signifikant steigern kann.

Issue-Tracking

Bug-Tracking mithilfe entsprechender Webapplikationen ist schon lange gängige Praxis. Dafür gibt es etliche Tools, wie Bugzilla, Trac, Mantis oder JIRA. Während ich persönlich lange Zeit Mantis eingesetzt habe, benutze ich mittlerweile fast ausschließlich JIRA von Atlassian. JIRA gibt es für Open-Source Projekte kostenlos. Für eine 10-User-Lizenz in kommerziellen Projekten werden allerdings gerade mal 10$ fällig. Bei größeren Projekten mit mehr Usern muss man schon tiefer in die Tasche greifen. Mit seiner Stabilität, Flexibilität, Konfigurierbarkeit und Erweiterbarkeit erscheint es mir unschlagbar. Nicht umsonst wird es weltweit von den meisten wichtigen Firmen eingesetzt. Entscheidend ist aber gar nicht so sehr, welchen Bug-Tracker man einsetzt, sondern vielmehr das Wie.

Fokussierung auf die Arbeit

Lasst uns einen Blick auf die Arbeitsweise eines typischen Programmierers werfen. In der Regel steht der Programmierer unter Zeitdruck. Er hat alle möglichen Dinge gleichzeitig im Kopf. In seiner IDE sind zig Dateien offen und er wird ständig durch Kollegen in seinem Arbeitsfluss unterbrochen. Nach jeder Unterbrechnung muss er erst mal überlegen, woran er zuletzt gearbeitet und in welchen Dateien er dazu Änderungen vorgenommen hat oder noch vornehmen muss. In einem Projekt mit mehreren hundert Quelldateien wird dies schnell unübersichtlich und die ständige Suche nach den richtigen Dateien, Klassen und Methoden ist mühselig und unproduktiv.

Genau an diesem Punkt setzt das Eclipse-Projekt Mylyn an. Das Projekt selbst bezeichnet sich als task-focused interface for Eclipse. Es hilft dem Programmierer sich auf seine aktuelle Aufgabe zu konzentrieren. Das klingt etwas abstrakt und es leuchtet einem nicht sofort ein, wie das funktionieren soll. Das wird sich aber gleich ändern. Im Wesentlichen besteht Mylyn aus zwei Teilen: der Task-List mit deren Hilfe Tasks angezeigt und bearbeitet werden können und einem automatischen Kontextmanager. Was diese beiden Komponenten konkret bedeuten und wie man Mylyn mit einem Bug-Tracker verbindet, möchte ich im Folgenden erläutern.

Task List

Die Task List dient dazu Tasks nach bestimmten Filterkriterien anzuzeigen. Außerdem hat man die Möglichkeit Tasks zu schedulen, sprich festzulegen, wann welcher Task bearbeitet wird. So bekommt man eine schöne Tages- und Wochenübersicht und weiß immer ganz genau, was heute noch zu erledigen ist und was in den kommenden Tagen ansteht.

Die Tasks können in einem lokalen Repository verwaltet werden oder man verbindet Mylyn mithilfe eines Connectors mit einem Bug-Tracker. Dies hat den großen Vorteil, dass alle Tasks, die man sonst immer im Browser verwaltet hat, nun direkt in der IDE verfügbar sind. Mit einem Doppelklick auf einen Task kann man diesen öffnen und bearbeiten, Work Logs anlegen, Dateien anhängen, usw.

Über den Button Task Presentation kann man zwischen zwei Darstellungen der Tasks wählen - Categorized (Screenshot oben) oder Scheduled (links). Über einen Rechtsklick auf einen Task und dann Schedule for kann man einen Task zur Bearbeitung auf einen bestimmten Tag oder eine Woche vormerken.

Context Manager

Der Context Manager hilft dem gestressten Programmierer sich auf seine Arbeit zu fokussieren. Das funktioniert wie folgt: der Programmierer setzt seinen Fokus auf einen Task, indem er auf einen Punkt neben dem Task klickt. Alle Dateien, die er nun öffnet, landen automatisch im Kontext des ausgewählten Tasks. Dies klappt sogar bis auf Klassen- und Methodenebene herunter. Klickt man in eine Methode, wandert diese unmittelbar und automatisch in den Kontext. Man muss dazu keine Tastenkombination drücken, es genügt ein einfacher Klick. Entfernt man nun den Fokus, schließt Mylyn alle Dateien. Setzt man erneut den Fokus, werden die Dateien, so wie sie zuletzt geöffnet waren, wiederhergestellt. Außerdem bekommt der Package Manager einen Toggle-Button von Mylyn: Focus on Active Task (siehe Screenshot). Wenn dieser gedrückt ist, zeigt Eclipse nur noch die Dateien an, die im Kontext des Tasks liegen. Im Beispiel ist die Datei ManagementServiceImpl.java im Kontext. Darin befindet sich die Klasse ManagementServiceImpl - klar. Und in dieser Klasse ist die Methode getMostActiveUsers Teil des Kontexts, das bedeutet, dass man nicht nur schnell zu den gewünschten Klassen eines Tasks gelangt, sondern auch direkt zu den richtigen Methoden.

Auf den ersten Blick mag der Context Manager trivial erscheinen, er erleichtert die tägliche Programmierarbeit jedoch erheblich, da man alle zu einem Task gehörenden Klassen und Methoden in kürzester Zeit zur Hand hat. Neben lokalen Dateien und ihren Inhalten lassen sich auch zu einem Task gehörende Webseiten, wie z. B. JavaDocs, direkt mit dem Eclipse Browser ansurfen.

Bug-Tracking Integration

Richtig interessant wird Mylyn aber erst, wenn man es im Team und in Verbindung mit einem Bug-Tracker einsetzt. Eine Anleitung für die unterstützten Systeme findet man im Eclipse Wiki. Für JIRA benötigt man den Mylyn Connector: JIRA.

Soweit zu Teil 1 zum Thema "Werde produktiv!". Im zweiten Teil möchte ich die JIRA-Erweiterung Greenhopper vorstellen, das die agile Softwareentwicklung nach dem Scrum-Prinzip mit User Stories unterstützt. Man darf gespannt sein ;-)

Comments

Preview comment | Sebastian Harder Consulting

I would like to to thank you for this fantastic
read!! I definitely loved every small amount of it.

I have got you book marked to look into new things you post

Your style is so unique in

Your style is so unique in comparison to other people I have read stuff from. Thanks for posting when you have the opportunity, Guess I'll just bookmark this web site.

Hi, I'm using Firefox and for

Hi, I'm using Firefox and for some reason the fonts on your site are gigantic. All the other sites I usually browse show up normally except yours.

There are many ways to train for the project management exam, and one of the best PMP exam prep courses I've come across is the PM PrepCast. PM PrepCast review. This PMP training course has been used by thousands of people who successfully passed the PMP test after purchasing it. You can spend days reading boring project management books or you can get the PM PrepCast today!

Post new comment

Mit dem Absenden dieses Formulars, akzeptieren Sie die Datenschutzrichtlinie von Mollom.