Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

To start an open-source project is not just to throw up the source code on some public repository and then being happy with that. You should have technical (besides user) documentation, information on how to contribute etc.

If creating a checklist over important things to do, what would you include on it?

share|improve this question

closed as too broad by gnat, BЈовић, GlenH7, MichaelT, Eric King Aug 1 '13 at 23:27

There are either too many possible answers, or good answers would be too long for this format. Please add details to narrow the answer set or to isolate an issue that can be answered in a few paragraphs.If this question can be reworded to fit the rules in the help center, please edit the question.

1  
+1 Good Question. May I recommend: gawande.com/the-checklist-manifesto –  JeffO Feb 24 '11 at 18:33
2  
I recommend Karl Fogel's (one of the original subversion authors) book Producing Open Source Software- how to run a successful free software project It's an O'Reilly book. –  Michael Feb 24 '11 at 19:10
    
Producing Open Source Software by Karl Fogel should help you with that. The book is available entirely online. –  Coyote21 Feb 25 '11 at 0:23

2 Answers 2

up vote 27 down vote accepted

The most important thing is:

  • use the project yourself and get it into a useful state where you enjoy using it. be sure the project works and is useful.

Things I'd put in the early priorities are:

  • have a simple "what is it?" web site with links to some discussion forum (whether email or chat) and to the source code repository
  • be sure the code compiles and usually works, don't commit work-in-progress or half-ass patches on the main branch that break things, because then other people's work would be disrupted
  • put a license file in the code repository with a well-known license, and mark the copyright owner (probably you, or your company). don't omit the license, make up a license, or use an obscure license.
  • have instructions for how to contribute, say in a HACKING file or include in your README. This should include where to send patches, how to format patches, code indentation rules, any other important conventions of the project
  • have instructions on how to report a bug
  • be helpful on the mailing list or whatever your forums are

After those priorities I'd say:

  • documentation (this saves you work on the mailing list... make a FAQ from your list posts is a simple start)
  • try to do things in a "normal" way (don't invent your own build system or use some weird one, don't use 1-space indentation, don't be annoyingly quirky in general because it adds learning curve)
  • promote your project. marketing marketing marketing. You need some blogs and news sites and stuff like that to cover you, and then when people show up interested, you need to talk to them and be sure they get it working and look at their patches. Maybe mention your project in the forums for related projects.
  • always review and accept patches as quickly as humanly possible. Immediately is perfect. More than a couple days and you are losing lots of people.
  • always reply to email about the project as quickly as humanly possible.
  • create a welcoming/positive/fun atmosphere. don't be a jerk. say please and thank you and hand out praise. chase off any jackasses that turn up and start to poison the community. try to meet people in person when you can and form bonds.
share|improve this answer

For starters, Lower the barrier to entry, this means:

  • make it easy to install,
  • make it easy to modify,
  • make it easy to find your project,
  • just make everything you'd want to do easy.

How?

  • Give an answer to every question you can think of in your documentation,
  • Create an easy to use build system,
  • Clean up your code, nobody likes working on spaghetti code,
  • Make something that people have a need for.
share|improve this answer

Not the answer you're looking for? Browse other questions tagged or ask your own question.