what private teams can
learn from open source
Mark Simoneau
@marksim
Thursday, April 26, 12
Slide 2
Slide 2 text
what to adopt
Thursday, April 26, 12
Slide 3
Slide 3 text
why
Thursday, April 26, 12
Slide 4
Slide 4 text
how
Thursday, April 26, 12
Slide 5
Slide 5 text
we love open source
philosophy
freedom
price
using
Thursday, April 26, 12
Slide 6
Slide 6 text
but beyond that
Thursday, April 26, 12
Slide 7
Slide 7 text
open source provides a
model for private
development
Thursday, April 26, 12
Slide 8
Slide 8 text
what if this model
could...
Thursday, April 26, 12
Slide 9
Slide 9 text
reduce bugs in
production
Thursday, April 26, 12
Slide 10
Slide 10 text
better talent pool
Thursday, April 26, 12
Slide 11
Slide 11 text
how many private
teams want to
Thursday, April 26, 12
Slide 12
Slide 12 text
reduce bugs in
production
Thursday, April 26, 12
Slide 13
Slide 13 text
have better talent pool
Thursday, April 26, 12
Slide 14
Slide 14 text
everybody?
Thursday, April 26, 12
Slide 15
Slide 15 text
Thursday, April 26, 12
Slide 16
Slide 16 text
reducing bugs
Thursday, April 26, 12
Slide 17
Slide 17 text
best way?
Thursday, April 26, 12
Slide 18
Slide 18 text
hour for hour, no other
developer method
reduces more bugs in
production
see “Code Complete” by Steve McConnell
Thursday, April 26, 12
Slide 19
Slide 19 text
code reviews
Thursday, April 26, 12
Slide 20
Slide 20 text
how do private teams
do it?
Thursday, April 26, 12
Slide 21
Slide 21 text
how does open source
do it?
Thursday, April 26, 12
Slide 22
Slide 22 text
pull requests
Thursday, April 26, 12
Slide 23
Slide 23 text
• fork (free!)
• submit pull request
• let the team review
• merge
easy to set this up
Thursday, April 26, 12
Slide 24
Slide 24 text
• more complicated process
• slower than git push
• more knowledge of git required
disadvantages
Thursday, April 26, 12
Slide 25
Slide 25 text
advantages
• all code gets reviewed
• everyone sees coding styles
• everyone sees problem solutions
• everyone gets input
• git history cleanliness is reviewed
Thursday, April 26, 12
Slide 26
Slide 26 text
Thursday, April 26, 12
Slide 27
Slide 27 text
better talent pool
Thursday, April 26, 12
Slide 28
Slide 28 text
talent from anywhere?
Thursday, April 26, 12
Slide 29
Slide 29 text
open source:
distributed from the
start
Thursday, April 26, 12
Slide 30
Slide 30 text
communication done in
Thursday, April 26, 12
Slide 31
Slide 31 text
mailing lists
Thursday, April 26, 12
Slide 32
Slide 32 text
chats
Thursday, April 26, 12
Slide 33
Slide 33 text
bug tickets
Thursday, April 26, 12
Slide 34
Slide 34 text
distributed
communication =
distributed team
Thursday, April 26, 12
Slide 35
Slide 35 text
what if your private
team simply acted
distributed?
Thursday, April 26, 12
Slide 36
Slide 36 text
easy to do
Thursday, April 26, 12
Slide 37
Slide 37 text
hipchat / campfire / irc
Thursday, April 26, 12
Slide 38
Slide 38 text
mailing list / message
board
Thursday, April 26, 12
Slide 39
Slide 39 text
internal blog
Thursday, April 26, 12
Slide 40
Slide 40 text
google hangout / skype
Thursday, April 26, 12
Slide 41
Slide 41 text
disadvantages
• more discipline
• more intentionality
• could reduce personal interaction (not
what we found)
Thursday, April 26, 12
Slide 42
Slide 42 text
advantages
• all communication logged
• everyone can participate from anywhere
• everyone can review or catch up
• anyone can be added to the team from
anywhere
• bonus: reduced distraction
Thursday, April 26, 12
Slide 43
Slide 43 text
Thursday, April 26, 12
Slide 44
Slide 44 text
challenge
Thursday, April 26, 12
Slide 45
Slide 45 text
make your private team
Thursday, April 26, 12
Slide 46
Slide 46 text
distributed
Thursday, April 26, 12
Slide 47
Slide 47 text
code reviewers
Thursday, April 26, 12
Slide 48
Slide 48 text
boost communication
Thursday, April 26, 12
Slide 49
Slide 49 text
reduce bugs
Thursday, April 26, 12
Slide 50
Slide 50 text
hire from anywhere
Thursday, April 26, 12
Slide 51
Slide 51 text
@marksim
blog.quarternotecoda.com
Thursday, April 26, 12