Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Agile for digital library projects

1,507 views

Published on

Some Agile Practices In Use for Library OSS and Stanford projects. A lively discussion ensued.

Published in: Technology, Education
  • Login to see the comments

  • Be the first to like this

Agile for digital library projects

  1. 1. Agile
Methodology,

 
 
Innovation,
and
Quality
 Naomi
Dushay


(on
behalf
of
Bess
Sadler)
 
 Tom
Cramer
 Jessie
Keck
 
 Stanford
University

  2. 2. (Some
of
our)
Goals
 Sustainability
/
Supportability
 Adaptability
to
local
needs
 InnovaDon
and
rapid
development


  3. 3. Problem:




$$$
to
grow
your
own
Developing
Local
SoGware
is
Expensive:
•  Elapsed
Time
•  Developer
Cycles
•  Sustainability
 •  Single
point
of
failure?
Buying
from
Vendor
also
$$$

  4. 4. Solution:





open
source
software
•  start
with
exisDng
funcDonality
•  benefit
from
others’
 •  conDnuing
work
 •  ideas
•  spread
risk
across
mulDple
insDtuDons,
 mulDple
developers

  5. 5. Problem:









local
idiosyncrasies
 Available:
 Want:

  6. 6. Solution:


















localize
OSS
 OSS
 Localized

  7. 7. Problem:






upgrading
local
code
 OSS
Code
 Version
1
 Version
2
 Version
3
 ???
 ???
 Site
1
 Site
2
 Site
3

  8. 8. Solution:

















local
overrides
 Version
1
 Version
2
 Version
3
 Site1
 Site2
 Site3

  9. 9. Problem:



integrating
new
functionality
 Date
Range
Limit
 Advanced
Search

  10. 10. Solution:






plugin
architecture
 Advanced

 Range

 Search
 Limit

  11. 11. Problem:



distributed
developers

  12. 12. Solution:












realtime
contact
 Weekly
check‐ins
 As
need
arises
Face‐to‐Face
!!!

  13. 13. Problem:









developer
distrust
 Their
stuff
is
 I
hate
his
 always
buggy
 code
 I
could
do
 If
I
had
 this
faster
 Dme
…
 myself

  14. 14. Solution:

good
development
practice
 Automat(able/ed)
tests
 ConDnuous
IntegraDon
   AutomaDc
NoDficaDons
 Code
Coverage
Data
 Transparency
 DocumentaDon
Coverage
Data

  15. 15. Solution:





no
code
without
tests

  16. 16. Solution:


test
coverage
transparency

  17. 17. Solution:







automated
test
runs

  18. 18. Solution:






test
result
transparency

  19. 19. Solution:


auto
change
notification

  20. 20. Solution:






change
transparency

  21. 21. Solution:









public
shared
code

  22. 22. Solution:












doc
transparency

  23. 23. Problem:







endless
discussion
 I
think
you
 Is
this
 should
do
it
 approach
okay
 this
way

 w
folks?
 No,
this
 other
 way

  24. 24. Solution:







working
code
wins
 I’m
going
to
 SuggesDon
 do
this
 SuggesDon

  25. 25. Quote
by
??
 “When
I
see
you

 working
together,

 it’s
like
you’re
all

 on
the
same
team.”

  26. 26. Problem:








too
many
meetings

  27. 27. Solution:





developer
happy
hours

  28. 28. Solution:





dead
week

  29. 29. Problem:










competing
priorities

  30. 30. Solution:








iteration
planning
Backlog
 Now

  31. 31. Solution:


















SMART
goals
 •  Specific
 •  Measurable
 •  Achievable
 •  RealisDc
 •  Timely

  32. 32. Problem:


















lack
of
focus
 Feature
 Feature
 Feature
 Feature
 Feature
 Feature
 Feature
 Feature
 Feature
 Feature
 Feature

  33. 33. Solution:








focused
iterations
 Feature
 Feature
 Feature
 Feature
 Feature
 Feature
 Feature
 Feature
Feature
 Feature
 Feature
 Backlog
 Now

  34. 34. Solution:

max
2
projects/developer
Who
 Project
1
 Project
2
Naomi
Dushay
 SearchWorks
‐
MHLD
 HypaDa
‐
Demo
Jessie
Keck
 HypaDa
‐
Demo
 SearchWorks
‐
 MHLD
Jon
Lavigne
 Heritrix
Web
crawl
 Page
Req
Forms
Willy
Mene
 DOR
 Lyberservices
Michael
Klein
 Argo
‐
x
 (Shark
Dirigible)

  35. 35. Problem:





lack
of
visible
progress



  36. 36. Solution:









short
iterations
 1
week

or
 Short
is:
 2
weeks

or
 1
month


or
…

  37. 37. Solution:





good
communication
•  Regular
meeDngs
•  Email
list
•  Wikis
•  Tracking
system
(e.g.
JIRA)

  38. 38. Solution:







planned
work
is
public

  39. 39. Solution:















progress
is
public

  40. 40. Problem:
sharing
knowledge
locally
 I
wonder
if
 someone
 Eh,
I’ll
just
 can
help
 figure
it
out

  41. 41. Solution:












open
sight
lines
 Hey
Willy:
 Have
a
sec?
 Jessie,
can
 you
look
at
 this?

  42. 42. Solution:











non‐developers,
too
 Lynn,
is
this
 what
you
 meant?
 Jennifer,
your
 design
is
tough
to
 program,
can
we
 modify
it?

  43. 43. Problem:




unhappy
“customers”
 But
I
 This
isn’t
 implemented
 what
I
asked
 the
spec
 for
 I
didn’t
realize
it
 would
look
like
this

  44. 44. Solution:










collaborative
design

  45. 45. Solution:










Behavior
Driven
Dev
When
I
am
on
the
search
results
page
Then
id
867
should
be
before
567
And
if
I
select
“Dtle”
from
the
search
pulldown
Then
id
567
should
be
before
867
It
should
…

  46. 46. Problem:





need
stable
test
data
 Tests
keep
failing
 because
the
data
 keeps
changing

  47. 47. Solution:

mocks,
stubs,
fixtures
Fixtures:


data
for
tests

Mocks:

I
don’t
need
an
actual
object,
just
a

placeholder
with
a
lijle
bit
of
the
informaDon

Stubs:


I
know
I’m
gonna
call
a
method
with
certain
arguments,
and
I
know
what
it
returns
and
it
isn’t
the
method
I’m
tesDng
right
now

  48. 48. Problem:


















no
local
TDD
 I’ve
been
 meaning
to
 do
it…

  49. 49. Solution:




requirement
of
OSS
 No
Code
Without
 Passing
Tests!
 OK

  50. 50. Problem:






scrum
unrealistic
 We
have
too
many
 simultaneous
 projects
 I
can’t
dedicate
5
 developers
to
a
 single
project,
even
 short
term

  51. 51. Solution:





take
pieces
of
Agile
•  Short
iteraDons
of
narrow
focus
•  No
code
without
tests
•  ConDnuous
IntegraDon
•  AutomaDc
noDficaDons
•  Issue
Tracking
System
•  RealDme
CommunicaDon
across
roles
and
locaDons
•  …


×