Top Banner
© 2002 IBM Corporation Confidential | Date | Other Information, if necessary November 7, 2011 Copyright © 2011 compeople AG, Made available under the Eclipse Public License v 1.0 1 Christian Campo EclipseCon Europe 2011 Scrum on steroids - Building the "perfect" Scrum app with Eclipse technology
27

Scrumbox ece2011.pptx

May 13, 2015

Download

Technology

da152

http://www.eclipsecon.org/sessions/scrum-steroids-building-perfect-scrum-app-eclipse-technology
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Scrumbox ece2011.pptx

© 2002 IBM Corporation

Confidential | Date | Other Information, if necessary November 7, 2011 Copyright © 2011 compeople AG, Made available under the Eclipse Public License v 1.0

1

Christian Campo EclipseCon Europe 2011

Scrum on steroids - Building the "perfect" Scrum app with Eclipse technology

Page 2: Scrumbox ece2011.pptx

Copyright  ©  2011  compeople  AG,  Made  available  under  the  Eclipse  Public  License  v  1.0  

Scrum  on  steroids  -­‐  Overview  

•  What  is  Scrumbox  ?  

•  MoIvaIon  

•  Architecture  •  ImplementaIon  

•  Demo  

2  

Page 3: Scrumbox ece2011.pptx

Copyright  ©  2011  compeople  AG,  Made  available  under  the  Eclipse  Public  License  v  1.0  

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

3  

Page 4: Scrumbox ece2011.pptx

Copyright  ©  2011  compeople  AG,  Made  available  under  the  Eclipse  Public  License  v  1.0  

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  

4  

Page 5: Scrumbox ece2011.pptx

Copyright  ©  2011  compeople  AG,  Made  available  under  the  Eclipse  Public  License  v  1.0  

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)  

5  

Page 6: Scrumbox ece2011.pptx

Copyright  ©  2011  compeople  AG,  Made  available  under  the  Eclipse  Public  License  v  1.0  

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  

6  

Page 7: Scrumbox ece2011.pptx

Copyright  ©  2011  compeople  AG,  Made  available  under  the  Eclipse  Public  License  v  1.0  

Scrum  is...  

•  Teams  

•  Users  (Developers)  •  Sprints  •  Userstories  •  Tasks  

•  imports  Bugs  into  Userstories  

•  Burndown  charts  •  Workload  charts  

•  metrics  per  developer  

•  availability  per  developer  

7  

Page 8: Scrumbox ece2011.pptx

Copyright  ©  2011  compeople  AG,  Made  available  under  the  Eclipse  Public  License  v  1.0  

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  

8  

Products Sprints Userstories Tasks

Products Sprints Userstories Tasks

most scrum planning tools scrumbox

Page 9: Scrumbox ece2011.pptx

Copyright  ©  2011  compeople  AG,  Made  available  under  the  Eclipse  Public  License  v  1.0  

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  

9  

Page 10: Scrumbox ece2011.pptx

Copyright  ©  2011  compeople  AG,  Made  available  under  the  Eclipse  Public  License  v  1.0  

Talk  to  the  People  II  

10  

•  developer •  see open tasks •  track times

•  project leads •  look at bugtracker •  create userstories •  plan tasks •  look at burndown and workload •  check progress in sprint

•  scrummaster •  overview of planned tasks in a sprint •  compare actual against planned burndown •  sprint result presentation

•  head of department •  hours worked per developer •  time spent on user stories •  time spent on products

•  wishes •  calculate availability (hours available per developer/project) •  print timesheet per month (per project) for everyone

Page 11: Scrumbox ece2011.pptx

Copyright  ©  2011  compeople  AG,  Made  available  under  the  Eclipse  Public  License  v  1.0  

Eclipse  Frameworks  to  use  

•  Equinox,  RCP  •  Riena  •  EclipseLink  (MySQL)  

•  Nebula  (CompositeTable,  Grid,  NatTable)  

•  p2  (sIll  to  come)  

11  

Page 12: Scrumbox ece2011.pptx

Copyright  ©  2011  compeople  AG,  Made  available  under  the  Eclipse  Public  License  v  1.0  

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)  

12  

Page 13: Scrumbox ece2011.pptx

Copyright  ©  2011  compeople  AG,  Made  available  under  the  Eclipse  Public  License  v  1.0  

Scrumbox Server

Architecture  I  

13  

MySQL

EclipseLink Riena

Equinox

Entities DTOs

Services

Scrumbox Client

Riena

Equinox

DTOs

Views/Controllers/Logic Remote Calls over HTTPS

RCP Nebula ...

local Services

Page 14: Scrumbox ece2011.pptx

Copyright  ©  2011  compeople  AG,  Made  available  under  the  Eclipse  Public  License  v  1.0  

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  

14  

Page 15: Scrumbox ece2011.pptx

Copyright  ©  2011  compeople  AG,  Made  available  under  the  Eclipse  Public  License  v  1.0  

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

15  

Page 16: Scrumbox ece2011.pptx

Copyright  ©  2011  compeople  AG,  Made  available  under  the  Eclipse  Public  License  v  1.0  

Architecture  II  

16  

MySQL

Scrumbox Server

EclipseLink Riena

Equinox

Entities DTOs

Services

Page 17: Scrumbox ece2011.pptx

Copyright  ©  2011  compeople  AG,  Made  available  under  the  Eclipse  Public  License  v  1.0  

Map  Domain  to  Riena  NavigaIon  Model  

17  

Page 18: Scrumbox ece2011.pptx

Copyright  ©  2011  compeople  AG,  Made  available  under  the  Eclipse  Public  License  v  1.0  

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*  

18  

Note: You can put an image into another column but then SWT Table inserts a blank ident

Page 19: Scrumbox ece2011.pptx

Copyright  ©  2011  compeople  AG,  Made  available  under  the  Eclipse  Public  License  v  1.0  

Tables  I  

19  

Page 20: Scrumbox ece2011.pptx

Copyright  ©  2011  compeople  AG,  Made  available  under  the  Eclipse  Public  License  v  1.0  

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  

20  

Page 21: Scrumbox ece2011.pptx

Copyright  ©  2011  compeople  AG,  Made  available  under  the  Eclipse  Public  License  v  1.0  

Tables  II  

21  

•  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 •  header in platform look •  repaint issues •  does not show selection in row •  can have widgets in cells

•  NatTable •  complex API (different concept) •  no support for JFace

•  Grid •  no platform look •  shows selections •  varying row height •  widgets in cells •  can configure Renderers

•  Grid •  no platform look •  shows selections •  varying row height •  widgets in cells •  can configure Renderers

Page 22: Scrumbox ece2011.pptx

Copyright  ©  2011  compeople  AG,  Made  available  under  the  Eclipse  Public  License  v  1.0  

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  

22  

Page 23: Scrumbox ece2011.pptx

Copyright  ©  2011  compeople  AG,  Made  available  under  the  Eclipse  Public  License  v  1.0  

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  

23  

Page 24: Scrumbox ece2011.pptx

Copyright  ©  2011  compeople  AG,  Made  available  under  the  Eclipse  Public  License  v  1.0   24  

Demo

Page 25: Scrumbox ece2011.pptx

Copyright  ©  2011  compeople  AG,  Made  available  under  the  Eclipse  Public  License  v  1.0  

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  

25  

Page 26: Scrumbox ece2011.pptx

Copyright  ©  2011  compeople  AG,  Made  available  under  the  Eclipse  Public  License  v  1.0  

Q&A  

26  

•  http://www.eclipse.org/riena •  http://wiki.eclipse.org/Riena

Page 27: Scrumbox ece2011.pptx

Copyright  ©  2011  compeople  AG,  Made  available  under  the  Eclipse  Public  License  v  1.0   27