Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

附录 B:fetchmail 项目增长的统计趋势

下方散点图由 Gnuplot 3.7 绘制,数据直接从 fetchmail 项目的 NEWS 文件中提取,提取过程使用了两个自定义的 Shell 脚本,脚本可在项目官网获取。

Days since baseline

这张图展现 fetchmail 项目参与人数的增长趋势。横轴为距离基准时间的天数,基准时间是 1996 年 10 月,我从项目 1.9.0 版本开始收集统计数据;左侧纵轴代表参与人数。每一个版本发布对应一个数据点,因此数据点标记的密度变化能够反映版本发布频率。

图表最靠前区域的峰值(标注「无效地址已剔除」之前)属于统计伪迹,因为当时我还没有定期清理失效邮箱地址。邮件列表人员流动率,目测大约为每月 5%(但这只是估算,我没有确切数据)。

方块散点代表总参与人数;将邮件列表拆分之后,叉号散点对应 fetchmail-friends 邮件列表人数;三角散点则是拆分后 fetchmail-announce 列表的人数。

菱形散点用来追踪项目代码规模(单位:代码行数,对应右侧纵轴)。这组曲线与另外三组数据之间的刻度比例是人为设定的,不具备真实对应关系。

这张图很能说明问题,以下几个趋势格外突出:

  • 长期来看,项目参与人数随时间呈现相当稳定的线性增长。

  • 项目发展历程里的关键节点,是 1997 年 10 月发布的 4.3.0 版本。当时我宣告代码不再进入新功能开发阶段,转入维护模式,同时拆分了 fetchmail 邮件列表。

  • 4.3.0 版本发布前夕,是项目史上版本迭代最密集的一段时期(密集发布过程中间出现了一个空档,是因为我休了两周假期);在此之后,版本发布节奏明显放缓。

  • 4.3.0 之后,开发者人数大体保持稳定,平均人数约 250 人。

  • 4.3.0 之后新增的参与者,几乎全部来自 announce 列表;他们只是 fetchmail 使用者,并不积极参与协同开发。

  • 代码规模的增长趋势看起来属于亚线性,有可能是对数增长。

参与人数的线性增长趋势格外耐人寻味。项目依靠口碑自发传播,按照先验推测,我们原本预期会见到指数增长或是逻辑斯谛增长。

也有人提出:之所以会呈现线性增长,可能是因为开源项目总量、具备开发能力的程序员人数,两者都以相同的趋势曲线(大概率是指数增长)同步上升。

还有一些网页也做了同类项目统计分析:

  • http://kitenet.net/programs/debhelper/stats/:收录打包工具 debhelper 的各项增长统计数据。

  • http://durak.org:81/sean/pubs/kfc/:专门整理 Linux 内核相关术语词汇