SlideShare a Scribd company logo
Andy Lester
             @petdance




 Projects,
Community
and Github
What we’ll cover

• Presenting your project to the world
• Managing the development process
• Side trip to diversity
• Your experiences
Why to stay
• Perspectives on community & you!
• Adorable Octocat art!
• Tips for patch management!
• Star Trek references!
• Release management!
• Sweaty Steve Ballmer!
Who is Github for?
Developers,
developers,




developers,
developers,
Github is not
for end users.
Whoo! Exposure!
Community and Github: 7/27/2011
Community and Github: 7/27/2011
Github is for those
    who like to
build from source.
Community and Github: 7/27/2011
Community and Github: 7/27/2011
Your users
probably don't.
Community and Github: 7/27/2011
To the newcomer,
 the source tree
 is unimportant.
To the newcomer,
 the source tree
 is unimportant.
Just because we’ve
published code doesn’t
   mean we’re done.
What's it do?

What's it look like?

Do I want to use it?
That means:
Screenshots and
   installation
Make a project site!
Make a project site.
Make a project site.
Make a project site.
• Answer the newcomer's questions.
• Aimed toward the end users.
 • Users who are not as ninja as you.
• Make download + install incredibly obvious.
• It can be on github, but not the default
  github project page.
Get your own domain.

• Not tied to github, in case things change.
• $10/year = dirt-cheap investment
• Which is easier to remember?
 • http://github.com/petdance/ack
 • http://betterthangrep.com/
Visible, documented
  releases matter!
Releases matter!
Release for simplicity
Release for simplicity

• Releases are an affirmation: "Yes, you can
  use this."
Release for simplicity

• Releases are an affirmation: "Yes, you can
  use this."
• Single, verifiable tarball.
Release for simplicity

• Releases are an affirmation: "Yes, you can
  use this."
• Single, verifiable tarball.
• Nobody wants to run autoconf.
Release for simplicity

• Releases are an affirmation: "Yes, you can
  use this."
• Single, verifiable tarball.
• Nobody wants to run autoconf.
• Users expect them.
Release for history
   and visibility
Release for history
      and visibility
• Lets others build on your work.
Release for history
      and visibility
• Lets others build on your work.
• Maintain an accurate, human-written
  changelog of all releases.
Release for history
      and visibility
• Lets others build on your work.
• Maintain an accurate, human-written
  changelog of all releases.
 • A dump of commit messages is not a
    changelog!
Optimize for your
  users' sake,
 not your own.
The needs of the many
outweigh the needs of
 the few, or the one.
The needs of the users
outweigh the needs of
  the project team.
Community and Github: 7/27/2011
About me
About @petdance

• Perl guy: ack, prove, WWW::Mechanize
• Programming for money since the 1980s
• I sling PHP for B2B web apps for a midsize
  corporation.
• From the midwest, Chicago area
Community and Github: 7/27/2011
A little bit about ack
Github projects have a
 low barrier to entry.
The good part:
Anyone can do it.
The bad part:
Anyone can do it.
Newbies expect their
changes to be accepted.
"Can't you just...?"
Be gentle in your
   rejections.

  Brevity may be
perceived as harsh.
That box is too small.
You want to accept
changes from newbies if
    at all possible.
Don't reject patches
   just because of...
• No tests
• No documentation
• Not following code standards

• Those can all be fixed!
The other day I got this
     in the mail...
Community and Github: 7/27/2011
I am happy to suggest use cases that I
have found useful. What is the best way -
to mailing list, on a wiki somewhere,
email to you.
Don't quite feel up to being more
proactive. I am dyslexic and find writing
stuff hard (and finishing of writing etc).
Make a project guide
Make a project guide
• Small chunks of the elephant
Make a project guide
• Small chunks of the elephant
 • "TODO: Better error handling" is not
    helpful to the newbie.
Make a project guide
• Small chunks of the elephant
 • "TODO: Better error handling" is not
    helpful to the newbie.
• Project direction
Make a project guide
• Small chunks of the elephant
 • "TODO: Better error handling" is not
    helpful to the newbie.
• Project direction
• Coding standards
Make a project guide
• Small chunks of the elephant
 • "TODO: Better error handling" is not
    helpful to the newbie.
• Project direction
• Coding standards
• Workflow + branch strategy
Monitor your network
Community and Github: 7/27/2011
Thank you
• Put yourself in the newbie's shoes.
• Make a project home page outside Github.
• Visible, documented releases matter.
• Optimize for others, not yourself.
• Use Github to encourage your
  community, not fend it off.
• Thank you for listening and
  for Githubbing.

More Related Content

Community and Github: 7/27/2011

Editor's Notes

  1. \n
  2. \n
  3. \n
  4. \n
  5. \n
  6. \n
  7. Nat has 171,000 readers at radar.oreilly.com\n
  8. Somebody clicks the link and wants to download it, and what they're presented with is a dev-oriented home page.\n
  9. The download link isn't very descriptive.\n
  10. \n
  11. \n
  12. \n
  13. \n
  14. \n
  15. \n
  16. Somebody clicks the link and wants to download it, and what they're presented with is a dev-oriented home page.\n
  17. \n
  18. \n
  19. \n
  20. \n
  21. \n
  22. \n
  23. \n
  24. \n
  25. \n
  26. \n
  27. \n
  28. \n
  29. \n
  30. \n
  31. \n
  32. \n
  33. \n
  34. \n
  35. \n
  36. \n
  37. \n
  38. \n
  39. \n
  40. "Dad, if you don't get it, it's because I didn't do it."\n
  41. \n
  42. \n
  43. \n
  44. \n
  45. \n
  46. \n
  47. \n
  48. \n
  49. \n
  50. \n
  51. \n
  52. \n
  53. \n
  54. \n
  55. \n
  56. \n
  57. \n
  58. \n
  59. \n
  60. \n
  61. \n