Succeeding with FOSS!

74
Succeeding with FOSS! Make your successful open source software PHP DevCon 2012 Basis SoftEXPO 2012

description

Make your successful open source software http://mahtonu.wordpress.com

Transcript of Succeeding with FOSS!

Page 1: Succeeding with FOSS!

Succeeding with FOSS!Make your successful open source software

PHP DevCon 2012 Basis SoftEXPO 2012

Page 2: Succeeding with FOSS!

For whom is this?

software developers and managers who are considering starting an open source project, or who have started one and are wondering what to do now.

Page 3: Succeeding with FOSS!

What is inside?✓ Introducing FOSS

✓ Getting started

✓ Technical Infrastructure

✓ Social Infrastructure

✓ Managing Volunteers

✓ Money!

✓ Packaging, Releasing, and Daily Development

✓ Licenses, Copyrights, and Patents

Page 4: Succeeding with FOSS!

What is FOSS anyway!

Free and Open Source Software

Now lets break it down

Page 5: Succeeding with FOSS!
Page 6: Succeeding with FOSS!

the "free software" sense

What do you think about the term ‘Free’?

Page 7: Succeeding with FOSS!

Free Vs. Open Source

all free software is zero-cost, but not all zero-cost software is free

- Able to get the source code?- Have the right to modify or redistribute it?

Page 8: Succeeding with FOSS!

“free as in freedom” – Stallman

Page 9: Succeeding with FOSS!
Page 10: Succeeding with FOSS!

Got Some Freaking Ideas!!!

How to get started?

Page 11: Succeeding with FOSS!

Getting Started

Page 12: Succeeding with FOSS!

Hell yeah! Getting started

Page 13: Succeeding with FOSS!

The hardest part about launching a free software project is transforming a private vision into a public one

Page 14: Succeeding with FOSS!

How?

Page 15: Succeeding with FOSS!

Choose a Good NameRelevant to project

Easy to remember

Page 16: Succeeding with FOSS!

Have a clear mission statement

The next thing people will look for is a quick description, a mission statement

Should be on the front page, preferably right under the project's name

Page 17: Succeeding with FOSS!

Is that free?

Page 18: Succeeding with FOSS!
Page 19: Succeeding with FOSS!

State That the Project is Free

Like GIT did…

Page 20: Succeeding with FOSS!

Features and Requirements List

Page 21: Succeeding with FOSS!

Development StatusPeople always want to know how a project is doing

they want to know how actively it is maintained, how often it puts out new releases, how responsive it is likely to be to bug reports, etc.

Page 22: Succeeding with FOSS!

Development StatusAlpha and Beta

The term alpha usually means a first release, with which users can get real work done and which has all the intended functionality, but which also has known bugs. The main purpose of alpha software is to generate feedback, so the developers know what to work on. The next stage, beta, means the software has had all the serious bugs fixed, but has not yet been tested enough to certify for release.

Page 23: Succeeding with FOSS!
Page 24: Succeeding with FOSS!

Downloads

The software should be downloadable as source code in standard formats.

Give a unique version number to the release

Page 25: Succeeding with FOSS!
Page 26: Succeeding with FOSS!
Page 27: Succeeding with FOSS!

Communications Channels

Forums, mailing lists, chat rooms, and IRC channels

Page 28: Succeeding with FOSS!

Announcinggo to http://freecode.com/, click on Submit in the top navigation bar, and fill out a form announcing your new project.

Post to mailing lists or newsgroups: to direct people to your project's own forums for follow-up discussion (by setting the Reply-to header).

Page 29: Succeeding with FOSS!

Announcing

Page 30: Succeeding with FOSS!

Technical issues

Page 31: Succeeding with FOSS!

Website Pick *.org as official home

Centralized information from the project out to the public

Bind together the other tools (the version control system, bug tracker)

Page 33: Succeeding with FOSS!

ToolsMailman — http://www.list.org/

PHPList - http://www.phplist.com/

Page 34: Succeeding with FOSS!

SCM/ Version Control System

combination of technologies and practices for tracking and controlling changes to a project's files, in particular to source code, documentation, and web pages

If you have never used version control before, the first thing you should do is go find someone who has, and get them to join your project.

Page 35: Succeeding with FOSS!

"We see you have expertise to make commits in a certain domain, so go for it."

"Not only are we asserting a limit on your expertise, we're also a bit suspicious about your intentions."

Page 36: Succeeding with FOSS!

Version everything

Allow Committers

Browsability

Use branches to avoid bottlenecks

Code review

Change Log

Page 37: Succeeding with FOSS!

Version Control Means You Can Relax

Page 38: Succeeding with FOSS!

Tools

GIT (Distributed) - http://www.git-scm.org

Subversion (Centralized) - http://subversion.tigris.org/

Page 39: Succeeding with FOSS!

Bug Tracker

The tracker must be connected to a mailing list

Page 40: Succeeding with FOSS!

ToolsRedmine — http://www.redmine.org/

Bugzilla — http://www.bugzilla.org/

Flyspray — http://www.flyspray.org/

Trac — http://trac.edgewall.com/

Page 41: Succeeding with FOSS!

RSS FeedsSpread your updates

Page 42: Succeeding with FOSS!

WikisA wiki is a web site that allows any visitor to edit or extend its content;

"wiki" (from a Hawaiian word meaning "quick" or "super-fast")

Page 43: Succeeding with FOSS!

ToolsMediaWiki - http://www.mediawiki.org

Page 44: Succeeding with FOSS!

Free Hosting! yummyThere are a few sites that provide free hosting and infrastructure for open source projects: a web area, version control, a bug tracker, a download area, chat forums, regular backups, etc.

you get a lot for free; what you give up, obviously, is fine-grained control over the user experience.

Page 45: Succeeding with FOSS!

ToolsGitHub (Git)- http://github.com/

Google Code Hosting (Subversion and Mercurial ) http://code.google.com/hosting/

BitBucket (Git and Mercurial: integrates with JIRA, Jenkins, Pivotal Tracker) - https://bitbucket.org

Springloops (Git, SVN) - http://www.springloops.com/v2/

Page 46: Succeeding with FOSS!

Get your codes into social & political issues

Page 47: Succeeding with FOSS!

forkabilitythe ability of anyone to take a copy of the source code and use it to start a competing project,

Good or Bad?

if fewer than half of the developers are in favor?

Page 48: Succeeding with FOSS!

Benevolent Dictators

Page 49: Succeeding with FOSS!

Benevolent DictatorsThe benevolent dictator model is exactly what it sounds like: final decision-making authority rests with one person, who, by virtue of personality and experience, is expected to use it wisely.

Page 50: Succeeding with FOSS!

Democracy"Wait, I didn't agree to that. We need to hash this out some more."

"I assume we all agree that this bug needs to be fixed, and that this is the way to fix it."

"Time to vote"

Page 51: Succeeding with FOSS!

Democracy

Page 52: Succeeding with FOSS!

Angel Volunteers

Page 53: Succeeding with FOSS!
Page 54: Succeeding with FOSS!

Getting the Most Out of Volunteers

Why do volunteers work on free software projects?

" hey! you do this Vs. who can do this?"

"Would you be willing to look at this bug?"

"Follow up"

Use "Praise & Criticism"

Use "Automation" i.e. testing

Page 55: Succeeding with FOSS!

Share Management Tasks as Well as Technical Tasks

Translation Manager

Documentation Manager

Issue Manager

FAQ Manager

Page 56: Succeeding with FOSS!

Committers, who?will bring the best results for the code?

"If you have 100 committers, 10 of whom make large changes on a regular basis, and the other 90 of whom just fix typos and small bugs a few times a year, that's still better than having only the 10. "

Page 57: Succeeding with FOSS!

Credit

Credit is the primary

currency of

the free software world

Page 58: Succeeding with FOSS!

Money! earnings or spendings

Page 59: Succeeding with FOSS!

why open source projects get funded?

Everybody likes a prime idea

Page 60: Succeeding with FOSS!

Corporate funding of free software development is not a new phenomenon

Sharing the burden

Augmenting servicesExample: CollabNet's support of http://subversion.tigris.org/

Undermining a competitorExample: http://www.openoffice.org/

Marketing - think image, think brand value

Dual-licensingExample: MySQL and Sleepycat

Donations (donation button, mugs, T-shirts)Example: www.wikipedia.org

Page 61: Succeeding with FOSS!

Money Can't Buy You Love

Hey! Mr. Chowdhury! we dont want your so called company branding in our project

Page 62: Succeeding with FOSS!

Google Summer of Code

For students: http://code.google.com/soc/

Page 63: Succeeding with FOSS!

Kickstarter

Kickstarter is the world's largest funding platform for creative projects. Every week, tens of thousands of amazing people pledge millions of dollars to projects from the worlds of music, film, art, technology, design, food, publishing and other creative fields.

http://www.kickstarter.com/

Page 64: Succeeding with FOSS!

Packaging, Releasing, and Daily Development

Release Numbering

Release Branches - always use a release branch

Maintaining Multiple Release Lines

Page 65: Succeeding with FOSS!
Page 66: Succeeding with FOSS!

Licenses, Copyrights, and Patents

Page 67: Succeeding with FOSS!

Choosing a License and Applying It

The "Do Anything" LicensesIf you're comfortable with your project's code potentially being used in proprietary programs, then use an MIT/X-style license (http://www.opensource.org/licenses/mit-license.php)

The GPLIf you don't want your code to be used in proprietary programs, use the GNU General Public License (http://www.gnu.org/licenses/gpl.html).

Page 68: Succeeding with FOSS!

Applying a License to Your Software

You don't need to include the actual text of the license there; just give the name of the license, and make it link to the full license text on another page.

The software itself must contain the license

The standard way to do this is to put the full license text in a file called COPYING (or LICENSE)

Page 69: Succeeding with FOSS!

The GNU GPL says to put a notice like this at the top of each source file

Copyright (C) <year> <name of author>

This program is free software: you can redistribute it and/or modify

it under the terms of the GNU General Public License as published by

the Free Software Foundation, either version 3 of the License, or

(at your option) any later version.

This program is distributed in the hope that it will be useful,

but WITHOUT ANY WARRANTY; without even the implied warranty of

MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the

GNU General Public License for more details.

You should have received a copy of the GNU General Public License

along with this program. If not, see <http://www.gnu.org/licenses/>

Page 70: Succeeding with FOSS!

Dual Licensing Schemes

Patents

Page 71: Succeeding with FOSS!

Who am i?m a hossain tonu

http://mahtonu.wordpress.com

@mahtonu

Page 72: Succeeding with FOSS!

Writing a Book

coming this march

Page 73: Succeeding with FOSS!

i dont have any licensing issues with these slides, cool!

Thanks :)

questions?

Page 74: Succeeding with FOSS!

Reference

Producing Open Source Software - Karl Fogel

http://www.producingoss.com/