best practices for open source projects · 2007-07-09 · nagios: development • started in...
TRANSCRIPT
![Page 1: Best Practices for Open Source Projects · 2007-07-09 · Nagios: Development • Started in January of 1999 • Developers: 1 core • Commits: 696 (past 6 months) – 3-4 commits](https://reader034.vdocument.in/reader034/viewer/2022050312/5f7464ddd2c8f57fcf5db7ed/html5/thumbnails/1.jpg)
Best Practices forOpen Source Projects
Presenter: Ross Turk
1
![Page 2: Best Practices for Open Source Projects · 2007-07-09 · Nagios: Development • Started in January of 1999 • Developers: 1 core • Commits: 696 (past 6 months) – 3-4 commits](https://reader034.vdocument.in/reader034/viewer/2022050312/5f7464ddd2c8f57fcf5db7ed/html5/thumbnails/2.jpg)
Who am I?
• Ross Turk, SourceForge, Inc.– Email: [email protected]– Jabber: [email protected]
• My job: Community Manager– Go to our users, wherever they are– Talk to SourceForge.net users– Learn from them– Drive the site’s strategic direction
2
2
![Page 3: Best Practices for Open Source Projects · 2007-07-09 · Nagios: Development • Started in January of 1999 • Developers: 1 core • Commits: 696 (past 6 months) – 3-4 commits](https://reader034.vdocument.in/reader034/viewer/2022050312/5f7464ddd2c8f57fcf5db7ed/html5/thumbnails/3.jpg)
What are we talking about?
• What is SourceForge.net?– Basic usage stats– Demographics
• Case Studies– Projects that have done things right
• Analysis– What did they do right?
• Best Practices– What should I do?
3
3
![Page 4: Best Practices for Open Source Projects · 2007-07-09 · Nagios: Development • Started in January of 1999 • Developers: 1 core • Commits: 696 (past 6 months) – 3-4 commits](https://reader034.vdocument.in/reader034/viewer/2022050312/5f7464ddd2c8f57fcf5db7ed/html5/thumbnails/4.jpg)
What is SourceForge.net?
“The whole is more than the sum of its parts.”- Aristotle
4
![Page 5: Best Practices for Open Source Projects · 2007-07-09 · Nagios: Development • Started in January of 1999 • Developers: 1 core • Commits: 696 (past 6 months) – 3-4 commits](https://reader034.vdocument.in/reader034/viewer/2022050312/5f7464ddd2c8f57fcf5db7ed/html5/thumbnails/5.jpg)
SourceForge.net is...
• ...the most substantial OSS repository, founded in 1999 and operated by OSTG.
• ...a provider of tools and technology. • ...a marketplace for OSS development and
consumption.
5
5
![Page 6: Best Practices for Open Source Projects · 2007-07-09 · Nagios: Development • Started in January of 1999 • Developers: 1 core • Commits: 696 (past 6 months) – 3-4 commits](https://reader034.vdocument.in/reader034/viewer/2022050312/5f7464ddd2c8f57fcf5db7ed/html5/thumbnails/6.jpg)
SourceForge is big... really big
• SF.net website (in 03/2006):– 25 million unique visitors– 106 million page views– 250,000 searches per day – 1.55 million registered users– 142,000 registered projects
6
6
![Page 7: Best Practices for Open Source Projects · 2007-07-09 · Nagios: Development • Started in January of 1999 • Developers: 1 core • Commits: 696 (past 6 months) – 3-4 commits](https://reader034.vdocument.in/reader034/viewer/2022050312/5f7464ddd2c8f57fcf5db7ed/html5/thumbnails/7.jpg)
SourceForge is big... really big
• SF.net hosted projects (in 3/2007):– 359 million page views (10.3 TB)– 67 million files downloaded (639.4 TB)
7
7
![Page 8: Best Practices for Open Source Projects · 2007-07-09 · Nagios: Development • Started in January of 1999 • Developers: 1 core • Commits: 696 (past 6 months) – 3-4 commits](https://reader034.vdocument.in/reader034/viewer/2022050312/5f7464ddd2c8f57fcf5db7ed/html5/thumbnails/8.jpg)
Always growing
0
250,000
500,000
750,000
1,000,000
1,250,000
1,500,000
2000 2001 2002 2003 2004 2005 2006 2007
Registered Users
8
![Page 9: Best Practices for Open Source Projects · 2007-07-09 · Nagios: Development • Started in January of 1999 • Developers: 1 core • Commits: 696 (past 6 months) – 3-4 commits](https://reader034.vdocument.in/reader034/viewer/2022050312/5f7464ddd2c8f57fcf5db7ed/html5/thumbnails/9.jpg)
Always growing
0
30,000
60,000
90,000
120,000
150,000
2000 2001 2002 2003 2004 2005 2006 2007
Registered Projects
9
![Page 10: Best Practices for Open Source Projects · 2007-07-09 · Nagios: Development • Started in January of 1999 • Developers: 1 core • Commits: 696 (past 6 months) – 3-4 commits](https://reader034.vdocument.in/reader034/viewer/2022050312/5f7464ddd2c8f57fcf5db7ed/html5/thumbnails/10.jpg)
Geographic Breakdown
Other39.7%
Poland2.7%
Japan2.7%
Canada3.2%
Brazil3.5%
UK4.5%
France5.4%
Italy5.5%
Spain5.5%
Germany8.4%
United States18.9%
10
10
![Page 11: Best Practices for Open Source Projects · 2007-07-09 · Nagios: Development • Started in January of 1999 • Developers: 1 core • Commits: 696 (past 6 months) – 3-4 commits](https://reader034.vdocument.in/reader034/viewer/2022050312/5f7464ddd2c8f57fcf5db7ed/html5/thumbnails/11.jpg)
Case Studies:Projects that havedone things right.
“If we knew what we were doing, it wouldn't be research.”
- Albert Einstein
11
![Page 12: Best Practices for Open Source Projects · 2007-07-09 · Nagios: Development • Started in January of 1999 • Developers: 1 core • Commits: 696 (past 6 months) – 3-4 commits](https://reader034.vdocument.in/reader034/viewer/2022050312/5f7464ddd2c8f57fcf5db7ed/html5/thumbnails/12.jpg)
Done things “right”?
• Projects have done things right when:– The main objective has been achieved– Users are happy with the solution
• Other signs:– Derivatives or forks are created– The solution has wide distribution
12
12
![Page 13: Best Practices for Open Source Projects · 2007-07-09 · Nagios: Development • Started in January of 1999 • Developers: 1 core • Commits: 696 (past 6 months) – 3-4 commits](https://reader034.vdocument.in/reader034/viewer/2022050312/5f7464ddd2c8f57fcf5db7ed/html5/thumbnails/13.jpg)
Introducing Audacity
• Purpose:– Allow users to record and edit multi-track
audio files• Audience:
– Audio hobbyists, garage bands, and anyone else who deals with audio
13
13
![Page 14: Best Practices for Open Source Projects · 2007-07-09 · Nagios: Development • Started in January of 1999 • Developers: 1 core • Commits: 696 (past 6 months) – 3-4 commits](https://reader034.vdocument.in/reader034/viewer/2022050312/5f7464ddd2c8f57fcf5db7ed/html5/thumbnails/14.jpg)
Audacity: Development
• First released in May of 2000• Developers: 6• Releases: 21 total• Commits: 352 (past 5 months)
– 2-3 commits per day average
14
14
![Page 15: Best Practices for Open Source Projects · 2007-07-09 · Nagios: Development • Started in January of 1999 • Developers: 1 core • Commits: 696 (past 6 months) – 3-4 commits](https://reader034.vdocument.in/reader034/viewer/2022050312/5f7464ddd2c8f57fcf5db7ed/html5/thumbnails/15.jpg)
Audacity: Consumption
0
375,000
750,000
1,125,000
1,500,000
2003 2004 2005 2006
Major Release
15
20022001
15
![Page 16: Best Practices for Open Source Projects · 2007-07-09 · Nagios: Development • Started in January of 1999 • Developers: 1 core • Commits: 696 (past 6 months) – 3-4 commits](https://reader034.vdocument.in/reader034/viewer/2022050312/5f7464ddd2c8f57fcf5db7ed/html5/thumbnails/16.jpg)
Introducing PDFCreator
• Purpose:– Allow creation of PDFs via the print
mechanism in Windows• Audience:
– Windows users who want to create PDFs– ...but don’t need the full features of
something like Adobe Acrobat or don’t want to be limited by its license.
16
16
![Page 17: Best Practices for Open Source Projects · 2007-07-09 · Nagios: Development • Started in January of 1999 • Developers: 1 core • Commits: 696 (past 6 months) – 3-4 commits](https://reader034.vdocument.in/reader034/viewer/2022050312/5f7464ddd2c8f57fcf5db7ed/html5/thumbnails/17.jpg)
PDFCreator: Development
• Started in July of 2002• Developers: 2• Commits: 146 (past 9 months)
– 1 commit every two days average• Releases: 9 total• Average times...
– to close a bug: 9 days– to close a patch: 15 days– to close a feature request: 11 days
17
17
![Page 18: Best Practices for Open Source Projects · 2007-07-09 · Nagios: Development • Started in January of 1999 • Developers: 1 core • Commits: 696 (past 6 months) – 3-4 commits](https://reader034.vdocument.in/reader034/viewer/2022050312/5f7464ddd2c8f57fcf5db7ed/html5/thumbnails/18.jpg)
PDFCreator: Consumption
0
137,500
275,000
412,500
550,000
2003 2004 2005 2006
Major Release
18
18
![Page 19: Best Practices for Open Source Projects · 2007-07-09 · Nagios: Development • Started in January of 1999 • Developers: 1 core • Commits: 696 (past 6 months) – 3-4 commits](https://reader034.vdocument.in/reader034/viewer/2022050312/5f7464ddd2c8f57fcf5db7ed/html5/thumbnails/19.jpg)
Introducing: Pidgin (was Gaim)
• Purpose:– Allow users to communicate using multiple
instant messaging protocols at the same time• Audience:
– Desktop users, people who chat (which is everybody)
19
19
![Page 20: Best Practices for Open Source Projects · 2007-07-09 · Nagios: Development • Started in January of 1999 • Developers: 1 core • Commits: 696 (past 6 months) – 3-4 commits](https://reader034.vdocument.in/reader034/viewer/2022050312/5f7464ddd2c8f57fcf5db7ed/html5/thumbnails/20.jpg)
Pidgin: Development
• Started in November of 1998• Developers: 24 (~12 core)• Commits: 1998 (past 9 months)
– 7 commits per day average• Releases: 107 total• Average times...
– to close a bug: 29 days– to close a patch: 16 days– to close a feature request: 21 days
20
20
![Page 21: Best Practices for Open Source Projects · 2007-07-09 · Nagios: Development • Started in January of 1999 • Developers: 1 core • Commits: 696 (past 6 months) – 3-4 commits](https://reader034.vdocument.in/reader034/viewer/2022050312/5f7464ddd2c8f57fcf5db7ed/html5/thumbnails/21.jpg)
Pidgin: Consumption
0
150,000
300,000
450,000
600,000
2002 2004 2005 200620012000 2003
Notable releases
21
21
![Page 22: Best Practices for Open Source Projects · 2007-07-09 · Nagios: Development • Started in January of 1999 • Developers: 1 core • Commits: 696 (past 6 months) – 3-4 commits](https://reader034.vdocument.in/reader034/viewer/2022050312/5f7464ddd2c8f57fcf5db7ed/html5/thumbnails/22.jpg)
Introducing: Nagios
• Purpose:– Host and system monitoring tool
• Audience:– Systems administrators, IT management,
service quality analysts
22
22
![Page 23: Best Practices for Open Source Projects · 2007-07-09 · Nagios: Development • Started in January of 1999 • Developers: 1 core • Commits: 696 (past 6 months) – 3-4 commits](https://reader034.vdocument.in/reader034/viewer/2022050312/5f7464ddd2c8f57fcf5db7ed/html5/thumbnails/23.jpg)
Nagios: Development
• Started in January of 1999• Developers: 1 core• Commits: 696 (past 6 months)
– 3-4 commits per day average• Releases: 35 total since May of 2002
– ~1 release every two months average
23
23
![Page 24: Best Practices for Open Source Projects · 2007-07-09 · Nagios: Development • Started in January of 1999 • Developers: 1 core • Commits: 696 (past 6 months) – 3-4 commits](https://reader034.vdocument.in/reader034/viewer/2022050312/5f7464ddd2c8f57fcf5db7ed/html5/thumbnails/24.jpg)
Nagios: Consumption
0
15,000
30,000
45,000
60,000
2002 2004 2005 20062003
Major releases
24
24
![Page 25: Best Practices for Open Source Projects · 2007-07-09 · Nagios: Development • Started in January of 1999 • Developers: 1 core • Commits: 696 (past 6 months) – 3-4 commits](https://reader034.vdocument.in/reader034/viewer/2022050312/5f7464ddd2c8f57fcf5db7ed/html5/thumbnails/25.jpg)
Introducing: phpMyAdmin
• Purpose:– Web-based management of MySQL servers
• Audience:– Database administrators, developers using
MySQL, system administrators, ISPs, education
25
25
![Page 26: Best Practices for Open Source Projects · 2007-07-09 · Nagios: Development • Started in January of 1999 • Developers: 1 core • Commits: 696 (past 6 months) – 3-4 commits](https://reader034.vdocument.in/reader034/viewer/2022050312/5f7464ddd2c8f57fcf5db7ed/html5/thumbnails/26.jpg)
phpMyAdmin: Development
• Started in 1998• Developers: 8• Commits: 383 (past 9 months)
– 1-2 commits per day average• Releases: 130• Average times...
– to close a bug: 47 days– to close a patch: 70 days– to close a feature request: 49 days
26
26
![Page 27: Best Practices for Open Source Projects · 2007-07-09 · Nagios: Development • Started in January of 1999 • Developers: 1 core • Commits: 696 (past 6 months) – 3-4 commits](https://reader034.vdocument.in/reader034/viewer/2022050312/5f7464ddd2c8f57fcf5db7ed/html5/thumbnails/27.jpg)
phpMyAdmin: Consumption
0
87,500
175,000
262,500
350,000
2003 2004 2005 2006
Major Release
2002
27
27
![Page 28: Best Practices for Open Source Projects · 2007-07-09 · Nagios: Development • Started in January of 1999 • Developers: 1 core • Commits: 696 (past 6 months) – 3-4 commits](https://reader034.vdocument.in/reader034/viewer/2022050312/5f7464ddd2c8f57fcf5db7ed/html5/thumbnails/28.jpg)
Introducing: Gallery
• Purpose:– Web-based photo management
• Audience:– People who want to share pictures
28
28
![Page 29: Best Practices for Open Source Projects · 2007-07-09 · Nagios: Development • Started in January of 1999 • Developers: 1 core • Commits: 696 (past 6 months) – 3-4 commits](https://reader034.vdocument.in/reader034/viewer/2022050312/5f7464ddd2c8f57fcf5db7ed/html5/thumbnails/29.jpg)
Gallery: Development
• Started in July of 2002• Developers: 22• Commits: 2163 (past 9 months)
– 7-8 commits per day average• Releases: 101 total
– Almost 2 per month average• Average times...
– to close a bug: 30 days– to close a patch: 11 days– to close a feature request: 51 days
29
29
![Page 30: Best Practices for Open Source Projects · 2007-07-09 · Nagios: Development • Started in January of 1999 • Developers: 1 core • Commits: 696 (past 6 months) – 3-4 commits](https://reader034.vdocument.in/reader034/viewer/2022050312/5f7464ddd2c8f57fcf5db7ed/html5/thumbnails/30.jpg)
Gallery: Consumption
0
50,000
100,000
150,000
200,000
2003 2004 2005 2006
Major Release
20022001
30
30
![Page 31: Best Practices for Open Source Projects · 2007-07-09 · Nagios: Development • Started in January of 1999 • Developers: 1 core • Commits: 696 (past 6 months) – 3-4 commits](https://reader034.vdocument.in/reader034/viewer/2022050312/5f7464ddd2c8f57fcf5db7ed/html5/thumbnails/31.jpg)
Analysis:What did they do right?
31
![Page 32: Best Practices for Open Source Projects · 2007-07-09 · Nagios: Development • Started in January of 1999 • Developers: 1 core • Commits: 696 (past 6 months) – 3-4 commits](https://reader034.vdocument.in/reader034/viewer/2022050312/5f7464ddd2c8f57fcf5db7ed/html5/thumbnails/32.jpg)
They have a good “problem”
• Every project is trying to solve a problem.– “Every good work of software starts by
scratching a developer's personal itch.” - ESR
• Every solution has an audience.– Who wants it to be solved?
• Every solution has an impact.– How often is it used?– How important is it to the user?
32
32
![Page 33: Best Practices for Open Source Projects · 2007-07-09 · Nagios: Development • Started in January of 1999 • Developers: 1 core • Commits: 696 (past 6 months) – 3-4 commits](https://reader034.vdocument.in/reader034/viewer/2022050312/5f7464ddd2c8f57fcf5db7ed/html5/thumbnails/33.jpg)
Understanding the “problem”
Audience
Impact
Firefox
Pidgin
Ross’s projectthat nobodyuses
phpMyAdminGallery
PDFCreator
33
Nagios
Audacity
33
![Page 34: Best Practices for Open Source Projects · 2007-07-09 · Nagios: Development • Started in January of 1999 • Developers: 1 core • Commits: 696 (past 6 months) – 3-4 commits](https://reader034.vdocument.in/reader034/viewer/2022050312/5f7464ddd2c8f57fcf5db7ed/html5/thumbnails/34.jpg)
Their barrier to entry is low
• Easy installation processes– Gallery has a good web-based installer– phpMyAdmin just gets untarred :)– Audacity / PDFCreator have native installers
• Cross-platform support– Audacity works on Linux, OS X, Windows– Gallery and phpMyAdmin run anywhere– Pidgin works on Linux and Windows
• Adium for OS X leverages libpurple
34
34
![Page 35: Best Practices for Open Source Projects · 2007-07-09 · Nagios: Development • Started in January of 1999 • Developers: 1 core • Commits: 696 (past 6 months) – 3-4 commits](https://reader034.vdocument.in/reader034/viewer/2022050312/5f7464ddd2c8f57fcf5db7ed/html5/thumbnails/35.jpg)
Their software works
• Extensive refactoring has improved quality– Pidgin: separation of libpurple– Gallery: complete rewrite for 2.0– Gallery: automated test framework– Audacity: separation of mezzo (in the works)
• Because consumption is high:– New versions are verified quickly– Bugs are reported in larger numbers
35
35
![Page 36: Best Practices for Open Source Projects · 2007-07-09 · Nagios: Development • Started in January of 1999 • Developers: 1 core • Commits: 696 (past 6 months) – 3-4 commits](https://reader034.vdocument.in/reader034/viewer/2022050312/5f7464ddd2c8f57fcf5db7ed/html5/thumbnails/36.jpg)
“Jagged binding surfaces”
• Most of these projects are hackable– Pidgin: Write against libpurple, write plugins– Gallery: Can write themes and plugins– Nagios: Can call external macros to do
almost anything– Audacity: Can write new effect plugins– Gallery, phpMyAdmin, Audacity, Nagios, and
Pidgin have wikis
36
36
![Page 37: Best Practices for Open Source Projects · 2007-07-09 · Nagios: Development • Started in January of 1999 • Developers: 1 core • Commits: 696 (past 6 months) – 3-4 commits](https://reader034.vdocument.in/reader034/viewer/2022050312/5f7464ddd2c8f57fcf5db7ed/html5/thumbnails/37.jpg)
They leverage standards
• These projects support tech standards that are accepted and proven.– PDFCreator: Leverages the popular PDF
standard and GhostScript– Gallery: Supports WebDAV, RSS, and too
many more to list– Audacity: Supports most audio formats,
AudioUnit and VST plugins – Pidgin: Supports common IM protocols
• This increases the potential audience
37
37
![Page 38: Best Practices for Open Source Projects · 2007-07-09 · Nagios: Development • Started in January of 1999 • Developers: 1 core • Commits: 696 (past 6 months) – 3-4 commits](https://reader034.vdocument.in/reader034/viewer/2022050312/5f7464ddd2c8f57fcf5db7ed/html5/thumbnails/38.jpg)
Best Practices:What should I do?
“Success is simply a matter of luck. Ask any failure.” - Earl Nightingale
38
![Page 39: Best Practices for Open Source Projects · 2007-07-09 · Nagios: Development • Started in January of 1999 • Developers: 1 core • Commits: 696 (past 6 months) – 3-4 commits](https://reader034.vdocument.in/reader034/viewer/2022050312/5f7464ddd2c8f57fcf5db7ed/html5/thumbnails/39.jpg)
Understand the barriers
39
Potential users
Casual Users
Contributors
Should I bother submitting this defect?Should I bother asking for this feature?
Should I bother downloading this?Should I bother installing this?
Should I bother fixing this defect myself?
Involved Users
39
![Page 40: Best Practices for Open Source Projects · 2007-07-09 · Nagios: Development • Started in January of 1999 • Developers: 1 core • Commits: 696 (past 6 months) – 3-4 commits](https://reader034.vdocument.in/reader034/viewer/2022050312/5f7464ddd2c8f57fcf5db7ed/html5/thumbnails/40.jpg)
Solve a good problem
• Create something you care about– Someone else probably will too.
• Serve a good purpose– Solve a new problem– Solve an existing problem better
• Have a clear, basic objective
40
40
![Page 41: Best Practices for Open Source Projects · 2007-07-09 · Nagios: Development • Started in January of 1999 • Developers: 1 core • Commits: 696 (past 6 months) – 3-4 commits](https://reader034.vdocument.in/reader034/viewer/2022050312/5f7464ddd2c8f57fcf5db7ed/html5/thumbnails/41.jpg)
Use the community
• Keep your barrier to entry low– Make it easy to install
• More users means more potential for participation– Keep it easy to provide feedback
• Follow up with outside contributors– Close out bugs, accept patches, and
implement features quickly• Accept criticism gracefully• Be willing to give up some control• Have “groupies”
41
41
![Page 42: Best Practices for Open Source Projects · 2007-07-09 · Nagios: Development • Started in January of 1999 • Developers: 1 core • Commits: 696 (past 6 months) – 3-4 commits](https://reader034.vdocument.in/reader034/viewer/2022050312/5f7464ddd2c8f57fcf5db7ed/html5/thumbnails/42.jpg)
Design for flexible use
• Have an extensible design– Create “jagged binding surfaces” for
contributers• Adopt designs and processes that allow
you to make a quality product– Automated testing– Logic separation
• Leverage existing standards if they apply
42
42