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.

First of all, I apologize if this is the wrong section of network to post this question. If it is, please feel free to move it to more appropriate location...

Question: I would like to hear your ideas regarding the ways of open source projects being started and run. I have an open-source content management system project and here some questions arise: How should I act? Shall I come up with a viable pre-alpha edition with working front- and back-ends first and then announce the project publicly? Or shall I announce it right away from the scratch? As a developer I know that one should use versioning system like Git or SVN, which I do, no problems there. And the merit of unit-testing is also something to remember, which, to be frank, I am not into at all... Project management - I am a beginner in that, at best. Coding techniques and experiences such as Agile development is something I want to explore...

In short, any ideas for a developer who is new to open-source world, is most welcome.

share|improve this question

migrated from stackoverflow.com Mar 7 '11 at 13:10

This question came from our site for professional and enthusiast programmers.

1  
Addendum: Please answer if you have experience with large-scale projects/open-source projects and try not to provide hypothetical/theoretical ideas, but practical, proven ones. –  Shehi Mar 7 '11 at 11:13
    
Start coding for something that solves a problem. Once it solves that problem in the most basic way; find a network of people that share the problem and ask them to try it out. "If you build it, they will come." –  jberger Sep 27 '11 at 17:54

3 Answers 3

I'd start stopping to write things like this:

Addendum: Please answer if you have experience with large-scale projects/open-source projects and try not to provide hypothetical/theoretical ideas, but practical, proven ones.

This kind of arrogant attitude actually kills more open source projects than anything else. Open source is less about source and more about collaboration. Welcome every one who wants to help, even when they do not have the practical experience to do such - helping open source projects to gain experience is common practice, as you probably know.

The second point is do not bother with promoting if you don't have working code. Go take a look at sourceforge or Google Code or wherever and see the sea of dead projects with nothing more than a few lines of code and a lot of good intentions. Code first, talk latter.

The best promotion is to have a "client": to have someone using your product so people can see it's actually in production. If it's a CMS: use it for the project site, for example.

If you have all of this your best bet in promotion is word-of-mouth. Ask for friends to use your project in their websites, for example. Blog about it and submit the article for aggregator sites like Digg or Slashdot but, please, don't do this if the project is not ready for prime time. No one wants to read about vapourware.

Good luck with your project.

share|improve this answer
    
That's been my idea: come up with something viable, solid so that people could see it in action and feel something real is in place. However, a friend of mine suggested to invite other devs from day-1, in order to avoid a lot roadmap changes later on. –  Shehi Mar 7 '11 at 14:22
9  
@Shehi Why would someone join a project without a single line of code written and just vaporware? I've seen projects with working products struggling to get more developers. I wouldn't waste time trying to find developers without something to show. –  Vitor Mar 7 '11 at 14:51

If you haven't read it, I suggest Raymond's The Cathedral and the Bazaar, and pay particular attention to his experience with Fetchmail.

Based on that, and my own experience, I suggest releasing code as soon as it solves a problem that other people might have. Yes, you should use some main stream source control, and post it on a server somewhere. You need to pick a license, and that can be a big deal depending on your goals. But in terms of what to publish and when, "release early, release often".

share|improve this answer
    
I will check that one out. Thx! –  Shehi Mar 7 '11 at 14:20

Your question is vague but I'll try an answer as best I can. I'm assuming that you want to attract developers to the project so you aren't the only person working on the project?

In which case you will probably want to get an account on Github and or Source forge so that anyone can have access to it and make changes. TO start with you will be the only developer working on it so you needn't worry about project management but as soon as there are multiple people involved, you'll want to instigate code reviews, set goals etc.

Goals can be put together in an issue tracking system like bugzilla, add them as bugs that need to be fixed and allow people to assign themselves to them, or have them email a central person who allocates people to issues.

You will want to draw a crowd of developers so you will need a website that describes the project, and where it see's it's self going in the short mid and long term, as well as screen shots etc.

A project blog/ twitter which allows users to keep track of where you are if also useful.

share|improve this answer
    
To answer your first question: Yes, that is the intention. –  Shehi Mar 7 '11 at 14:19

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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