Desarrollo centrado en tareas en Eclipse con Mylyn 2009
1. Desarrollo centrado
en tareas en Eclipse con Mylyn
Integración de Eclipse, Bugzilla y Subversion
sidelab
Software & Integrated
Development Environments Lab
Mylyn
Francisco Gortázar Bellas - Micael Gallego Carrillo
Noviembre 2009
http://www.gavab.es/wiki/tallermylyn
2. 2
Desarrollo centrado en tareas
en Eclipse con Mylyn
Introducción a Eclipse y Mylyn
Gestión de Tareas
Integración con gestores de tareas/bugs
Interfaz centrado en tareas (Task Focused Interface)
Cambios en el código asociados a las tareas (Change
Sets)
Tasktop
Conclusiones
3. 3
Desarrollo centrado en tareas
en Eclipse con Mylyn
Introducción a Eclipse y Mylyn
Gestión de Tareas
Integración con gestores de tareas/bugs
Interfaz centrado en tareas (Task Focused Interface)
Cambios en el código asociados a las tareas (Change
Sets)
Tasktop
Conclusiones
4. 4
Introducción
Eclipse es una fundación de software libre
Licencia Eclipse Public License (similar a la Mozilla
Public License)
La fundación mantiene muchos proyectos
Framework de desarrollo de aplicaciones con interfaz de usuario en
Java
RCP, JFace, SWT
Eclipse Tools:
Jetty: Servidor Web
BIRT: Sistema de generación de informes
Eclipse Link (Implementación de referencia de JPA 2)
Equinox (Implementación de OSGi)
http://www.eclipse.org
5. 5
Introducción
Entorno de desarrollo integrado Eclipse (IDE)
Multiplataforma (Linux, Windows, Solaris, …)
Multilenguaje (Java, C/C++, Cobol, PHP,
JavaScript, Pascal, Ruby...)
Ampliable mediante plugins
Desarrollo en equipo
Sistemas de control de versiones
Subversion, CVS, Git, Mercurial...
Desarrollo colaborativo
Eclipse Communication Framework, Saros
9. 9
Introducción
Mylyn
Plugin de Eclipse para gestionar tareas
Tiene un gestor de tareas local
Se puede conectar a gestores de tareas remotos
Bugzilla, JIRA, Trac, …
Tiene un editor avanzado de tareas
Task Focused Interface: Oculta los elementos
que no son necesarios para la tarea “activa”
http://www.eclipse.org/mylyn
10. 10
Desarrollo centrado en tareas
en Eclipse con Mylyn
Introducción a Eclipse y Mylyn
Gestión de Tareas
Integración con gestores de tareas/bugs
Interfaz centrado en tareas (Task Focused Interface)
Cambios en el código asociados a las tareas (Change
Sets)
Tasktop
Conclusiones
11. 11
Gestión de Tareas
Añadir tarea
Vista por categorías o
planificación
Búsqueda de tareas
Iconos, colores y
estilos para mostrar
el estado de la tarea
12. 12
Gestión de Tareas
Leyenda de los Iconos,
colores y estilos para
mostrar el estado de la
tarea
13. 13
Gestión de Tareas
Editor de tareas
Descripción
Prioridad
Estado
Planificada
para...
Fecha de
finalización
Notas/Comenta
rios
14. 14
Gestión de tareas
Gestión de la
planificación
Tareas
terminadas frente
a las planificadas
Modo “trabajo
semanal”
15. 15
Desarrollo centrado en tareas
en Eclipse con Mylyn
Introducción a Eclipse y Mylyn
Gestión de Tareas
Integración con gestores de tareas/bugs
Interfaz centrado en tareas (Task Focused Interface)
Cambios en el código asociados a las tareas (Change
Sets)
Tasktop
Conclusiones
16. 16
Integración con gestores de tareas
Mylyn puede conectarse a gestores de
tareas/bugs/tickets
Bugzilla 3.4
JIRA
Trac
Mantis
Sourceforge, Google code...
Gmail & Google Calendar (Comercial)
18. 18
Integración con gestores de tareas
Creación de tareas en gestores
La creación de tareas en un gestor remoto es
similar que las tareas locales salvo que hay
campos adicionales
¿A quién se asigna la tarea?
Campos específicos del gestor de tareas
Comentarios
Adjuntos
...
20. 20
Integración con gestores de tareas
Consultas (Queries) en un gestor de tareas
Cuando se usa un gestor hay múltiples usuarios y
cualquier puede crear, comentar y hacer el trabajo indicado
en una tarea
En Mylyn muestra sólo aquellas tareas/bugs que cumplan
unos determinados criterios especificados en las consultas
Hay que hacer consultas al gestor con algunos criterios
específicos, por ejemplo...
Las tareas que tengo asignadas para realizar yo
Bugs que tengo interés en que se resuelvan
Tareas de gente a la que superviso/ayudo
22. 22
Desarrollo centrado en tareas
en Eclipse con Mylyn
Introducción a Eclipse y Mylyn
Gestión de Tareas
Integración con gestores de tareas/bugs
Interfaz centrado en tareas (Task Focused Interface)
Cambios en el código asociados a las tareas (Change
Sets)
Tasktop
Conclusiones
23. 23
Interfaz centrado en tareas
Mylyn no es sólo una interfaz a un Bugzilla
integrada en Eclipse...
Si le decimos la tarea que estamos
realizando, Mylyn nos puede ayudar a:
Puede medir el tiempo empleado en la tarea (sólo
en la versión comercial)
Mostrarnos en el interfaz sólo aquellos
“elementos” que son relevantes para la tarea
actual → Task Focused Interface
24. 24
Interfaz centrado en tareas
El software cada vez es más grande y tiene multitud de
elementos
Decenas de proyectos
Cientos de clases por proyecto
Decenas de métodos por clase
…
La mayor parte de los elementos no son relevantes en
la “tarea actual”
Los elementos relevantes a una tarea se denominan
“contexto” de la tarea
26. 26
Interfaz centrado en tareas
Mylyn filtra (oculta) los elementos que no son
relevantes para la tarea actual
Package explorer
Activa/Desactiva
el filtrado
27. 27
Interfaz centrado en tareas
Mylyn filtra (oculta) los elementos que no son
relevantes para la tarea actual
Editor
Colapsa los métodos
no relevantes
Activa/Desactiva
el filtrado
28. 28
Interfaz centrado en tareas
Mylyn filtra (oculta) los elementos que no son
relevantes para la tarea actual
Búsqueda de clases/interfaces (Ctrl+Shift+T)
Muestra primero las clases/interfaces relevantes para la
tarea actual
Autocompletar (Ctrl+Espacio)
Muesta primero los métodos/Clases relevantes para la tarea
actual
29. 29
Interfaz centrado en tareas
¿Cómo sabe Mylyn el contexto de una tarea?
Por los ficheros que abres en el editor
Si pulsamos Alt+Shift+Click en el Package Explorer se deshabilita
temporalmente el filtrado para poder abrir nuevos ficheros que no
estaban en el contexto
Por los métodos/atributos que revisas o visitas (haciendo click
en ellos)
Por los métodos o atributos que implementas o modificas
Si Mylyn detecta que hace tiempo que no visitas un
elemento de interés... considera que ya no es de interés
y por tanto lo oculta
30. 30
Interfaz centrado en tareas
Para activar una tarea basta con pulsar un botón en la
vista de tareas
Si cambiamos de tarea “activa” se muestra el contexto
de la nueva tarea activa y se guarda el contexto de la
tarea anterior (para recuperarlo si vuelve a estar
activa)
Botón que activa
una tarea
31. 31
Interfaz centrado en tareas
Como cada tarea guarda su contexto, es mucho
más fácil “centrarse” cuando cambiamos de
tarea
No tenemos que recordar las clases/métodos
relevantes para una tarea porque Mylyn las
guarda
No tenemos que buscar por todo el proyecto
porque los elementos no relevantes no se
muestran, esto reduce el tiempo de desarrollo
32. 32
Interfaz centrado en tareas
Para facilitar el trabajo
en equipo se puede
adjuntar el contexto a
una tarea remota
Otros desarrolladores
pueden focalizar el
trabajo en la tarea
aprovechando el
contexto de otro
usuario
33. 33
Desarrollo centrado en tareas
en Eclipse con Mylyn
Introducción a Eclipse y Mylyn
Gestión de Tareas
Integración con gestores de tareas/bugs
Interfaz centrado en tareas (Task Focused Interface)
Cambios en el código asociados a tareas (Change
Sets)
Tasktop
Conclusiones
34. 34
Cambios en el código asociados a tareas
En un desarrollo en equipo es una buena práctica
“asociar” los commits a tareas/bugs en el gestor de tareas
Permite a los demás desarrolladores conocer la
motivación y los comentarios de cada cambio en el
código
Habitualmente la asociación se hace manualmente
Eligiendo manualmente los ficheros que están involucrados en
la tarea/bug
Poniendo a mano un comentario en el commit que indica la
tarea/bug que motiva ese commit
35. 35
Cambios en el código asociados a tareas
La asociación manual es propensa a errores
Si no seleccionamos adecuadamente los ficheros
podemos “romper” la compilación en el repositorio
No incluimos todos los ficheros que hemos modificado/creado
Incluimos cambios que pertenecen a otras tareas/bugs que
están sin terminar
Hay que “recordar” el código de tarea en la que estamos
trabajando
Hay que “recordar” el formato exacto del comentario
36. 36
Cambios en el código asociados a tareas
Mylyn sabe el contexto de una tarea y puede
ayudarnos en los commits
Agrupa los cambios por tareas
Vista de
sincronización de
Eclipse en la que se
seleccionan los
ficheros que forman
parte del commit
37. 37
Cambios en el código asociados a tareas
Crea el comentario del
commit automáticamente
con el número de
tarea/bug
El formato es
configurable
38. 38
Cambios en el código asociados a
tareas
Comentarios con referencia al bug
39. 39
Cambios en el código asociados a tareas
Con herramientas externas podemos
cambiar el estado de la tarea/bug con el
comentario del commit
Habitualmente se configura un hook en
Subversion que se comunica con el gestor de
tareas/bugs y cambia el estado
Trac y Subversion: trac-post-commit-hook
Bugzilla y otros: Scmbug
40. 40
Desarrollo centrado en tareas
en Eclipse con Mylyn
Introducción a Eclipse y Mylyn
Gestión de Tareas
Integración con gestores de tareas/bugs
Interfaz centrado en tareas (Task Focused Interface)
Cambios en el código asociados a tareas (Change Sets)
Tasktop
Conclusiones
41. 41
Tasktop
Versión comercial de Mylyn que
incorpora nuevas funcionalidades
Conectores para repositorios de bugs
Gestión del tiempo dedicado a cada tarea
Considera el contexto de una tarea lo que ocurre
fuera de Eclipse
Documentos abiertos
Páginas visitadas en el navegador
Integra las tareas con Google Calendar o Outlook
Crea tareas desde correos electrónicos
42. 42
Desarrollo centrado en tareas
en Eclipse con Mylyn
Introducción a Eclipse y Mylyn
Gestión de Tareas
Integración con gestores de tareas/bugs
Interfaz centrado en tareas (Task Focused Interface)
Cambios en el código asociados a tareas (Change Sets)
Tasktop
Conclusiones
43. 43
Conclusiones
Mylyn integra Bugzilla en Eclipse
Integra Bugzilla con Subversion, facilitando
la asociación de commits a tareas
Con el task focused interface
Se reduce el tiempo dedicado a “buscar”
No hay que acordarse del contexto de una tarea
Permite compartir el contexto con otros
44. Desarrollo centrado
en tareas en Eclipse con Mylyn
Integración de Eclipse, Bugzilla y Subversion
sidelab
Software & Integrated
Development Environments Lab
Mylyn
Francisco Gortázar Bellas - Micael Gallego Carrillo
Noviembre 2009
http://www.gavab.es/wiki/tallermylyn