参考文献

印刷书籍

卡尔·福格尔 (Karl Fogel), 使用 CVS 进行开源开发, Coriolois Open Press, 1999, 1-57610-490-7。

福格尔的“在自由软件世界中使用 CVS 指南”远不止其副标题所言。正如出版商自己所说:使用 CVS 进行开源开发是最早可用的书籍之一,它教您开源软件的开发和实施。”它还包括我见过的关于 CVS 的最佳参考和教程。这本书非常出色,以至于它促使我编写了这个 HOWTO,因为我认为它试图发挥的作用非常重要和有用。如果您有能力并且对运行自由软件项目真正感兴趣,请查阅或购买它。

劳伦斯·莱西格 (Lawrence Lessig), 代码与网络空间的其它法则, Basic Books, 2000, 0-465-03913-8。

虽然它只是简要地谈到了自由软件(并且通过小心翼翼地避开自由软件/开源问题,使用了只有律师才能创造的词汇 “开放代码”),但莱西格的书非常精彩。这本书由一位律师撰写,讲述了互联网上的监管不是通过法律完成的,而是通过代码本身完成的,以及代码的性质将如何决定未来自由的性质。除了快速且引人入胜的阅读体验外,它还提供了一些很酷的历史,并描述了我们需要自由软件的方式,其力量胜过我在 RMS 的 “阅读的权利”之外读到的任何内容。

埃里克·雷蒙 (Eric Raymond), 大教堂与集市一位偶然的革命家对 Linux 和开源的思考, O'Reilly, 1999, 1-56592-724-9。

虽然我必须诚实地说,我已经不像以前那样是 ESR 的粉丝了,但这本书在让我达到今天的成就方面被证明是宝贵的。赋予这本书标题的文章很好地概述了自由软件流程,并且令人惊叹地论证了自由软件/开源开发是通往更好软件的道路。本书的其余部分是 ESR 的其他文章,其中大部分都发布在他的网站上。尽管如此,拥有一本纸质书仍然是一件好事,也是每个自由软件/开源黑客都应该阅读的东西。

可访问的网络资源

乔治·N·达弗莫斯 (George N Dafermos), 管理和虚拟分散网络:Linux 项目

由于这篇论文包含了自己的摘要,我想我会在此逐字逐句地包含它

本文考察了最新的范式——虚拟网络(化)组织——以及地理上分散的知识工作者是否可以在没有中央计划的情况下为一个项目进行虚拟协作。协调、管理和知识的作用成为关注的中心领域。选择 Linux 项目及其开发模式作为案例分析,并确定了这种组织设计的关键成功因素。研究继续制定一个可以应用于各种虚拟分散工作的框架,并得出结论:当组织与周围社区之间存在密切互动和不受限制的信息共享时,价值创造最大化。因此,这种组织范式的潜在成功或失败取决于周围社区的奉献精神和参与程度。

这篇论文是有人以本书 HOWTO 作者的身份推荐给我的,我对此印象深刻。它是由一位管理专业的毕业生撰写的,我认为它成功地评估了 Linux 项目,将其作为一个新的管理范例的例子——作为自由软件项目的维护者,将把自己置于这个范例的中心。

作为一个试图控制应用程序并引导其在自由软件世界中取得成功的开发人员,我不确定达弗莫斯的论点有多有用。然而,它确实为我的 HOWTO 提供了理论上的理由——自由软件项目管理不同于专有软件项目管理的另一种生物。如果您对自由软件项目管理与其他类型的管理在概念和理论上的不同之处感兴趣,这是一篇很棒的论文。如果本文回答了 “如何?” 的问题,那么达弗莫斯则回答了(更难捍卫的) “为什么?” 的问题,并且做得非常好。

理查德·加布里埃尔 (Richard Gabriel), “更糟即更好”的兴起

一篇写得很好的文章,尽管我认为标题可能和文章的其余部分一样让人困惑。它很好地描述了如何设计程序,使其能够成功并随着增长保持可维护性。

蒙蒂·曼利 (Montey Manley), 以开源方式管理项目, Linux 编程, 2000 年 10 月 31 日。

在我读过的关于这个主题的较好文章之一中,蒙蒂总结了我提到的一些要点,包括:启动项目、测试、文档、组织团队和领导力以及其他几个主题。虽然比我尝试的更主观,但我认为这是一篇重要的文章,我在编写本 HOWTO 时发现它非常有用。我已尝试在最借鉴他的地方引用他。

我对这篇文章的大部分内容都有疑问,我建议您在阅读蒙蒂的文章的同时阅读 [KRAWITZ],以获得良好的评论。

埃里克·史蒂文·雷蒙 (Eric Steven Raymond), 软件发布实践 HOWTO

乍一看,ESR 的发布实践 HOWTO 似乎与本文档有很多相似之处。仔细检查后,差异变得明显,但它们密切相关。他的文档与我的文档结合阅读,将使读者对如何管理项目有一个很好的了解。ESR 的 HOWTO 更详细地介绍了如何编写以及用什么语言编写。他倾向于给出更具体的说明和清单(“将此文件命名为此,而不是此”),而本 HOWTO 则更概念性。有几个部分非常相似。它也短得多

我最喜欢的引言来自他的 HOWTO:““当所有参与者都是志愿者时,管理好一个项目会带来一些独特的挑战。这是一个太大的话题,无法在 HOWTO 中涵盖。”” 哦,真的吗?也许我只是做得不好。

维韦克·维努戈帕兰 (Vivek Venugopalan), CVS 最佳实践

维努戈帕兰提供了关于有效使用 CVS 的最佳文章之一,这是我见过的。它是为已经对 CVS 有很好了解的人编写的。在关于分支的章节中,他描述了何时以及如何分支,但没有提供关于您应该使用哪些 CVS 命令来执行此操作的信息。这很好(已经编写了技术 CVS HOWTO),但 CVS 新手在发现这篇文章非常有用之前,需要花一些时间阅读福格尔的参考资料。

维努戈帕兰创建了发布之前、之后和周围需要做的事情的清单。绝对值得通读一遍,因为他的大多数想法都会在较长一段时间内节省大量开发人员的头痛。

Advogato 文章

斯蒂芬·欣德尔 (Stephen Hindle), 开源的“最佳实践”?, Advogato, 2001 年 3 月 21 日。

这篇文章主要涉及编程实践(正如关于该主题的大多数文章通常所做的那样),稍微谈到了项目管理(“使用它!”)以及自由软件项目中的沟通。

布拉姆·科恩 (Bram Cohen), http://www.advogato.org/article/258.html如何编写可维护的代码, Advogato, 2001 年 3 月 15 日。

这篇文章涉及了“编写可维护的代码”的讨论,我尽力避免在我的 HOWTO 中讨论这个问题。这是我找到的关于该主题的更好(也是最委婉的)文章之一。

罗伯特·克拉维茨 (Robert Krawitz), 自由源项目管理, Advogato, 2000 年 11 月 4 日。

这篇文章让我很高兴,因为它挑战了我对蒙蒂关于 Linux 编程的文章的许多问题。作者认为,蒙蒂只是简单地呼吁在自由软件项目中应用旧的(专有软件)项目管理技术,而不是努力提出新的东西。我发现他的文章经过了深思熟虑,我认为对于任何自由软件项目经理来说,这都是必读的文章。

拉洛·马丁斯 (Lalo Martins), 询问 Advogatos:为什么自由软件项目会失败?, Advogato, 2000 年 7 月 20 日。

虽然这篇文章只不过是一个问题,但阅读 Advogato 的读者对这个问题提供的答案可能会有所帮助。在很多方面,本 HOWTO 充当了我对本文提出的问题的回答,但还有其他答案,其中许多答案可能与本 HOWTO 中的内容存在分歧。值得一看。

大卫·伯利 (David Burley), 进入自由软件开发的途径, Advogato, 2000 年 6 月 14 日。

本文档是对 另一篇 Advogato 文章的回应。虽然与运行项目无关,但这描述了您无需启动项目即可开始自由软件开发的一些方法。我认为这是一篇重要的文章。如果您有兴趣参与自由软件,本文展示了您可以在不实际启动项目的情况下做到这一点的一些方法(我希望本 HOWTO 已经证明启动项目不应掉以轻心)。

雅各布·摩尔曼 (Jacob Moorman), 自由软件中非开发者支持者的重要性, , Advogato, 2000 年 4 月 16 日。

摩尔曼的文章很短,但它提出了一些很好的观点。提醒开发人员感谢他们的测试人员和最终用户的评论非常宝贵且经常被遗忘。

莱斯利·奥查德 (Leslie Orchard), 关于开源项目的命名, Advogato, 2000 年 4 月 12 日。

在莱斯利·奥查德的文章提醒我之前,我甚至没有在本 HOWTO 中设置关于项目命名的章节(参见 第 2.2 节)。感谢莱斯利撰写这篇文章!

大卫·艾伦 (David Allen), 版本编号的疯狂, Advogato, 2000 年 2 月 28 日。

在本文中,大卫·艾伦挑战了整个 “主版本号.次版本号.修订号” 版本编号方案。当您阅读 第 2.4 节 时,最好阅读这篇文章。我喜欢这篇文章,它描述了我关于版本编号讨论中提到的一些项目。