当运作一个自由软件项目,你不必在日常工作中谈论沉重的哲学命题。程序员不会要求项目中的其他人和自己在所有事情上看法一致(那些这一点上坚持的人很快就会发现他们无法在任何项目内工作)。但是你必须了解"自由还是开源"之争的存在。部分原因是避免谈论引起部分开发者抵触的事情,部分是因为理解开发者的动机是管理一个项目最好的方法──有时,是唯一的方法。
自由软件是一种有关选择的文化。你必须首先理解为什么人们会参与其中,才能成功地运作一个项目。强制是不管用的。如果一个项目让人不高兴了,他们会立刻转移到另一个项目。自由软件的独特之处还在于志愿者社区的投资强度。大部分内部的人从来没有和另一个参与者面对面地交流过,只是在高兴时捐助一点时间。通常人类用来互相结识并结成牢固的团体的渠道被压缩成了一条细管:在键盘上打字然后通过电缆传输。因此,形成一个有凝聚力和专注力的组织需要花上很长时间。相反,在首次接触的五分钟内流失一个潜在的开发者是非常容易的。如果对一个项目没有良好的第一印象,新来者很少会给予第二次机会。
关系的无常性,或者是 潜在的无常性,也许是面对一个新项目时最让人畏惧的一点。如何才能使这些人呆在一起尽可能长的时间做一些有用的事?这个问题的答案足可以用本书剩余的篇幅来说明,但如果必须用一句话来回答,会是这样:
人们应该能感到他们同一个项目的联系和对它的影响力是直接同他们的贡献成正比的。
没有哪类开发者或是潜在的开发者应该感到自己由于非技术原因而被区别对待。特别是项目的赞助商或是领取报酬的开发者在这一点上要特别小心,这一点将在后面的第 5 章 Money详细讨论。当然,这不是说如果没有公司赞助商的话就可以高枕无忧了,钱只是能影响项目成功的许多因素其中之一。还有诸如语言的选择、协议的选择、决定开发进程、确定设立何种类型的基础架构之类的许多其他因素。在良好的基础上开始一个项目是下一章的题目。