annotate thesis/attic/free-software-projects.tex @ 272:2aad3d950640

renamed pieces -> attic
author meillo@marmaro.de
date Thu, 15 Jan 2009 12:20:21 +0100
parents thesis/pieces/free-software-projects.tex@4fabc8ac5538
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
91
4fabc8ac5538 excluded text about history of masqmail and about free software projects
meillo@marmaro.de
parents:
diff changeset
1 \section{About \freesw\ projects}
4fabc8ac5538 excluded text about history of masqmail and about free software projects
meillo@marmaro.de
parents:
diff changeset
2
4fabc8ac5538 excluded text about history of masqmail and about free software projects
meillo@marmaro.de
parents:
diff changeset
3 % http://www.faqs.org/docs/artu/
4fabc8ac5538 excluded text about history of masqmail and about free software projects
meillo@marmaro.de
parents:
diff changeset
4
4fabc8ac5538 excluded text about history of masqmail and about free software projects
meillo@marmaro.de
parents:
diff changeset
5 There are several differences between \freesw\ projects and projects about proprietary software.
4fabc8ac5538 excluded text about history of masqmail and about free software projects
meillo@marmaro.de
parents:
diff changeset
6 To understand \freesw\ projects, one needs to understand \freesw\ itself first.
4fabc8ac5538 excluded text about history of masqmail and about free software projects
meillo@marmaro.de
parents:
diff changeset
7
4fabc8ac5538 excluded text about history of masqmail and about free software projects
meillo@marmaro.de
parents:
diff changeset
8 \subsection{About \freesw}
4fabc8ac5538 excluded text about history of masqmail and about free software projects
meillo@marmaro.de
parents:
diff changeset
9 The term ``Free Software'' was coined by the \name{Free Software Foundation} (short: \NAME{FSF}), founded by Richard~M.\ Stallman (known as ``RMS'') in 1985.
4fabc8ac5538 excluded text about history of masqmail and about free software projects
meillo@marmaro.de
parents:
diff changeset
10 Although various licenses make software free, none of them represents the thinking of \freesw\ like the the \GNU\ \gpl\ (short: \GPL). Its first version was written by Stallman in 1989.
4fabc8ac5538 excluded text about history of masqmail and about free software projects
meillo@marmaro.de
parents:
diff changeset
11 One could say, the \GPL\ catalized the \name{Free Software movement}.
4fabc8ac5538 excluded text about history of masqmail and about free software projects
meillo@marmaro.de
parents:
diff changeset
12
4fabc8ac5538 excluded text about history of masqmail and about free software projects
meillo@marmaro.de
parents:
diff changeset
13 % http://www.fsf.org/about/what-is-free-software
4fabc8ac5538 excluded text about history of masqmail and about free software projects
meillo@marmaro.de
parents:
diff changeset
14
4fabc8ac5538 excluded text about history of masqmail and about free software projects
meillo@marmaro.de
parents:
diff changeset
15 After all, the \GPL\ was not the first \freesw\ license used.
4fabc8ac5538 excluded text about history of masqmail and about free software projects
meillo@marmaro.de
parents:
diff changeset
16 The \name{MIT License} (or \name{X Consortium License}) for example is older; published in 1988.
4fabc8ac5538 excluded text about history of masqmail and about free software projects
meillo@marmaro.de
parents:
diff changeset
17 Licenses providing the same rights have been used since long time ago.
4fabc8ac5538 excluded text about history of masqmail and about free software projects
meillo@marmaro.de
parents:
diff changeset
18 But none of them was so often (re)used by other projects---thus gattering less awareness.
4fabc8ac5538 excluded text about history of masqmail and about free software projects
meillo@marmaro.de
parents:
diff changeset
19 Further more was the \GPL\ created to be a \emph{general} license for all kinds of programs, unlike most other licenses written for one particular program.
4fabc8ac5538 excluded text about history of masqmail and about free software projects
meillo@marmaro.de
parents:
diff changeset
20
4fabc8ac5538 excluded text about history of masqmail and about free software projects
meillo@marmaro.de
parents:
diff changeset
21 \freesw\ gives freedoms to its users.
4fabc8ac5538 excluded text about history of masqmail and about free software projects
meillo@marmaro.de
parents:
diff changeset
22 In contrast to proprietary software restricting the users freedom.
4fabc8ac5538 excluded text about history of masqmail and about free software projects
meillo@marmaro.de
parents:
diff changeset
23 The freedoms (or rights) the user has are stated in the \name{Free Software Definition} of the \NAME{FSF}. Namely these are:
4fabc8ac5538 excluded text about history of masqmail and about free software projects
meillo@marmaro.de
parents:
diff changeset
24 % http://www.gnu.org/philosophy/free-sw.html
4fabc8ac5538 excluded text about history of masqmail and about free software projects
meillo@marmaro.de
parents:
diff changeset
25 % http://www.fsf.org/licensing/essays/free-sw.html
4fabc8ac5538 excluded text about history of masqmail and about free software projects
meillo@marmaro.de
parents:
diff changeset
26 \begin{enumerate}
4fabc8ac5538 excluded text about history of masqmail and about free software projects
meillo@marmaro.de
parents:
diff changeset
27 \item The freedom to run the program, for any purpose (freedom 0).
4fabc8ac5538 excluded text about history of masqmail and about free software projects
meillo@marmaro.de
parents:
diff changeset
28 \item The freedom to study how the program works, and adapt it to your needs (freedom 1). Access to the source code is a precondition for this.
4fabc8ac5538 excluded text about history of masqmail and about free software projects
meillo@marmaro.de
parents:
diff changeset
29 \item The freedom to redistribute copies so you can help your neighbor (freedom 2).
4fabc8ac5538 excluded text about history of masqmail and about free software projects
meillo@marmaro.de
parents:
diff changeset
30 \item The freedom to improve the program, and release your improvements to the public, so that the whole community benefits (freedom 3). Access to the source code is a precondition for this.
4fabc8ac5538 excluded text about history of masqmail and about free software projects
meillo@marmaro.de
parents:
diff changeset
31 \end{enumerate}
4fabc8ac5538 excluded text about history of masqmail and about free software projects
meillo@marmaro.de
parents:
diff changeset
32
4fabc8ac5538 excluded text about history of masqmail and about free software projects
meillo@marmaro.de
parents:
diff changeset
33
4fabc8ac5538 excluded text about history of masqmail and about free software projects
meillo@marmaro.de
parents:
diff changeset
34 \subsection{The term ``Open Source''}
4fabc8ac5538 excluded text about history of masqmail and about free software projects
meillo@marmaro.de
parents:
diff changeset
35 \name{Open Source Software} often stands for the same as \freesw.
4fabc8ac5538 excluded text about history of masqmail and about free software projects
meillo@marmaro.de
parents:
diff changeset
36 But there is an essential difference: \name{Open Source} focuses on the availability of source code, while \freesw\ is about freedoms for people.
4fabc8ac5538 excluded text about history of masqmail and about free software projects
meillo@marmaro.de
parents:
diff changeset
37
4fabc8ac5538 excluded text about history of masqmail and about free software projects
meillo@marmaro.de
parents:
diff changeset
38 \name{Open Source Software} is a subset of \freesw, meaning: All \freesw\ is \name{Open Source}, but there exists \name{Open Source Software} that is not free.
4fabc8ac5538 excluded text about history of masqmail and about free software projects
meillo@marmaro.de
parents:
diff changeset
39
4fabc8ac5538 excluded text about history of masqmail and about free software projects
meillo@marmaro.de
parents:
diff changeset
40 % http://www.gnu.org/philosophy/open-source-misses-the-point.html
4fabc8ac5538 excluded text about history of masqmail and about free software projects
meillo@marmaro.de
parents:
diff changeset
41 % http://catb.org/~esr/open-source.html
4fabc8ac5538 excluded text about history of masqmail and about free software projects
meillo@marmaro.de
parents:
diff changeset
42
4fabc8ac5538 excluded text about history of masqmail and about free software projects
meillo@marmaro.de
parents:
diff changeset
43
4fabc8ac5538 excluded text about history of masqmail and about free software projects
meillo@marmaro.de
parents:
diff changeset
44 \subsection{Development of \freesw}
4fabc8ac5538 excluded text about history of masqmail and about free software projects
meillo@marmaro.de
parents:
diff changeset
45 Having source code available and the right to modify it, encouridges programmers to actually do so.
4fabc8ac5538 excluded text about history of masqmail and about free software projects
meillo@marmaro.de
parents:
diff changeset
46 Their modifications are manifoldly.
4fabc8ac5538 excluded text about history of masqmail and about free software projects
meillo@marmaro.de
parents:
diff changeset
47 Some tailor the software to their needs.
4fabc8ac5538 excluded text about history of masqmail and about free software projects
meillo@marmaro.de
parents:
diff changeset
48 Some add features.
4fabc8ac5538 excluded text about history of masqmail and about free software projects
meillo@marmaro.de
parents:
diff changeset
49 Some do it just for fun.
4fabc8ac5538 excluded text about history of masqmail and about free software projects
meillo@marmaro.de
parents:
diff changeset
50 There are no limitations---whoever wants to, may work on it.
4fabc8ac5538 excluded text about history of masqmail and about free software projects
meillo@marmaro.de
parents:
diff changeset
51
4fabc8ac5538 excluded text about history of masqmail and about free software projects
meillo@marmaro.de
parents:
diff changeset
52 Since the boom of the internet, \freesw\ typically is developed by an open community of programmers interested in the software.
4fabc8ac5538 excluded text about history of masqmail and about free software projects
meillo@marmaro.de
parents:
diff changeset
53 The process of development is watchable by everyone.
4fabc8ac5538 excluded text about history of masqmail and about free software projects
meillo@marmaro.de
parents:
diff changeset
54
4fabc8ac5538 excluded text about history of masqmail and about free software projects
meillo@marmaro.de
parents:
diff changeset
55 The other, now less common, method is a more closed group, developing in a ``sealed'' room, but releasing finished versions to the public.
4fabc8ac5538 excluded text about history of masqmail and about free software projects
meillo@marmaro.de
parents:
diff changeset
56
4fabc8ac5538 excluded text about history of masqmail and about free software projects
meillo@marmaro.de
parents:
diff changeset
57 Eric~S.\ Raymond discusses about these methods, which he named \name{the bazaar} and \name{the cathedral} \cite{catb}.
4fabc8ac5538 excluded text about history of masqmail and about free software projects
meillo@marmaro.de
parents:
diff changeset
58
4fabc8ac5538 excluded text about history of masqmail and about free software projects
meillo@marmaro.de
parents:
diff changeset
59 The following text will focus on the ``bazaar'' model.
4fabc8ac5538 excluded text about history of masqmail and about free software projects
meillo@marmaro.de
parents:
diff changeset
60
4fabc8ac5538 excluded text about history of masqmail and about free software projects
meillo@marmaro.de
parents:
diff changeset
61
4fabc8ac5538 excluded text about history of masqmail and about free software projects
meillo@marmaro.de
parents:
diff changeset
62 \subsection{The role of the community}
4fabc8ac5538 excluded text about history of masqmail and about free software projects
meillo@marmaro.de
parents:
diff changeset
63 \freesw\ projects rise and fall with their community!
4fabc8ac5538 excluded text about history of masqmail and about free software projects
meillo@marmaro.de
parents:
diff changeset
64
4fabc8ac5538 excluded text about history of masqmail and about free software projects
meillo@marmaro.de
parents:
diff changeset
65 Most \freesw\ programs are developed by a very small group of programmers, often only one person.
4fabc8ac5538 excluded text about history of masqmail and about free software projects
meillo@marmaro.de
parents:
diff changeset
66 But they are used by many people.
4fabc8ac5538 excluded text about history of masqmail and about free software projects
meillo@marmaro.de
parents:
diff changeset
67 In between the programmers and the users, are people located who are a bit of both.
4fabc8ac5538 excluded text about history of masqmail and about free software projects
meillo@marmaro.de
parents:
diff changeset
68 These are the ones that write documentation, find bugs and probably even fix it.
4fabc8ac5538 excluded text about history of masqmail and about free software projects
meillo@marmaro.de
parents:
diff changeset
69 They discuss on mailing lists, bulletin boards and \NAME{IRC} chats.
4fabc8ac5538 excluded text about history of masqmail and about free software projects
meillo@marmaro.de
parents:
diff changeset
70 The program is often spread by their ``advertising''.
4fabc8ac5538 excluded text about history of masqmail and about free software projects
meillo@marmaro.de
parents:
diff changeset
71
4fabc8ac5538 excluded text about history of masqmail and about free software projects
meillo@marmaro.de
parents:
diff changeset
72 The \emph{community} consists of the actual developers and all users that contribute to the program.
4fabc8ac5538 excluded text about history of masqmail and about free software projects
meillo@marmaro.de
parents:
diff changeset
73 Contribution can be one of the described ways, or others like providing a server for the project website for example.
4fabc8ac5538 excluded text about history of masqmail and about free software projects
meillo@marmaro.de
parents:
diff changeset
74
4fabc8ac5538 excluded text about history of masqmail and about free software projects
meillo@marmaro.de
parents:
diff changeset
75 \emph{Community} is everyone who is in contact through the project.
4fabc8ac5538 excluded text about history of masqmail and about free software projects
meillo@marmaro.de
parents:
diff changeset
76 Be it on the mailing list, the discussion board, or by telling the developers about a new feature wanted.
4fabc8ac5538 excluded text about history of masqmail and about free software projects
meillo@marmaro.de
parents:
diff changeset
77
4fabc8ac5538 excluded text about history of masqmail and about free software projects
meillo@marmaro.de
parents:
diff changeset
78 There will hardly be a community if no communication channels are available.
4fabc8ac5538 excluded text about history of masqmail and about free software projects
meillo@marmaro.de
parents:
diff changeset
79 If the development team does not provide them, there is a chance that encouraged users set them up on their own.
4fabc8ac5538 excluded text about history of masqmail and about free software projects
meillo@marmaro.de
parents:
diff changeset
80 But this is rare and the program needs to be very popular. %TODO: maybe include an example here (w3m?)
4fabc8ac5538 excluded text about history of masqmail and about free software projects
meillo@marmaro.de
parents:
diff changeset
81
4fabc8ac5538 excluded text about history of masqmail and about free software projects
meillo@marmaro.de
parents:
diff changeset
82 Projects without a good community tend to die sooner or later.
4fabc8ac5538 excluded text about history of masqmail and about free software projects
meillo@marmaro.de
parents:
diff changeset
83
4fabc8ac5538 excluded text about history of masqmail and about free software projects
meillo@marmaro.de
parents:
diff changeset
84
4fabc8ac5538 excluded text about history of masqmail and about free software projects
meillo@marmaro.de
parents:
diff changeset
85 \subsection{Evolution of a community}
4fabc8ac5538 excluded text about history of masqmail and about free software projects
meillo@marmaro.de
parents:
diff changeset
86 Let us look at the process a community establishes: In most times it's only one who has an idea, in the beginning.
4fabc8ac5538 excluded text about history of masqmail and about free software projects
meillo@marmaro.de
parents:
diff changeset
87 He starts developing.
4fabc8ac5538 excluded text about history of masqmail and about free software projects
meillo@marmaro.de
parents:
diff changeset
88 When others get in contact with the project, there may be some who are so much interested that they start co-developing.
4fabc8ac5538 excluded text about history of masqmail and about free software projects
meillo@marmaro.de
parents:
diff changeset
89 Others report bugs, and some only use the program.
4fabc8ac5538 excluded text about history of masqmail and about free software projects
meillo@marmaro.de
parents:
diff changeset
90
4fabc8ac5538 excluded text about history of masqmail and about free software projects
meillo@marmaro.de
parents:
diff changeset
91 After some time, one will find a small group of core developers, a larger group of contributers (bugs, patches, documentation) and a very large group of users.
4fabc8ac5538 excluded text about history of masqmail and about free software projects
meillo@marmaro.de
parents:
diff changeset
92 The size ratio of the groups vary by type of project.
4fabc8ac5538 excluded text about history of masqmail and about free software projects
meillo@marmaro.de
parents:
diff changeset
93
4fabc8ac5538 excluded text about history of masqmail and about free software projects
meillo@marmaro.de
parents:
diff changeset
94 One should have that in mind, when starting a \freesw\ project.
4fabc8ac5538 excluded text about history of masqmail and about free software projects
meillo@marmaro.de
parents:
diff changeset
95
4fabc8ac5538 excluded text about history of masqmail and about free software projects
meillo@marmaro.de
parents:
diff changeset
96
4fabc8ac5538 excluded text about history of masqmail and about free software projects
meillo@marmaro.de
parents:
diff changeset
97 \subsection{Creating a strong community}
4fabc8ac5538 excluded text about history of masqmail and about free software projects
meillo@marmaro.de
parents:
diff changeset
98 Building up a good community needs some effort of the main developers.
4fabc8ac5538 excluded text about history of masqmail and about free software projects
meillo@marmaro.de
parents:
diff changeset
99 %TODO: search for documents about this topic
4fabc8ac5538 excluded text about history of masqmail and about free software projects
meillo@marmaro.de
parents:
diff changeset
100
4fabc8ac5538 excluded text about history of masqmail and about free software projects
meillo@marmaro.de
parents:
diff changeset
101 First communication channels need to be set up, to enable the growth of a community.
4fabc8ac5538 excluded text about history of masqmail and about free software projects
meillo@marmaro.de
parents:
diff changeset
102
4fabc8ac5538 excluded text about history of masqmail and about free software projects
meillo@marmaro.de
parents:
diff changeset
103 Second, development should be visible by everyone who is interested in it.
4fabc8ac5538 excluded text about history of masqmail and about free software projects
meillo@marmaro.de
parents:
diff changeset
104 Time between work done on the project and its visibility to the public should be kept short.
4fabc8ac5538 excluded text about history of masqmail and about free software projects
meillo@marmaro.de
parents:
diff changeset
105 This makes it interesting for other developers to join.
4fabc8ac5538 excluded text about history of masqmail and about free software projects
meillo@marmaro.de
parents:
diff changeset
106 Developers are the core of a community.
4fabc8ac5538 excluded text about history of masqmail and about free software projects
meillo@marmaro.de
parents:
diff changeset
107
4fabc8ac5538 excluded text about history of masqmail and about free software projects
meillo@marmaro.de
parents:
diff changeset
108 Third, there is a rule of thumb that should be followed: ``Release early, release often!'' \cite{catb}.
4fabc8ac5538 excluded text about history of masqmail and about free software projects
meillo@marmaro.de
parents:
diff changeset
109 Releases are (more) stable versions, primary for users.
4fabc8ac5538 excluded text about history of masqmail and about free software projects
meillo@marmaro.de
parents:
diff changeset
110 They should be created, frequently.
4fabc8ac5538 excluded text about history of masqmail and about free software projects
meillo@marmaro.de
parents:
diff changeset
111 People will more likely use programs of active projects.
4fabc8ac5538 excluded text about history of masqmail and about free software projects
meillo@marmaro.de
parents:
diff changeset
112
4fabc8ac5538 excluded text about history of masqmail and about free software projects
meillo@marmaro.de
parents:
diff changeset
113 Fourth, the developers should try to get the users ``in the boat''.
4fabc8ac5538 excluded text about history of masqmail and about free software projects
meillo@marmaro.de
parents:
diff changeset
114 Good communities have a large group of users that do not only receive, but also give something back to the project.
4fabc8ac5538 excluded text about history of masqmail and about free software projects
meillo@marmaro.de
parents:
diff changeset
115 The project leaders should motivate users to contribute.
4fabc8ac5538 excluded text about history of masqmail and about free software projects
meillo@marmaro.de
parents:
diff changeset
116 This unlocks a big work force and gets lot of unexiting work done.
4fabc8ac5538 excluded text about history of masqmail and about free software projects
meillo@marmaro.de
parents:
diff changeset
117
4fabc8ac5538 excluded text about history of masqmail and about free software projects
meillo@marmaro.de
parents:
diff changeset
118 Fifth, documentation matters.
4fabc8ac5538 excluded text about history of masqmail and about free software projects
meillo@marmaro.de
parents:
diff changeset
119 Good documentation makes it easy for users and developers to start.
4fabc8ac5538 excluded text about history of masqmail and about free software projects
meillo@marmaro.de
parents:
diff changeset
120 And it helps to avoid a lot of unsatisfaction.
4fabc8ac5538 excluded text about history of masqmail and about free software projects
meillo@marmaro.de
parents:
diff changeset
121 Documentation is something that shows quality and that people care about the project.
4fabc8ac5538 excluded text about history of masqmail and about free software projects
meillo@marmaro.de
parents:
diff changeset
122
4fabc8ac5538 excluded text about history of masqmail and about free software projects
meillo@marmaro.de
parents:
diff changeset
123 And sixth, project leaders should be good souvereigns.
4fabc8ac5538 excluded text about history of masqmail and about free software projects
meillo@marmaro.de
parents:
diff changeset
124 They should try to be fair, to motivate, be visionaires and try to put power and work on many shoulders.
4fabc8ac5538 excluded text about history of masqmail and about free software projects
meillo@marmaro.de
parents:
diff changeset
125
4fabc8ac5538 excluded text about history of masqmail and about free software projects
meillo@marmaro.de
parents:
diff changeset
126 Not to forget: Every work that was done, every contribution that was made and every idea received needs to be honored in an appropriate way!
4fabc8ac5538 excluded text about history of masqmail and about free software projects
meillo@marmaro.de
parents:
diff changeset
127 Volunteer work lives by acknowledgement of the effort spent.
4fabc8ac5538 excluded text about history of masqmail and about free software projects
meillo@marmaro.de
parents:
diff changeset
128