Issue georiënteerd werken in Eclipse
Tijdens mijn werk moet ik vaak werken aan meerdere taken, of zoals wij hier vaak noemen, issues tegelijk. Een issue is geen issue zolang het niet in JIRA staat, ons issue tracking systeem. Terwijl je wacht op een antwoord van een vraag in het ene issue besluit je om alvast te gaan werken aan een ander issue. Ondertussen belt iemand op vanwege weer een ander dringend issue waar iemand anders in het team, die er vandaag niet is, aan gewerkt heeft. Een paar uur later, vlak voordat je naar huis gaat heb je in Eclipse 70 editors open en moest je je soms rot zoeken naar alle bestanden die bij bepaalde issues hoorde. Misschien is dit in de toekomst verleden tijd en schakelt Eclipse met je mee tussen elk issue en laat het alleen de meest relevante data zien. Dat kan nu met een Eclipse plugin met de naam Mylyn.
Wat is Mylyn eigenlijk?
Het is nogal moeilijk uit te leggen wat Mylyn is. Zelf spreken ze over tasks, task context, repositories en nog een aantal termen en ik heb twee artikelen over wat mogelijk is met Mylyn gelezen van IBM. Ik heb het nu een aantal dagen draaien en ik moet zeggen dat het me in ieder geval niet belemmerd heeft in mijn werk, dus dat is geen reden om het niet te proberen. Vooral als je het heel druk hebt met veel issues tegelijk dan zou ik je aanraden om het uit te proberen.
Mylyn houdt in de achtergrond bij welke elementen in Eclipse van toepassing zijn op een task (lees: issue). Om dat mogelijk te maken zit er een connector in Mylyn die Eclipse verbindt met in ons geval JIRA, zodat je makkelijk kan aangeven aan welk issue je op dat moment aan het werken bent. Voor elk element wordt er dan bijgehouden hoe belangrijk het is. Bekijk je heel kort een methode dan is het een beetje belangrijk, maak je veel aanpassingen dan is het heel erg belangrijk. Heb je iets bekeken maar kijk je er daarna helemaal niet meer na dan neemt de belangrijkheid af en verdwijnt het van de lijst.
Die lijst met relevante objecten, wat van alles kan zijn, methodes, classes, packages, todo items, compiler errors, wordt gebruikt om bepaalde views te beperken in wat ze laten zien. Zo zal je compiler error lijst alleen die errors tonen die te maken hebben met de huidige taak, al die honderden warnings worden weggelaten. Je package explorer laat niet al die andere overbodige projecten en packages en jsp’s en klassen zien. Je kan zelfs instellen dat de methodes die nog niet bij de task horen waar je nu aan werkt ingeklapt worden. Dit werkt ook voor je auto-complete, bijvoorbeeld de methodes waar je aan hebt gewerkt staan boven aan je autocomplete lijstje. Als een editor een bestand laat zien wat niet meer belangrijk genoeg is, dan wordt de editor gesloten, zo voorkom je dat je na een paar uur werken 30 editors open hebt staan. Als je nu schakelt tussen twee issues schakelt Mylyn met je mee, en sluit alle niet relevante editors en opent automatisch editors die open stonden toen je de laatste keer aan dat issue werkte. Dit is het meeste wennen, als je klaar bent met een issue moet je naar een ander issue schakelen of het huidige issue non actief maken anders gaan verschillende tasks door elkaar lopen.
Even de oogkleppen af
Het is natuurlijk beperkend als je alle andere elementen niet kan zien, die wel van toepassing zijn op de huidige taak, maar dat je die nog niet hebt bekeken. Er zijn een aantal manieren om die toch te laten zien. Bijvoorbeeld ctrl-shift-T om types (klassen en interfaces) te openen, of ctrl-shift-R om resources (=bestanden) te openen. Als je met de alt knop een element aanklikt in een boom, worden alle onderliggende elementen getoond, en je kan de view weer normaal maken door een knopje in te drukken.
Terugkoppeling in JIRA
Deze informatie kan via de connector ook als een attachment in JIRA worden gezet zodat een andere programmeur die later aan het issue gaat werken kan zien welke informatie jij belangrijk vond voor dat issue. De JIRA issue editor ziet er gelikt uit in Eclipse, maar is niet helemaal functioneel. Bepaalde velden worden niet goed naar JIRA gestuurd waardoor het niet altijd lukt om issues te sluiten of commentaar te geven. Dat is makkelijk te omzeilen door de webbrowser in Eclipse te gebruiken om een issue te openen en te bewerken.
Als bonus kan Mylyn je helpen je tasks te organiseren in de werkweek of werkdag als je instelt wanneer iets gedaan moet worden en waar de deadlines liggen. Dat wordt dan ook gesynchroniseerd met JIRA. Zo kan je ook de JIRA issues in Eclipse managen en hoef je eigenlijk Eclipse niet meer uit. Dit heb ik zelf nog niet geprobeerd.
Conclusie
Ik heb nu een aantal weken met Mylyn gewerkt en vind het enorm fijn werken. Het is ideaal dat je niet 50 editors open hebt staan omdat je aan 5 verschillende issues hebt gewerkt. Als je ineens weer schakelt naar een oud issue, zorgt Mylyn er voor dat je ineens weer dat ene stukje code open staat, precies waar je gebleven was.
———————————————————————————–
Meer weten over Java-specialist Finalist IT Group?


Ik heb mylyn ook een aantal weken thuis geprobeerd en vond het nog niet volwassen genoeg. Ondanks dat ik het een heel goed concept vind was de irritatie factor hoog; onvoorspelbaar gedrag, resources bleven onvindbaar met CTRL+SHIFT+R, en mylyn gerelateerde instellingen werden gereset bij iedere eclipse start.
Wat wel positief is, is dat de mylyn integratie heel ver doorgevoerd is; spring IDE, subclipse e.d. zij allen mylyn aware.
Bjorn December 17, 2007 18:38
De Mylyn bestaat tegenwoordig ook als standalone applicaie onder de naam Tasktop. Nog steeds op Eclipse gebaseerd maar met Outlook integratie etc… Ik heb er zelf nog niet mee gewerkt maar de demo’s zijn wel indrukwekkend.
Groeten,
Benoit April 6, 2009 8:44
Jullie koppelen met Jira waar een standaard connector voor is. Wij hebben een algemene SQL connector gebouwd waarmee elke task database kan worden ontsloten. Leuk om de tasks voor klanten die een eigen issuetracker hebben gebouwd toch in Mylyn/Eclipse te hengelen.
https://bugs.eclipse.org/bugs/show_bug.cgi?id=184532
http://wiki.eclipse.org/Mylyn/Incubator/Generic_SQL_Connector
Wim Jongman May 14, 2009 21:44