aboutsummaryrefslogtreecommitdiffstats
path: root/history.html
blob: db3cd2c7235a158fad47b4013e9c055ff9355ad1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
<!doctype HTML public "-//W3O//DTD W3 HTML 3.2//EN">
<HTML>
<HEAD>
<link rev=made href=mailto:esr@snark.thyrsus.com>
<meta name="description" content="Fetchmail participation statistics">
<meta name="keywords" content="fetchmail, growth, analysis"> 
<TITLE>Trends in the fetchmail project's growth</TITLE>
</HEAD>
<BODY>
<table width="100%" cellpadding=0><tr>
<td width="30%">Back to <a href="/~esr">Eric's Home Page</a>
<td width="30%" align=center>Up to <a href="/~esr/sitemap.html">Site Map</a>
<td width="30%" align=right>$Date: 1999/09/26 17:02:04 $
</table>
<HR>
<H1 ALIGN=CENTER>Trends in the fetchmail project's growth</H1>

The scattergram below was made with Gnuplot 3.7 from data pulled
directly out of the project NEWS file using two custom shellscripts,
<a href="timeseries">timeseries</a> and <a
href="growthplot">growthplot</a>.  If you see a broken-image icon, upgrade
to a <a href="http://www.cdrom.com/pub/png/pngapbr.html">browser that
can view PNGs</a>.<p>

<center><img src="growth.png"></center><p>

The graph shows the population growth of the fetchmail project.  The
horizontal scale is days since baseline, which is when I started
collecting statistics in October 1996 at version 1.9.0.  Left vertical
scale is number of participants. There is one data point for each
release; therefore, the changes in density of marks indicate release
frequency.<p>

The peak in the earliest part of the graph (before the note "Bad
addresses dropped") seems to be an artifact; I was not regularly
dropping addresses that became invalid at the time.  Turnover on the
list seems to be about 5% per month (but that's just my estimate, I
don't have numbers on this).<p>

The <font color="blue">blue scatter of squares</font> is total
participants.  The <font color="lime">green scatter of crosses</font> is
the count of people on fetchmail-friends after I split the list.  The
<font color="purple">violet scatter of x marks</font> is the population
of fetchmail-announce after the split.<P>

The <font color="brown">brown scatter of asterisks</font> tracks project
size in lines of code (right vertical axis). The scale relationship
between this scatter and the other three is arbitrary.<p>

This graph is quite revealing.  Several trends stand out: <p>

<ul>
<li>
Over time, the project population displays rather consistent linear growth.<p>

<li>
The key event in the project's lifetime was release 4.3.0 in October
1997, when I declared the code to be out of development and in
maintainance mode, and split the fetchmail list.<p>

<li>
The run-up to 4.3.0 saw the most intensive spate of releases in the 
project's history (the gap in that run happened when I took a two-week
vacation).  It was followed by a significant slowdown.<p>

<li>
After 4.3.0, the developer population remained fairly stable around
an average of about 250 participants.<p>

<li>
Essentially all population growth after 4.3.0 happened on the announce list,
among people using fetchmail but not  active co-developers.<p>

<li>
The growth trend in code size looks sublinear, perhaps logarithmic.
</ul>

The linear growth trend in population is particularly interesting; a
priori we might expect geometric or logistic growth, given that the
project spreads by word of mouth.  I have not yet been able to
plausibly imagine a growth model that would produce these numbers.<p>

<HR>
<table width="100%" cellpadding=0><tr>
<td width="30%">Back to <a href="/~esr">Eric's Home Page</a>
<td width="30%" align=center>Up to <a href="/~esr/sitemap.html">Site Map</a>
<td width="30%" align=right>$Date: 1999/09/26 17:02:04 $
</table>

<P><ADDRESS>Eric S. Raymond <A HREF="mailto:esr@thyrsus.com">&lt;esr@thyrsus.com&gt;</A></ADDRESS>
</BODY>
</HTML>