Agile for digital library projects

1,254 views

Published on

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

Published in: Technology, Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,254
On SlideShare
0
From Embeds
0
Number of Embeds
135
Actions
Shares
0
Downloads
8
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

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
•  …


×