对组织开发开源项目的一点看法

对组织开发开源项目的一点看法

from http://inside2004.cublog.cn   

    刚才在Python版闲逛,看到一篇热贴:《有没有人发起一个python的项目啊》

    首先支持楼主和回文的朋友做这个东西,将来我这种不了解Java/PHP的人也好有的用

    另外说一说我自己对开源项目的一些看法:

    开源项目与公司项目不同:开源项目大多没有可靠的资金/开发者/时间等投入,所拥有的只有创意或者说好的想法,要靠这个来吸引感兴趣的开发者.

   我觉得一个开源项目要能发展,最首要的是有一个好的想法或者创意,要有自己的特点,然后能尽快的做出来原型实现,开始时如果过分考虑大而全的功能,这往往最后是做不成的,究竟开源作者大多是利用业余时间,大而全意味着大量的工作,且很难在短时间内出现结果,项目拖久了,开发者容易失去兴趣.

    不赞成项目起步时就花很多力气去制定过细的计划,制定详细计划是标准的有投资方的项目开发方式,适合于公司,而不是开源项目.开源项目应该把更多的精力投入到细节发展计划上.

    此外,开源项目允许失败,如果有天发现这些个想法已经过时,那么抛弃也没什么遗憾的,本来就是:Just for fun.

    我比较赞成的开源软件发展方式是滚雪球似的:

  


    最终如果项目成功且有了一定的拥护者,这时候可能当初项目开始时缺乏规划的缺点会暴露出来,没关系,是时候考虑重构了,这时候再制定详细计划也不晚.

    以上这些纯属个人看法,不见得成熟,说不定有些还是错误的,但希望能起到抛砖引玉的作用,欢迎大家讨论.

    写了这么多,其实我的目的是:

   前几天利用GAE(Google AppEngine)弄了一个项目:GAppProxy,但似乎在Windows上运行有些问题,我初学Python,且对Windows也不熟悉,这里这么多人对开源Python项目有兴趣,有没有哪位能帮我解决问题呢,谢谢,项目主页见http://gappproxy.googlecode.com.也欢迎来我的blog参观:http://inside2004.cublog.cn

    表拍我
不错。需要一个真正能投入的leader和一个可以工作的原型。


QUOTE:
原帖由 limodou 于 2008-6-14 22:39 发表
不错。需要一个真正能投入的leader和一个可以工作的原型。

对此我深表赞同。
根据我的研究,开源项目遵循着“马太效应”:一开始做的烂,就越来越烂;一开始做的好,就会越来越好。

因此一种简单而完美的开始是必须的。“可以工作的”原型,下场很可能是很不确定的,所以最好不要有这种想法,这样开源界的素质才能略有提升。
不能认同,原型最重要的是展现一个想法,是体现一种潜力,对原型就要求很高的强度是不现实的,否则为什么要叫"原型"?

完美是一个终极目标,如果开始就实现了,那接下来还怎么发展

一个真正能投入的leader倒是必须的.
原型之间必定有好坏,不是吗?
另外完美的原型不是完美的成品,不是吗?
说的有道理,我这些也都是个人看法,多说无益,期待能验证你想法的大作
楼主对我的帖子的精辟见解,实在是非常感谢。

我并不打算搞一个开源项目,只是希望大家在一个项目中切磋和交流,共同提高。

我把项目建在google code上,确实会引起你的误解。
呵呵,谦虚了,这些东西都是由小到大,由简陋到完善,最终不一定会成为一个好的软件,但开发过程中的交流讨论也很有意思.
完美的原型估计只是一个理想。如何完美?至少精力时间要花进去吧。而且完美只是一种程度,很难衡量。

所以可工作的原型反而是容易接受。开始是很重要的,原型为什么也重要。因为太多的开源项目正如楼主所说,一开始就引入了大量的讨论,反而最终什么都没有就结束了。因为每个人的理解差异太大,而且有时刚开始想得过于完美。并且如果只是嘴上说,没有可运行的东西,这说明一些都是0,如果别人不是项目的创建者,基本上不会有人替你做什么的。甚至现实的情况就是,哪怕是你已经做了一个原型,并且认为还不错,也未必会有人真正进行研究,更不要说贡献或参与,他们更多的是问你能不能实现这个,能不能实现那个。虽然也是一种好的建议,但是对你来说反而有可能让你本来为了兴趣而做的东西变得无趣。

开源这东西不仅仅是开源,而是真正有人能加入才是有意思的东西。所以说有个原型都未必会有人参与,更何况连个原型都没有更是纸上谈兵。所谓开始要开始哪些东西?搞开源真正有用的是代码,是程序,文档再好,思想再好,没个东西能跑起来,让人看到,还是水中花,镜中月的东西。看上去很美,但是中看不中用。有个可跑的东西,别人说不定好奇心一起就下载试试,也许会被吸引从而开始研究。而且也会让你感觉更有把握。

至于原型的好坏对于项目的成败,这个还主要是人的关系。水平高,开始可能就不低,水平低,开始可能就不高。但是水平是练出来的,是做出来的,是编出来的,要一点点来。谁都想做出好的项目,但是许多高水平的人一样会失败。决定项目成功的因素很多,许多是我们很难把握的,我们只能努力,去坚持,把不好做好,在前进中不断探索,哪怕这次失败,总结经验争取在下一个项目中成功。就象web2.0的一个基本原则:永远的beta版,不断完善功能,增强用户体验。