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

Desarrollo centrado en tareas en Eclipse con Mylyn 2009

Embed Size (px)

Citation preview

Page 1: Desarrollo centrado en tareas en Eclipse con Mylyn 2009

Desarrollo centrado en tareas en Eclipse con Mylyn

Integración de Eclipse, Bugzilla y Subversion

sidelabSoftware & Integrated Development Environments Lab

Mylyn

Francisco Gortázar Bellas - Micael Gallego Carrillo

Noviembre 2009

http://www.gavab.es/wiki/tallermylyn

Page 2: Desarrollo centrado en tareas en Eclipse con Mylyn 2009

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

Page 3: Desarrollo centrado en tareas en Eclipse con Mylyn 2009

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

Page 4: Desarrollo centrado en tareas en Eclipse con Mylyn 2009

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

Page 5: Desarrollo centrado en tareas en Eclipse con Mylyn 2009

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

Page 6: Desarrollo centrado en tareas en Eclipse con Mylyn 2009

6

Introducción

Page 7: Desarrollo centrado en tareas en Eclipse con Mylyn 2009

7

Introducción

Subversive Plugin para Subversion Commits, Updates... Checkout, Checkin... Repository

Exploring Compare

Editor Show History

www.eclipse.org/subversive

Page 8: Desarrollo centrado en tareas en Eclipse con Mylyn 2009

8

Introducción

Subversive Show History

Page 9: Desarrollo centrado en tareas en Eclipse con Mylyn 2009

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

Page 10: Desarrollo centrado en tareas en Eclipse con Mylyn 2009

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

Page 11: Desarrollo centrado en tareas en Eclipse con Mylyn 2009

11

Gestión de Tareas

Añadir tarea Vista por categorías o

planificación Búsqueda de tareas Iconos, colores y

estilos para mostrarel estado de la tarea

Page 12: Desarrollo centrado en tareas en Eclipse con Mylyn 2009

12

Gestión de Tareas

Leyenda de los Iconos, colores y estilos para mostrar el estado de la tarea

Page 13: Desarrollo centrado en tareas en Eclipse con Mylyn 2009

13

Gestión de Tareas

Editor de tareas Descripción Prioridad Estado Planificada

para... Fecha de

finalización Notas/Comenta

rios

Page 14: Desarrollo centrado en tareas en Eclipse con Mylyn 2009

14

Gestión de tareas

Gestión de la planificación Tareas

terminadas frente a las planificadas

Modo “trabajo semanal”

Page 15: Desarrollo centrado en tareas en Eclipse con Mylyn 2009

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

Page 16: Desarrollo centrado en tareas en Eclipse con Mylyn 2009

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)

Page 17: Desarrollo centrado en tareas en Eclipse con Mylyn 2009

17

Integración con gestores de tareas

Page 18: Desarrollo centrado en tareas en Eclipse con Mylyn 2009

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 ...

Page 19: Desarrollo centrado en tareas en Eclipse con Mylyn 2009

19

Page 20: Desarrollo centrado en tareas en Eclipse con Mylyn 2009

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

Page 21: Desarrollo centrado en tareas en Eclipse con Mylyn 2009

21

Integración con gestores de tareas

Consultas en un gestor de tareas

queries

Page 22: Desarrollo centrado en tareas en Eclipse con Mylyn 2009

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

Page 23: Desarrollo centrado en tareas en Eclipse con Mylyn 2009

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

Page 24: Desarrollo centrado en tareas en Eclipse con Mylyn 2009

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

Page 25: Desarrollo centrado en tareas en Eclipse con Mylyn 2009

25

Cientos de elementos, posiblemente irrelevantes para la tarea actual

Page 26: Desarrollo centrado en tareas en Eclipse con Mylyn 2009

26

Interfaz centrado en tareas

Mylyn filtra (oculta) los elementos que no son relevantes para la tarea actual Package explorer

Activa/Desactiva el filtrado

Page 27: Desarrollo centrado en tareas en Eclipse con Mylyn 2009

27

Interfaz centrado en tareas

Mylyn filtra (oculta) los elementos que no son relevantes para la tarea actual Editor

Colapsa los métodosno relevantes

Activa/Desactiva el filtrado

Page 28: Desarrollo centrado en tareas en Eclipse con Mylyn 2009

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

Page 29: Desarrollo centrado en tareas en Eclipse con Mylyn 2009

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

Page 30: Desarrollo centrado en tareas en Eclipse con Mylyn 2009

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

Page 31: Desarrollo centrado en tareas en Eclipse con Mylyn 2009

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

Page 32: Desarrollo centrado en tareas en Eclipse con Mylyn 2009

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

Page 33: Desarrollo centrado en tareas en Eclipse con Mylyn 2009

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

Page 34: Desarrollo centrado en tareas en Eclipse con Mylyn 2009

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

Page 35: Desarrollo centrado en tareas en Eclipse con Mylyn 2009

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

Page 36: Desarrollo centrado en tareas en Eclipse con Mylyn 2009

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

Page 37: Desarrollo centrado en tareas en Eclipse con Mylyn 2009

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

Page 38: Desarrollo centrado en tareas en Eclipse con Mylyn 2009

38

Cambios en el código asociados a tareas

Comentarios con referencia al bug

Page 39: Desarrollo centrado en tareas en Eclipse con Mylyn 2009

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

Page 40: Desarrollo centrado en tareas en Eclipse con Mylyn 2009

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

Page 41: Desarrollo centrado en tareas en Eclipse con Mylyn 2009

41

Tasktop

Versión comercial de Mylyn queincorpora 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

Page 42: Desarrollo centrado en tareas en Eclipse con Mylyn 2009

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

Page 43: Desarrollo centrado en tareas en Eclipse con Mylyn 2009

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

Page 44: Desarrollo centrado en tareas en Eclipse con Mylyn 2009

Desarrollo centrado en tareas en Eclipse con Mylyn

Integración de Eclipse, Bugzilla y Subversion

sidelabSoftware & Integrated Development Environments Lab

Mylyn

Francisco Gortázar Bellas - Micael Gallego Carrillo

Noviembre 2009

http://www.gavab.es/wiki/tallermylyn