Your SlideShare is downloading. ×
Scrumbox ece2011.pptx
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Introducing the official SlideShare app

Stunning, full-screen experience for iPhone and Android

Text the download link to your phone

Standard text messaging rates apply

Scrumbox ece2011.pptx

705
views

Published on

http://www.eclipsecon.org/sessions/scrum-steroids-building-perfect-scrum-app-eclipse-technology

http://www.eclipsecon.org/sessions/scrum-steroids-building-perfect-scrum-app-eclipse-technology

Published in: Technology

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
705
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
4
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. 1 Scrum on steroids - Building the "perfect" Scrum app with Eclipse technology Christian Campo EclipseCon Europe 2011 Confidential | Date | Other Information, if necessaryNovember 7, 2011 © 2002 IBM Corporation Copyright © 2011 compeople AG, Made available under the Eclipse Public License v 1.0
  • 2. Scrum  on  steroids  -­‐  Overview  •  What  is  Scrumbox  ?  •  MoIvaIon  •  Architecture  •  ImplementaIon  •  Demo  Copyright  ©  2011  compeople  AG,  Made  available  under  the  Eclipse  Public  License  v  1.0   2  
  • 3. Scrumbox  •  Scrum  planning  tool  •  created  by  compeople  for  our  own  planning  •  based  on  Eclipse  frameworks  (as  you  will  see)  •  currently  internal  code  but  we  are  planning  on  open  sourcing  it  •  more  later.....  Copyright  ©  2011  compeople  AG,  Made  available  under  the  Eclipse  Public  License  v  1.0   3  
  • 4. MoIvaIon  (Riena  perspecIve)  •  We  had  mulIple  sample  apps  for  Riena  before  •  Not  maintained  aRer  iniIal  creaIon  •  Just  playgrounds  •  miss-­‐used  to  reproduce  bug  reports  (became  preTy  unusable  as   showcase)  •  an  alternaIve  demo  we  created  was  ok  but  preTy  trivial  •  demo  didnt  progress  much  aRer  iniIal  creaIon  •  customer  and  community  problems  used  more  complex  usecases  than   we  did  in  our  demos  Copyright  ©  2011  compeople  AG,  Made  available  under  the  Eclipse  Public  License  v  1.0   4  
  • 5. MoIvaIon  (Scrum  perspecIve)  •  We  tested  and  used  a  number  of  alternaIves  •  Excel  •  some  tools  with  PHP  apps   •  PHP  ....  seriously  ?   •  with  bugs   •  0.3  commiTer  working  on  it  (some  with  no  update  in  the  last  6  month  or   more)  •  the  way  they  used  Scrum,  Userstories,  Tasks  did  not  really  fit  •  no  integraIon  with  any  bugtracker  •  we  finally  wanted  a  tool  that  WORKED  (or  if  not  we  could  fix  it   ourselves)  Copyright  ©  2011  compeople  AG,  Made  available  under  the  Eclipse  Public  License  v  1.0   5  
  • 6. MoIvaIon  (compeople  perspecIve)  •  Have  an  interesIng  project  that  supplies  ideas  for  students,  bachelors   etc.  •  A  project  to  train  new  employees  with  OSGi  and  Riena  etc.  •  Get  a  beTer  understanding  how  we  could  use  other  Eclipse   frameworks  in  our  projects  •  Test  and  beTer  understand  how  people  use  Riena  •  A  project  that  interesIng  to  many  people,  and  find  interest  if  we  open   source  it  Copyright  ©  2011  compeople  AG,  Made  available  under  the  Eclipse  Public  License  v  1.0   6  
  • 7. Scrum  is...  •  Teams   •  imports  Bugs  into  Userstories  •  Users  (Developers)   •  Burndown  charts  •  Sprints   •  Workload  charts  •  Userstories   •  metrics  per  developer  •  Tasks   •  availability  per  developer  Copyright  ©  2011  compeople  AG,  Made  available  under  the  Eclipse  Public  License  v  1.0   7  
  • 8. Analyse  the  Domain  •  Why  did  the  last  scrum  planning  tool  not  work  for  you  ?  •  Are  their  other  (beTer  tools)  out  there  ?  •  Excel,  MicrosoR  Project  ?  •  A  reoccuring  design  problem  was  detected  in  most  tools   most scrum planning tools scrumbox Products Sprints Products Sprints Userstories Userstories Tasks TasksCopyright  ©  2011  compeople  AG,  Made  available  under  the  Eclipse  Public  License  v  1.0   8  
  • 9. Talk  to  the  People  •  Talk  to  the  various  user  groups  and  have  them  describe  their  top   usecases   •  developers   •  project  leads   •  scrum  master   •  head  of  department  Copyright  ©  2011  compeople  AG,  Made  available  under  the  Eclipse  Public  License  v  1.0   9  
  • 10. Talk  to  the  People  II  •  developer •  project leads •  see open tasks •  look at bugtracker •  track times •  create userstories •  plan tasks •  look at burndown and workload •  check progress in sprint•  scrummaster •  head of department •  overview of planned tasks in a sprint •  hours worked per developer •  compare actual against planned burndown •  time spent on user stories •  sprint result presentation •  time spent on products•  wishes •  calculate availability (hours available per developer/project) •  print timesheet per month (per project) for everyone Copyright  ©  2011  compeople  AG,  Made  available  under  the  Eclipse  Public  License  v  1.0   10  
  • 11. Eclipse  Frameworks  to  use  •  Equinox,  RCP  •  Riena  •  EclipseLink  (MySQL)  •  Nebula  (CompositeTable,  Grid,  NatTable)  •  p2  (sIll  to  come)  Copyright  ©  2011  compeople  AG,  Made  available  under  the  Eclipse  Public  License  v  1.0   11  
  • 12. Client  /  Server  approach  I  •  Riena  has  the  client  /  server  approach  built-­‐in  •  most  other  Eclipse  frameworks  assume  everything  is  in  one  JVM  (in   one  Ier)  •  EclipseLink  and  persistence  layer  only  on  server   •  no  dependency  on  persistence  packages  on  client  •  server  stateless  •  client  pulls  current  state  from  server  whenever  a  view  is  acEvated   •  no  local  storage  of  data,  refresh  every  Ime  a  view  becomes  acIve  •  always  use  Jobs/UIProcess  to  refresh/load  data  from  server  •  Security  is  no  issue,  same  access  rights  for  everybody  (has  a  login   process)  Copyright  ©  2011  compeople  AG,  Made  available  under  the  Eclipse  Public  License  v  1.0   12  
  • 13. Architecture  I   Scrumbox Client Scrumbox Server Remote Calls Views/Controllers/Logic Services over HTTPSlocal Services DTOs DTOs Entities Riena Riena EclipseLink RCP Nebula ... Equinox Equinox MySQLCopyright  ©  2011  compeople  AG,  Made  available  under  the  Eclipse  Public  License  v  1.0   13  
  • 14. Persistence  -­‐  EclipseLink  •  use  DTOs  between  client  and  server  •  load  defined  set  of  data  before  it  is  serialized  to  client  •  copy  data  between  DTOs  and  EnIty  models  with  generic  uIlity  •  remove  internal  EclipseLink  objects  from  EnIIes  before  you  copy  them  to   DTOs  (i.e.  IndirectLists)  •  opEmisEc  locking  •  guaranteed  integrity  Copyright  ©  2011  compeople  AG,  Made  available  under  the  Eclipse  Public  License  v  1.0   14  
  • 15. Persistence  –  EclipseLink  II  •  PersistenceUnit  -­‐>  EnEtyManagerFactory  -­‐>  EnEtyManager  (EM)  which   is  a  context  for  enIIes.  •  Client  -­‐>  EclipseLink  -­‐>  DB  (1  EM*  per  Client)  (standard  scenario)  •  Client  -­‐>  Server  -­‐>  EclipseLink  -­‐>  DB  (??  EMs)  (Scrumbox/Riena)   •  started  with  1  permanent  EM  per  Server   •  login  to  DB  with  generic  userid  (not  user  specific)   •  created  random  errors  (racecondiIons)   •  -­‐>  EM  instances  are  NOT  threadsafe         •  EclipseLink  Team  helped  and  now  we  pool  EMs  •  if  you  think  of  EnItyManager  as  “connecIon”  then  it  becomes  more   obvious...  Copyright  ©  2011  compeople  AG,  Made  available  under  the  Eclipse  Public  License  v  1.0   15  
  • 16. Architecture  II   Scrumbox Server Services DTOs Entities Riena EclipseLink Equinox MySQLCopyright  ©  2011  compeople  AG,  Made  available  under  the  Eclipse  Public  License  v  1.0   16  
  • 17. Map  Domain  to  Riena  NavigaIon  Model  Copyright  ©  2011  compeople  AG,  Made  available  under  the  Eclipse  Public  License  v  1.0   17  
  • 18. Statusmeter  SWT  Widget  •  Did  you  see  the  statusmeter  ?  •  We  needed  a  bar  to  visualize  the  progress  of  a  task   •  support  different  colors   •  that  can  be  displayed  as  widget  or  in  a  table  •  Didnt  exist  in  SWT  or  Nebula  •  So  we  created  a  new  widget  and  contributed  the  code  to  Riena.  •  SIll  a  limitaIon  in  SWT  Table  only  allows  it  to  be  displayed  in  the  first   column  *grrrrr*   Note: You can put an image into another column but then SWT Table inserts a blank identCopyright  ©  2011  compeople  AG,  Made  available  under  the  Eclipse  Public  License  v  1.0   18  
  • 19. Tables  I  Copyright  ©  2011  compeople  AG,  Made  available  under  the  Eclipse  Public  License  v  1.0   19  
  • 20. SWT  table  implementaIons  •  We  were  also  looking  for  the  "perfect"  SWT  Table  implementaIons  :-­‐)  •  Requirements  for  table  implementaIon   •  Tables  where  the  number  of  columns  could  dynamically  change   •  Tables  that  could  display  the  statusmeter  (in  any  column)   •  Table  that  supports  checkboxes  or  text  fields  in  cells   •  Varying  height  of  row  Copyright  ©  2011  compeople  AG,  Made  available  under  the  Eclipse  Public  License  v  1.0   20  
  • 21. Tables  II  •  SWT Table •  default + platform look and feel •  problem if image is not in the first column •  you cannot add widgets into cells or multiple widgets (maybe CellEditors) •  same height for all rows•  CompositeTable •  Grid •  header in platform look •  no platform look •  repaint issues •  shows selections •  does not show selection in row •  varying row height •  can have widgets in cells •  widgets in cells •  can configure Renderers•  NatTable •  complex API (different concept) •  no support for JFace Copyright  ©  2011  compeople  AG,  Made  available  under  the  Eclipse  Public  License  v  1.0   21  
  • 22. Mylyn  •  used  as  universal  API  for  retrieving  bug  informaIon  •  rather  than  wriIng  accessors  for  Bugzilla,  ManIs  etc.  Scrumbox  •  we  programmed  against  Mylyn  code  which  in  turn  than  access  the   bugreporIng  content  •  uses  some  internal  API  of  Mylyn  but  works  Copyright  ©  2011  compeople  AG,  Made  available  under  the  Eclipse  Public  License  v  1.0   22  
  • 23. New  Technologies    -­‐  Testbed  •  We  made  our  first  steps  using  Git  with  the  Scrumbox  codebase.  •  Started  using  Tycho  and  Maven  with  Scrumbox   •  for  all  three  plalorms  (Windows,  Mac,  Linux)   •  building  client  and  server  •  We  did  extensive  Performance,  Memoryleak  analysis  based  on  the   Scrumbox  client  for  code  in  Riena.   •  found  a  few  problems  when  redeploying  .WAR  archives  in  running  JVMs   •  found  problems  that  only  occurred  when  client  is  running  for  a  longer   Ime  Copyright  ©  2011  compeople  AG,  Made  available  under  the  Eclipse  Public  License  v  1.0   23  
  • 24. DemoCopyright  ©  2011  compeople  AG,  Made  available  under  the  Eclipse  Public  License  v  1.0   24  
  • 25. Conclusion  •  Scrumbox  achieved  our  main  goals   •  making  Riena  a  beTer  framework   •  idenIfy  pain  points  in  Riena   •  have  a  scrum  planing  tool   •  create  an  environment  for  people  to  learn  about  Riena  and  Eclipse   technology  •  Lessons  learned:  Eat  your  own  dog  food   •  Find  out  how  easy  it  is  to  use  your  API   •  Find  problems,  bugs,  race  condiIons   •  Have  a  product  to  test  your  weekly  builds  against  (internally)  •  We  spent  a  lot  of  Ime  figuring  out  how  some  Eclipse  frameworks   would  best  work  in  a  client  /  server  environment.  •  Plan  to  open  source  in  the  near  future  Copyright  ©  2011  compeople  AG,  Made  available  under  the  Eclipse  Public  License  v  1.0   25  
  • 26. Q&A   •  http://www.eclipse.org/riena •  http://wiki.eclipse.org/RienaCopyright  ©  2011  compeople  AG,  Made  available  under  the  Eclipse  Public  License  v  1.0   26  
  • 27. Copyright  ©  2011  compeople  AG,  Made  available  under  the  Eclipse  Public  License  v  1.0   27