Weitere ähnliche Inhalte
Ähnlich wie Scrumbox ece2011.pptx (20)
Kürzlich hochgeladen (20)
Scrumbox ece2011.pptx
- 1. 1
Scrum on steroids - Building the "perfect" Scrum app
with Eclipse technology
Christian Campo
EclipseCon Europe 2011
Confidential | Date | Other Information, if necessary
November 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
Tasks
Copyright
©
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 HTTPS
local Services DTOs DTOs Entities
Riena Riena EclipseLink
RCP Nebula ... Equinox
Equinox
MySQL
Copyright
©
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
MySQL
Copyright
©
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 ident
Copyright
©
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
- 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/Riena
Copyright
©
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