Making the Switch: One Team's Story of Adopting JIRA, FishEye, Eclipse & Mylyn - Atlassian Summit 2010
Upcoming SlideShare
Loading in...5
×
 

Making the Switch: One Team's Story of Adopting JIRA, FishEye, Eclipse & Mylyn - Atlassian Summit 2010

on

  • 3,109 views

Making the Switch: One Team's Story of Adopting JIRA, FishEye, Eclipse & Mylyn

Making the Switch: One Team's Story of Adopting JIRA, FishEye, Eclipse & Mylyn

Heather Mardis & Brian Tabox, Motorola

Statistics

Views

Total Views
3,109
Views on SlideShare
2,798
Embed Views
311

Actions

Likes
1
Downloads
71
Comments
0

8 Embeds 311

http://www.atlassian.com 292
http://magnolia-staging.private.atlassian.com 9
https://wacdev.internal.atlassian.com 3
https://www.atlassian.com 2
http://localhost 2
http://www.slideshare.net 1
https://webgate.ec.europa.eu 1
https://summit.atlassian.com 1
More...

Accessibility

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Making the Switch: One Team's Story of Adopting JIRA, FishEye, Eclipse & Mylyn - Atlassian Summit 2010 Making the Switch: One Team's Story of Adopting JIRA, FishEye, Eclipse & Mylyn - Atlassian Summit 2010 Presentation Transcript

    • 1 1
    • Making the Switch: One Team's Story of Adopting JIRA, FishEye, Eclipse and Brian Tarbox, ! ! Principal Staff Engineer Heather Mardis, ! ! Build & Release Engineer Motorola 2 2
    • About Us 3 3
    • About Us • Motorola, Video On Demand 3 3
    • About Us • Motorola, Video On Demand • Distributed Team • Boxborough, MA US • Beijing, China • Madrid, Spain • Natanya, Israel • ~100 engineers • ~15 doing java 3 3
    • About Us • Motorola, Video On Demand Motorola Video On • Distributed Team Demand magic • Boxborough, MA US happens here… • Beijing, China • Madrid, Spain • Natanya, Israel • ~100 engineers • ~15 doing java 3 3
    • Takeaways 4 4
    • Takeaways • Setup Perforce depot structure like JIRA Projects 4 4
    • Takeaways • Setup Perforce depot structure like JIRA Projects • JIRA/Perforce/FishEye integration tips 4 4
    • Takeaways • Setup Perforce depot structure like JIRA Projects • JIRA/Perforce/FishEye integration tips • Convert to JIRA using Pilot Projects for path finding 4 4
    • 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
    • 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
    • Background • JIRA 4.0.x • Atlassian Connector for Eclipse JIRA 2.1.0V20100408 • Upgraded easily from 3.13.x • Once the plug-ins were supported • Mylyn • FishEye 2.0.2 • Provides integration with perforce • Perforce 2009.2 • Eclipse 3.5, Galileo • p4wsad 2009.3 perforce plug-in and Mylyn connector 5
    • JIRA Adoption Lessons 6
    • JIRA Adoption Lessons • Stay close to out of the box • More fields/transitions isnʼt always better • Simplifies upgrades 6
    • 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
    • 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
    • JIRA and Perforce 7
    • JIRA and Perforce • Setup your Perforce depot structure to match your JIRA Projects • JIRA Project = p4 depot folder • JIRA Component = p4 depot name • JIRA Version = p4 branch 7
    • FishEye and Perforce 8
    • FishEye and Perforce • 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 8
    • FishEye and Perforce • 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 8
    • FishEye and Perforce • 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 LoC can provide risk assessment 8
    • Tools Integration Issues 9
    • Tools Integration Issues • Learn the capabilities of the tool you live in • your Java/Groovy/Scala editor, e.g. Eclipse 9
    • 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
    • Tools Integration Issues • Learn the capabilities of the tool you • Identify your greatest pain points live in • lack of distribution of domain knowledge • your Java/Groovy/Scala editor, e.g. • see if your tools can be flexed in a way to Eclipse solve them • Mylyn as a training tool • Find the integration points between • Preserve, then share context knowledge in the your pluginʼs plugins! code base • 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
    • Tool Integrations eclipse IDE Eclipse workspace p4 perforce Fi sh Ey e p4 FishEye 10 10
    • 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
    • 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
    • Just Eclipse eclipse IDE Eclipse workspace 12 12
    • Standard Eclipse View Lots  of  packages Lots  of  naviga0ng  to  find  files 13 13
    • Standard Eclipse View Lots  of  items  in  the  outline  view 14 14
    • Just Eclipse eclipse IDE Eclipse workspace Context and optionally task to disk Mylyn task to disk or JIRA Mylyn Context 15 15
    • 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
    • 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
    • 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
    • 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
    • Mylyn – a task view for Eclipse 17 17
    • Mylyn – a task view for Eclipse Being  interrupted  is  a   standard  use  of  an  editor   just  like  crashing  is  a   standard  use  of  a  car! 17 17
    • Mylyn – a task view for Eclipse 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 17
    • Mylyn – a task view for Eclipse 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 17
    • Local and Repository Tasks 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 18
    • JIRA Tasks Standard  connec0on  to  your  JIRA  repository Lots  of  op0ons,  including  automa0c  0me  tracking 19 19
    • Create a new Task 20 20
    • Create a new Task 20 20
    • Task Focus adds by removing 21 21
    • Building a Context Methods  you   visit  get  added   to  the  context 22 22
    • Flashback Remember,  this  is  what  you  used  to  see 23 23
    • Switching Tasks is the real payoff 24 24
    • Switching Tasks is the real payoff This  is  the  task  we’ve  been  working  on 24 24
    • Switching Tasks is the real payoff This  is  the  task  we’ve  been  working  on This  is  the  task  we’re  switching  to 24 24
    • Just Eclipse eclipse IDE Eclipse workspace Mylyn Context Mylyn Task 25 25
    • Just Eclipse eclipse IDE Eclipse workspace Load new task Mylyn Context Mylyn Task 25 25
    • Just Eclipse eclipse IDE Eclipse workspace Get context for that task Load new task Mylyn Context Mylyn Task 25 25
    • Load classes, methods for that context Just Eclipse eclipse IDE Eclipse workspace Get context for that task Load new task Mylyn Context Mylyn Task 25 25
    • Switching tasks switches context By  switching  tasks  we  get   a  different  set  of  open   files,  along  with  the   memory  of  which   methods  we’d  been   working  on 26 26
    • Sharing Contexts If you create your tasks as JIRA Tasks, and save your Context in the Task, then others eclipse IDE Eclipse can share your Task Context workspace 27 27
    • Integrating Mylyn With JIRA Instead of creating a task, use a query to get tasks directly from the JIRA repository 28 28
    • Integrating Mylyn With JIRA Instead of creating a task, use a query to get tasks directly from the JIRA repository 28 28
    • Finding the JIRA task The query returns a list of tasks, from which you can pick the one to use 29 29
    • Store Context in JIRA Task 30 30
    • Now all the tools are Cooperating eclipse IDE Eclipse workspace p4 perforce Fi sh Ey e p4 FishEye 31 31
    • Other things you can add ANach  a  log  file  of  the  system   execu0ng  that  verb 32 32
    • 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
    • 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! “ It will take me longer to explain it to you than to just do it myself” 33 33
    • Using JIRA/Mylyn as a training tool 34 34
    • Using JIRA/Mylyn as a training tool • Create the JIRA Issue for a verb 34 34
    • 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
    • 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
    • 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
    • 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
    • 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
    • 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
    • JIRA/Mylyn Training Library 35 35
    • Since this is an Atlassian Summit… 36 36
    • Since this is an Atlassian Summit… Heather, I’m busy, can you handle this bug? 36 36
    • In Summary - Takeaways 37 37
    • In Summary - Takeaways • Setup Perforce depot structure like JIRA Projects 37 37
    • In Summary - Takeaways • Setup Perforce depot structure like JIRA Projects • JIRA/Perforce/FishEye integration tips 37 37
    • 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
    • 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
    • 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
    • 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
    • Demonstration Mylyn P4 38
    • Questions? • Brian Tarbox!btarbox@motorola.com • Brian's Blog: http://briantarbox.blogspot.com/ • Heather Mardis heather.mardis@motorola.com • http://www.log4jfugue.org/press.html • http://www.pragprog.com/magazines 39 39
    • Backup Material • Eclipse – Mylyn – JIRA setup instructions • Eclipse – Mylyn requirements for loading context from JIRA • JIRA plug-ins We Use • Demo Environment 40 40
    • 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
    • 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
    • Load JIRA context instructions • Assumption: Eclipse-Mylyn-JIRA- • If both users have perforce workspaces, it must be for the same set of files and from the same perforce properly setup starting directory • Eclipse project name, must be the • JIRA connection string, must use same same http: string • Establish a naming convention for potentially ʻsharedʼ Issues in JIRA and Eclipse to facilitate • Mylyn context zip files show the this required name, for debug • Use the ʻenvironmentʼ JIRA field to note the project name and source info • stored in the eclipse workspace • In our example • .metadata/.mylyn/contexts/http<link name plus pid>.zip • 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 42 42
    • JIRA plug-ins We Use 43 43
    • Demo Environment • Windows XP laptop (2G memory, • Similar to production created against the smaller set of archived p4 data Dell Precision M65) • JIRA • 320G Iomega external Drive • Installed on XP • VM Player on Windows, Ubuntu • Files live on the external drive VM • Eclipse • Perforce • Perforce database restored from • Connected to JIRA, p4 (beta p4wasd) production checkpoint • Limited set of archived sources but entire set of db.* files (big!) • FishEye 44 44