Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

Aside from using a specific tool such as JIRA or Bugzilla, what techniques or development methodologies do you use to keep your OSS development efforts organized?

and more importantly, how do you prioritize which features to deliver when there really isn't any paying clients that decide which features are the most important to deliver?

share|improve this question

closed as primarily opinion-based by gnat, MichaelT, Robert Harvey, GlenH7, Yusubov Aug 12 '13 at 14:48

Many good questions generate some degree of opinion based on expert experience, but answers to this question will tend to be almost entirely based on opinions, rather than facts, references, or specific expertise.If this question can be reworded to fit the rules in the help center, please edit the question.

up vote 5 down vote accepted

Git + GitHub has to be one of the biggest boosts organising open source projects in recent years.

share|improve this answer

how do you prioritize which features to deliver when there really isn't any paying clients that decide which features are the most important to deliver?

Create and perfect whatever features you want. Make the best possible app (or framework or tool or whatever) for your specific needs. You certainly won't make everyone happy, but the folks that have the same needs as you will love it.

share|improve this answer
But don't get feature-happy! You have to stay focused. – Mark C Jan 21 '11 at 4:39
Of course! "Create and perfect". One feature that does exactly what I need is better than 20 features that are all mediocre. – kubi Jan 21 '11 at 11:05

As you mentioned, Bug/Issue trackers are a huge help in keeping everything on track. As for prioritizing features, this should be left to the community. Voting is the best way to prioritize. Enable voting in the bug tracker and allow users as well as contributors to vote on the highest priority features.

Other tools to consider, GIT/GitHub as a version control system. This is an easy way to share the source code and allow others to work on the code base. Also, consider a integration server such as Team City or Cruise Control. If you automate your builds, you can publish a new build every time there is a check-in. This will allow users to immediately consume a new feature or change without waiting for a formal release or building the source themselves.

share|improve this answer
Voting can be skewed by the vocal minority. Prefer an anonymous automated system if you can. – Loki Astari Jan 21 '11 at 0:14

As an extra tip, read the 'bible' for this: Producing Open Source Software :

Producing Open Source Software is a book about the human side of open source development. It describes how successful projects operate, the expectations of users and developers, and the culture of free software.

share|improve this answer

You can learn something in pritiorizing feature by reviewing the way StackOverflow do it. Let anyone asks for a feature, let others vote on it. Another reference are similar open source/enterprise applications. In short: let others give you idea, but you and the team decide what to do.

About management: I think BugTracker(JIRA, Trac) + wiki + code base (SVN, Mercurial) combination is good enough.

share|improve this answer

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