# 现状
当运作一个自由软件项目时,你不必在日常工作中谈论沉重的哲学命题。程序员不会要求项目中的其他人和自己在所有事情上能够看法一致(那些这一点上坚持的人很快就会发现他们无法在任何项目内工作)。但是你必须了解“自由还是开源”之争的存在,部分原因是避免谈论引起部分开发者抵触的事情,部分是因为理解开发者的动机是管理一个项目最好的方法—有时,是管理一个项目的*唯一*方法。
自由软件是一种有关选择的文化。你必须首先理解为什么人们会参与其中,才能成功地运作一个项目。强制是不管用的。如果一个项目让人不高兴了,他们会立刻转移到另一个项目。自由软件的独特之处还在于志愿者社区的投资强度。大部分内部的人从来没有和另一个参与者面对面地交流过,只是在高兴时捐助一点时间。通常人类用来互相结识并结成牢固的团体的渠道被压缩成了一条细管:在键盘上打字然后通过电缆传输。因此,形成一个有凝聚力和专注力的组织需要花上很长时间。相反,在首次接触的五分钟内流失一个潜在的开发者是非常容易的。如果对一个项目没有良好的第一印象,新来者很少会给予第二次机会。
关系的无常性,或者是*潜在的*无常性,也许是面对一个新项目时最让人畏惧的一点。如何才能使这些人尽可能长时间的呆在一起做一些有用的事?这个问题的答案足可以用本书剩余的篇幅来说明,但如果必须用一句话来回答,会是这样:
> *人们应该能感到他们同一个项目的联系和对它的影响力是直接同他们的贡献成正比的。*
没有哪类开发者或是潜在的开发者应该感到自己由于非技术原因而被区别对待。特别是项目的赞助商或是领取报酬的开发者在这一点上要特别小心,这一点将在后面的[Chapter 5, *金钱*](# "Chapter 5. 金钱")详细讨论。当然,这不是说如果没有公司赞助商的话就可以高枕无忧了。钱只是能影响项目成功的许多因素之一。还有诸如语言的选择、许可证的选择、何种开发过程、设立何种类型的基础架构之类的许多其他因素。在良好的基础上开始一个项目是[下一章](# "Chapter 2. 起步")的主题。
- 前言
- 为什么写这本书?
- 谁应该读本书?
- 资料来源
- 致谢
- 免责声明
- 1. 介绍
- 历史
- 现状
- 2. 起步
- 从你拥有的开始
- 选择许可证并应用
- 设置风格
- 通告
- 3. 技术基础设施
- 一个项目需要什么
- 邮件列表
- 版本控制
- Bug跟踪
- IRC / 实时聊天系统
- RSS供稿
- Wikis
- 网站
- 4. 社会和政治的基础架构
- 慈善独裁者
- 共识为基础的民主(Consensus-based Democracy)
- 写下所有的内容
- 5. 金钱
- 参与的类型
- 长期雇佣
- 作为一些个体出现,而不是一个整体
- 公开你的动机
- 钱不能让你可爱
- 契约
- 资助非编程活动
- 市场营销
- 6. 交流
- 人如其文
- 避免常见的陷阱
- 刺儿头
- 处理成长
- Bug跟踪系统中无对话
- 公开性
- 7. 打包、发布和日常开发
- 版本号
- 发布分支
- 稳定发布版本
- 打包
- 测试和发布
- 维护多发布线
- 发布和日常开发
- 8. 管理志愿者
- 从志愿者中获取最多
- 像分担技术任务一样分担管理任务
- 转化
- 提交者
- 荣誉
- 分叉
- 9. 许可证,版权和专利
- 术语
- 许可证的方面
- GPL和许可证兼容性
- 选择一个许可证
- 版权分配和所有权
- 双许可证模式
- 专利
- 深入资源
- A. 自由版本控制系统
- B. 自由Bug跟踪系统
- C. 为什么我要关注车棚的颜色?
- D. 报告bug的样例指导
- E. 版权