Nice question, though it's more worthy of a book than a simple article, IMHO. And I hope it comes as no surprise that most of the best advice is social, not technical.
Here are some observations in no particular order:
Don't make a big infrastructure investment up front Unless you're already an Apache committer (or somesuch), don't shop around for a sponsoring organization or host your own servers, etc. Get up on GitHub in 5 minutes and don't look back. Put your energy in features.
Lower the barrier for entry Don't make potential contributors jump through hoops or undergo a background check before you'll listen to their ideas. Open source projects are networked economies... you need the energy of others. Even misguided activity is better than no activity on your project. You can always steer the codebase in a better direction later.
Minimize custom code Don't write a custom logging tool or XML parsing API... there are open source implementations that are (1) good enough, (2) better maintained, and (3) better than yours will become anyway. The more energy you can focus on your core problem, the better.
Live on the edge People and organizations will only invest in improving your project if they will directly benefit. Eat your own dogfood. Create dependencies in your other projects (like with your employer) on your open source project, even if it isn't "perfect" yet. (Hint: software projects are never perfect, they're either works-in-progress or dead.)
GitHub is a good place because it makes it easy for someone with even just a little bit of interest to fork your project and apply his/her patches to share with others.
But it's really about the attitudes around your project more than where you host it or other simple considerations like that. Be benevolent, serious, and judicious, keep a community going even though it will be pretty small for a while, and so on. Accept patches that should be accepted, reject patches that should be rejected. Just be a good person, developer, and manager, and apply those skills to your project, and it should be fine.
You are saying it yourself. The most important thing is that it should have people who care enough about it to deal with the problems instead of abandoning.
If no one cares enough, it will die again. Try a different project where you do care enough.
"A lot of people interested in seeing it realized" means nothing if nobody will actually do the work, fight the fights and stay put.
I don't think it's set in stone, but for me the biggest point is that your project should fill a gap in the existing ecosystem. In other words, there has to a space for your project to live.
Other than that, I can say that the best way to stay motivated is to work together with people. You say that there are still a lot of people interesting in seeing it realized. So, why don't those people do something about it? Surely they can do something. I think a common misconception is that contributing to an open-source project means you have to be able to write code. There's more to it:
Write documentation
Create graphical elements
Discuss features and roadmaps
promote the project
etc. etc.
Sure, not all of these points are applicable to every project, but trying to get people to commit to a project will eventually help you and/or your projectmembers to stay commited as well. You don't want to let down all the other folks on the project, do you? ;-)
大多数自由和开源软件项目都是由一个人启动的。在这个人编写了一些代码来完成一些模糊有用的事情后,其他人就会加入。因此,如果您想启动一个项目,请自己动手,在 Google Code 之类的网站上建立一个网站,然后编写一些代码。最后一点是最重要的。
This is kind of off-topic on SO, but I'll bite anyway.
Most FOSS projects are started by a SINGLE person. Other people come on board after this person has produced some code that does something vaguely useful. So if you want to start a project, do it yourself, set up a site on something like Google Code, and write some code. The last is the most important.
发布评论
评论(5)
好问题,尽管它比一篇简单的文章更值得写一本书,恕我直言。我希望大多数最好的建议都是社交性的,而不是技术性的,这并不奇怪。
以下是一些观察结果(排名不分先后):
Nice question, though it's more worthy of a book than a simple article, IMHO. And I hope it comes as no surprise that most of the best advice is social, not technical.
Here are some observations in no particular order:
GitHub 是一个好地方,因为它让那些哪怕只有一点点兴趣的人也能轻松分叉你的项目并应用他/她的补丁与其他人分享。
但这实际上更多的是关于你的项目的态度,而不是你主持项目的地方或其他类似的简单考虑。仁慈、严肃、明智,让社区继续运转,即使它在一段时间内规模很小,等等。接受应该接受的补丁,拒绝应该拒绝的补丁。只要成为一个好人、开发人员和经理,并将这些技能应用到您的项目中,就应该没问题。
GitHub is a good place because it makes it easy for someone with even just a little bit of interest to fork your project and apply his/her patches to share with others.
But it's really about the attitudes around your project more than where you host it or other simple considerations like that. Be benevolent, serious, and judicious, keep a community going even though it will be pretty small for a while, and so on. Accept patches that should be accepted, reject patches that should be rejected. Just be a good person, developer, and manager, and apply those skills to your project, and it should be fine.
你自己说的。最重要的是要有足够关心它的人来处理问题而不是放弃。
如果没有人足够关心,它就会再次死亡。尝试一个你足够关心的不同项目。
如果没有人愿意真正去做这项工作、奋战到底、坚持原地踏步,那么“很多人有兴趣看到它实现”就毫无意义。
You are saying it yourself. The most important thing is that it should have people who care enough about it to deal with the problems instead of abandoning.
If no one cares enough, it will die again. Try a different project where you do care enough.
"A lot of people interested in seeing it realized" means nothing if nobody will actually do the work, fight the fights and stay put.
我不认为这是一成不变的,但对我来说最重要的一点是你的项目应该填补现有生态系统的空白。换句话说,你的项目必须有一个生存的空间。
除此之外,我可以说保持动力的最好方法是与人合作。你说仍然有很多人有兴趣看到它的实现。那么,这些人为什么不采取行动呢?他们当然可以做点什么。我认为一个常见的误解是,为开源项目做出贡献意味着您必须能够编写代码。
还有更多内容:
当然,并非所有这些要点都适用于每个项目,但尝试让人们致力于项目最终将帮助您和/或者您的项目成员也保持承诺。您不想让项目中的所有其他人失望,对吗? ;-)
I don't think it's set in stone, but for me the biggest point is that your project should fill a gap in the existing ecosystem. In other words, there has to a space for your project to live.
Other than that, I can say that the best way to stay motivated is to work together with people. You say that there are still a lot of people interesting in seeing it realized. So, why don't those people do something about it? Surely they can do something. I think a common misconception is that contributing to an open-source project means you have to be able to write code.
There's more to it:
Sure, not all of these points are applicable to every project, but trying to get people to commit to a project will eventually help you and/or your projectmembers to stay commited as well. You don't want to let down all the other folks on the project, do you? ;-)
这有点题外话,但无论如何我还是会咬下去。
大多数自由和开源软件项目都是由一个人启动的。在这个人编写了一些代码来完成一些模糊有用的事情后,其他人就会加入。因此,如果您想启动一个项目,请自己动手,在 Google Code 之类的网站上建立一个网站,然后编写一些代码。最后一点是最重要的。
This is kind of off-topic on SO, but I'll bite anyway.
Most FOSS projects are started by a SINGLE person. Other people come on board after this person has produced some code that does something vaguely useful. So if you want to start a project, do it yourself, set up a site on something like Google Code, and write some code. The last is the most important.