2. Making the Switch: One Team's Story of
Adopting JIRA, FishEye, Eclipse and
2
Brian Tarbox, ! ! Principal Staff Engineer
Heather Mardis, ! ! Build & Release Engineer
Motorola
2
5. About Us
• Motorola, Video On Demand
• Distributed Team
• Boxborough, MA US
• Beijing, China
• Madrid, Spain
• Natanya, Israel
• ~100 engineers
• ~15 doing java
3
3
6. About Us
• Motorola, Video On Demand
• Distributed Team
• Boxborough, MA US
• Beijing, China
• Madrid, Spain
• Natanya, Israel
• ~100 engineers
• ~15 doing java
3
Motorola Video On
Demand magic
happens here…
3
10. Takeaways
• Setup Perforce depot structure like JIRA Projects
• JIRA/Perforce/FishEye integration tips
• Convert to JIRA using Pilot Projects for path finding
4
4
11. Takeaways
• Setup Perforce depot structure like JIRA Projects
• JIRA/Perforce/FishEye integration tips
• Convert to JIRA using Pilot Projects for path finding
• Tool Integration Benefits
4
4
12. Takeaways
• Setup Perforce depot structure like JIRA Projects
• JIRA/Perforce/FishEye integration tips
• Convert to JIRA using Pilot Projects for path finding
• Tool Integration Benefits
• Identify your greatest pain points
• What can my tools do to help?
4
4
13. Background
• JIRA 4.0.x
• Upgraded easily from 3.13.x
• Once the plug-ins were supported
• FishEye 2.0.2
• Provides integration with perforce
• Perforce 2009.2
• Eclipse 3.5, Galileo
• p4wsad 2009.3 perforce plug-in and
Mylyn connector
• Atlassian Connector for Eclipse JIRA
2.1.0V20100408
• Mylyn
5
15. JIRA Adoption Lessons
• Stay close to out of the box
• More fields/transitions isnʼt always better
• Simplifies upgrades
6
16. JIRA Adoption Lessons
• Stay close to out of the box
• More fields/transitions isnʼt always better
• Simplifies upgrades
• Plug-ins are valuable
• Large Plug-in universe available
6
17. JIRA Adoption Lessons
• Stay close to out of the box
• More fields/transitions isnʼt always better
• Simplifies upgrades
• Plug-ins are valuable
• Large Plug-in universe available
• Convert to JIRA using Pilot Projects
• Gather user feedback
• Establishing personal relationships between admin/developer simplifies fact finding
• What works, what doesnʼt, what I want to do is…
6
21. • Six years of p4 history, too much to slurp by depot
• By project/branch reduced overhead
• Allowed removing uninteresting branches
• Restarted, remember to clean up cache of old stuff
FishEye and Perforce
8
22. • Six years of p4 history, too much to slurp by depot
• By project/branch reduced overhead
• Allowed removing uninteresting branches
• Restarted, remember to clean up cache of old stuff
FishEye and Perforce
8
23. • Six years of p4 history, too much to slurp by depot
• By project/branch reduced overhead
• Allowed removing uninteresting branches
• Restarted, remember to clean up cache of old stuff
FishEye and Perforce
• FishEye and LoC can
provide risk assessment
8
25. Tools Integration Issues
• Learn the capabilities of the tool you
live in
• your Java/Groovy/Scala editor, e.g.
Eclipse
9
26. Tools Integration Issues
• Learn the capabilities of the tool you
live in
• your Java/Groovy/Scala editor, e.g.
Eclipse
• Find the integration points between
your pluginʼs plugins!
• Mylyn – Eclipse – Perforce – JIRA
• Some issues do arise
• Our BUG entry screen requires filling in a
custom field, not supported from the JIRA/
Eclipse integration
• We are contemplating a schema change to
address it
9
27. Tools Integration Issues
• Learn the capabilities of the tool you
live in
• your Java/Groovy/Scala editor, e.g.
Eclipse
• Find the integration points between
your pluginʼs plugins!
• Mylyn – Eclipse – Perforce – JIRA
• Some issues do arise
• Our BUG entry screen requires filling in a
custom field, not supported from the JIRA/
Eclipse integration
• We are contemplating a schema change to
address it
• Identify your greatest pain points
• lack of distribution of domain knowledge
• see if your tools can be flexed in a way to
solve them
• Mylyn as a training tool
• Preserve, then share context knowledge in the
code base
9
29. Using Eclipse with JIRA, Mylyn
• Eclipse has become our standard editor
• Itʼs a powerful editor by itself but really shines with friends
• Combining Eclipse, JIRA and Mylyn results in a game changing
development environment
• Use Your Exo-Cortex!
11
11
30. Using Eclipse with JIRA, Mylyn
• Eclipse has become our standard editor
• Itʼs a powerful editor by itself but really shines with friends
• Combining Eclipse, JIRA and Mylyn results in a game changing
development environment
• Use Your Exo-Cortex!
11
11
35. Crashworthiness
• Prior to the 1960s automobiles (in the US) were not required to be
crashworthy.
• Crashing was not considered a standard “use” of a car, so how they
behaved in a crash “didnʼt matter”
16
16
36. Crashworthiness
• Prior to the 1960s automobiles (in the US) were not required to be
crashworthy.
• Crashing was not considered a standard “use” of a car, so how they
behaved in a crash “didnʼt matter”
• In 1965 the US Court of Appeals ruled:
16
16
37. Crashworthiness
• Prior to the 1960s automobiles (in the US) were not required to be
crashworthy.
• Crashing was not considered a standard “use” of a car, so how they
behaved in a crash “didnʼt matter”
• In 1965 the US Court of Appeals ruled:
• “While automobiles are not made for the purpose of colliding with
each other, a frequent and inevitable contingency of normal
automobile use will result in collisions and injury-producing impacts.”
16
16
38. Crashworthiness
• Prior to the 1960s automobiles (in the US) were not required to be
crashworthy.
• Crashing was not considered a standard “use” of a car, so how they
behaved in a crash “didnʼt matter”
• In 1965 the US Court of Appeals ruled:
• “While automobiles are not made for the purpose of colliding with
each other, a frequent and inevitable contingency of normal
automobile use will result in collisions and injury-producing impacts.”
• What the heck does that have to do with Eclipse?
16
16
40. Mylyn – a task view for Eclipse
17
Being
interrupted
is
a
standard
use
of
an
editor
just
like
crashing
is
a
standard
use
of
a
car!
17
41. Mylyn – a task view for Eclipse
17
Being
interrupted
is
a
standard
use
of
an
editor
just
like
crashing
is
a
standard
use
of
a
car!
Mylyn
organizes
what
you
are
doing
into
tasks
and
contexts
17
42. Mylyn – a task view for Eclipse
17
Being
interrupted
is
a
standard
use
of
an
editor
just
like
crashing
is
a
standard
use
of
a
car!
Mylyn
organizes
what
you
are
doing
into
tasks
and
contexts
When
you
switch
tasks,
Mylyn
switches
your
Eclipse
context
for
you
17
43. Local and Repository Tasks
18
You
can
create
local
tasks
that
live
on
your
machine
and
are
not
shared
Or
you
can
create
tasks
in
your
JIRA
repository
and
these
can
be
shared
18
57. Switching tasks switches context
26
By
switching
tasks
we
get
a
different
set
of
open
files,
along
with
the
memory
of
which
methods
we’d
been
working
on
26
63. Now all the tools are Cooperating
31
perforce
eclipse IDE
FishEye
p4
FishEye
p4
Eclipse
workspace
31
64. Other things you can add
32
ANach
a
log
file
of
the
system
execu0ng
that
verb
32
65. The problem
• Weʼre all too busy
• Our systems are all too complex
• Often only one person in a group knows how any given part of the
system works
• Being indispensable is a two edged sword!
33
33
66. The problem
• Weʼre all too busy
• Our systems are all too complex
• Often only one person in a group knows how any given part of the
system works
• Being indispensable is a two edged sword!
33
“It will take me longer to explain it to you than to just do it myself”
33
68. Using JIRA/Mylyn as a training tool
• Create the JIRA Issue for a verb
34
34
69. Using JIRA/Mylyn as a training tool
• Create the JIRA Issue for a verb
• Open all of the classes that are used in executing that part of the
system
34
34
70. Using JIRA/Mylyn as a training tool
• Create the JIRA Issue for a verb
• Open all of the classes that are used in executing that part of the
system
• Visit the methods with those classes that matter
34
34
71. Using JIRA/Mylyn as a training tool
• Create the JIRA Issue for a verb
• Open all of the classes that are used in executing that part of the
system
• Visit the methods with those classes that matter
• Eclipse/Mylyn remembers the places you have visited
34
34
72. Using JIRA/Mylyn as a training tool
• Create the JIRA Issue for a verb
• Open all of the classes that are used in executing that part of the
system
• Visit the methods with those classes that matter
• Eclipse/Mylyn remembers the places you have visited
• Attach the content to the JIRA issue
34
34
73. Using JIRA/Mylyn as a training tool
• Create the JIRA Issue for a verb
• Open all of the classes that are used in executing that part of the
system
• Visit the methods with those classes that matter
• Eclipse/Mylyn remembers the places you have visited
• Attach the content to the JIRA issue
34
34
74. Using JIRA/Mylyn as a training tool
• Create the JIRA Issue for a verb
• Open all of the classes that are used in executing that part of the
system
• Visit the methods with those classes that matter
• Eclipse/Mylyn remembers the places you have visited
• Attach the content to the JIRA issue
• You now have a task based training library!
34
34
79. In Summary - Takeaways
• Setup Perforce depot structure like JIRA Projects
37
37
80. In Summary - Takeaways
• Setup Perforce depot structure like JIRA Projects
• JIRA/Perforce/FishEye integration tips
37
37
81. In Summary - Takeaways
• Setup Perforce depot structure like JIRA Projects
• JIRA/Perforce/FishEye integration tips
• Convert to JIRA using Pilot Projects for path finding
37
37
82. In Summary - Takeaways
• Setup Perforce depot structure like JIRA Projects
• JIRA/Perforce/FishEye integration tips
• Convert to JIRA using Pilot Projects for path finding
• Tool Integration Benefits
• Find pluginʼs plugins integrations! (Mylyn – Perforce – JIRA)
37
37
83. In Summary - Takeaways
• Setup Perforce depot structure like JIRA Projects
• JIRA/Perforce/FishEye integration tips
• Convert to JIRA using Pilot Projects for path finding
• Tool Integration Benefits
• Find pluginʼs plugins integrations! (Mylyn – Perforce – JIRA)
• Identify your greatest pain points
• What can my tools do to help? (Mylyn as a training tool).
37
37
84. In Summary - Takeaways
• Setup Perforce depot structure like JIRA Projects
• JIRA/Perforce/FishEye integration tips
• Convert to JIRA using Pilot Projects for path finding
• Tool Integration Benefits
• Find pluginʼs plugins integrations! (Mylyn – Perforce – JIRA)
• Identify your greatest pain points
• What can my tools do to help? (Mylyn as a training tool).
•
37
37
87. Backup Material
• Eclipse – Mylyn – JIRA setup instructions
• Eclipse – Mylyn requirements for loading context from JIRA
• JIRA plug-ins We Use
• Demo Environment
40
40
88. Eclipse – Mylyn - JIRA
• Eclipse Galilleo comes pre-installed with Mylyn
• To add the JIRA Mylyn connector
• Ensure you have the most up to date Mylyn, check for updates
• Select Task ʻadd repositoryʼ, choose ʻInstall More Connectorsʼ
• Select JIRA from the Mylyn Connector Discovery screen
• Follow the install instructions
41
41
89. Eclipse – Mylyn - JIRA
• Eclipse Galilleo comes pre-installed with Mylyn
• To add the JIRA Mylyn connector
• Ensure you have the most up to date Mylyn, check for updates
• Select Task ʻadd repositoryʼ, choose ʻInstall More Connectorsʼ
• Select JIRA from the Mylyn Connector Discovery screen
• Follow the install instructions
41
41
90. Load JIRA context instructions
• Assumption: Eclipse-Mylyn-JIRA-
perforce properly setup
• Eclipse project name, must be the
same
• Establish a naming convention for potentially
ʻsharedʼ Issues in JIRA and Eclipse to facilitate
this
• Use the ʻenvironmentʼ JIRA field to note the project
name and source info
• In our example
• demo-sc is our Eclipse project
• But it is defined to point to the demo-sc/vodman
folder of the p4 client workspace
• Source base for the set of files, must be
the same
• If both users have perforce workspaces, it must
be for the same set of files and from the same
starting directory
• JIRA connection string, must use same
http: string
• Mylyn context zip files show the
required name, for debug
• stored in the eclipse workspace
• .metadata/.mylyn/contexts/http<link name
plus pid>.zip
42
42
92. Demo Environment
• Windows XP laptop (2G memory,
Dell Precision M65)
• 320G Iomega external Drive
• VM Player on Windows, Ubuntu
VM
• Perforce
• Perforce database restored from
production checkpoint
• Limited set of archived sources but entire
set of db.* files (big!)
• FishEye
• Similar to production created against the
smaller set of archived p4 data
• JIRA
• Installed on XP
• Files live on the external drive
• Eclipse
• Connected to JIRA, p4 (beta p4wasd)
44
44