Atenção, este blog foi migrado para: http://brunopereira.org
In this interview, i’ll be talking to Robert Elves, one of the main committers from Mylyn project. Robert is a key piece in both Mylyn and Tasktop developments, and we’ll talk about these projects, Eclipse, software development process and open source software. Let’s begin!
Bruno Pereira: Robert, how did you get involved with the project? Did you have any prior contact with Eclipse plugin development?
Robert Elves: My road to Mylyn started as a grad student in the CHISEL lab at the University of Victoria. I was researching locomotion in information spaces with a focus on helping software developers. During this time I developed a prototype plug-in for Eclipse called NavTracks that used past editor navigation to recommend files related to the current file being edited.
Around this time I met Gail Murphy and Mik Kersten and learned of what was then the Mylar project, now Mylyn. Shortly after graduation I joined them in the Software Practices Lab at the University of British Columbia to work on Mylyn.
BP: Mylyn 1.0 was released independently from other projects. However version 2.0 was part of the huge Eclipse Europa release. Could you describe this experience? How was this process coordinated in order to have multiple projects releasing new versions at the same time and keeping everything compatible?
RE: With the 1.0 release of Mylyn we were already starting to see increasing download stats in the order of tens of thousands a month, and a strong early adopter community forming around the project. Hundreds of bug reports helped us harden the Mylyn to the point where it became easy enough for many Eclipse-based programmers to adopt this new task-focused way of working. Around that same time, the Eclipse Packaging Project contacted us, asking to include Mylyn in the default Eclipse downloads.
We decided that the technology was ready, agreed, and since then Mylyn has been available to all developers downloading Europa. To participate in the Europa release, projects must meet a number of maturity standards. For example, we needed to prove capable of managing an update site, handling the release schedule, and maintaining an API contract. The requirements for the next simultaneous release, Ganymede, are outlined here.
Mik lead the Mylyn project through these ‘must dos’ to Europa. We adopted the discipline required to meet Europa release chain deliverables while working at a frenetic pace to implement performance and usability objectives. Concurrently we managed to do a complete rename of the project from Mylar to Mylyn and review and accept numerous patches contributed by the community. Projects were coordinated with a lot of communication via wiki and the cross projects mailing list. To sum it up it was a great whirlwind experience and we’re looking forward to more excitement with Ganymede!
BP: From time to time I’m amazed at how Eclipse is expanding its reach. I find the Eclipse project to be a fantastic example of how to build software. With its great component model, it provides a very good platform to build on. As Mylyn makes great use of this component model, I’d like to know your opinions on that.
RE: In my opinion, and I’m sure Mik would agree, Equinox and OSGi make it easier for developers to build better software systems. The framework gives us a mechanism for explicitly separating the concerns of the problem domain into flexible contributing plug-ins. You get runtime deployment and lazy loading of your components practically for free! Without this flexibility and plug-ability, Mylyn wouldn’t exist, because we could not plug into the core Eclipse facilities that the Task-Focused Interface needs to extend. Mylyn contributes and uses a number of extension points enabling the focusing of many of the standard views in Eclipse such as the Package Explorer and Synchronize view. I’ve yet to see a tool platform as extensible as Eclipse, and Equinox/OSGI has been an amazing framework to work with.
BP: Mylyn has been growing and seeing increased adoption by Eclipse users. Along with this adoption there have been many bugs and enhancement requests opened and resolved. How do you pick the bugs and decide what’s going to make it into each release?
RE: Since the Europa release, we’ve seen increased activity in the Mylyn community including more bug reports and enhancement requests. Each report is reviewed by a Mylyn committer. It is important to us to respond in a timely manner as each represents a rough edge or new enhancement request. That said there are only four committers so we carefully triage the bug reports with respect to number of votes from the community, severity, and how each bug fits into the overall plan (See Mylyn 3.0 plan here).
BP: Here in Brazil we are seeing more and more companies starting to embrace agile methodologies and practices, with Scrum probably leading the field. I’d like you to describe your development process, and how challenging is it to make it work having a distributed team.
RE: Agile is certainly how I would describe our team although we don’t strictly adhere to any one particular methodology. We do have weekly planning meetings and constantly re-prioritize bugs based on community feedback in a way that is transparent to our user community. Mylyn itself is one of our key tools to successful collaboration. It enables sharing of task context and the incoming notification on bug reports really helps minimize inbox overload while increasing team awareness. We try to keep all design discussion on bug reports (vs. Skype or other IM chat channels) so that design decisions are available for other team members and interested parties to review asynchronously. Our system is certainly not perfect and we are always looking for ways to improve and streamline our process.
BP: Mylyn has been integrated with a lot of issue trackers, is available on a wide set of Eclipse distributions and is constantly being enhanced by user requests and feedback. I recently heard that you guys are working on a new tool called Tasktop, which is related to Mylyn. Could you provide a vision of the future for the Mylyn project, and what Tasktop will bring to users?
RE: Mylyn will continue to evolve as both a tool and focused-ui framework. Tasktop Technologies leads and supports the Mylyn project. We employ a number of the Mylyn committers, and each of our developers regularly contribute patches to Mylyn.
In the 3.0 cycle you can expect to see the same rate of usability, integration, and performance improvements that we have maintained through the Mylyn 2.0 and into the recent 2.2 release. In order to make the many improvements that show up in our New & Noteworthy documents available to the Eclipse community as soon as possible, we provide GAs of Mylyn quarterly. Some key stuff to look out for in the upcoming Mylyn 2.3 and 3.0 is major improvements to the task editor, which is a focal point of interaction for developers using Mylyn, and addition of light-weight workflow integration to reduce developer click path.
The Tasktop product extends the reach of Mylyn beyond the workspace to the operating system (currently Windows only with Mac support 1st quarter 2008). With Tasktop, your time spent in other applications such as Word or Excel is captured as part of the active task. External application windows are managed similarly to how Mylyn can manage editors within Eclipse. Additionally Tasktop synchronizes with Outlook and Google Calendars giving users an overview of their task schedule from their native calendaring applications. But the best part is that Tasktop focuses all of your web browsing activity. I can now browse the web and use web based applications all from within the Eclipse workbench with the same focus that Mylyn brings to my programming activities. Check out the site to get the beta.
BP: Closing thoughts?
RE: It is great to hear of interest in Mylyn from the Brazilian developer community! I encourage your readers to try the tool if they haven’t already. Also, feel free to help evolve Mylyn by submitting bug reports or contributing patches. We are very open to community contribution!