annotate thesis/tex/2-FreeSoftwareProjects.tex @ 42:ac4ce4de4154

minor stuff
author meillo@marmaro.de
date Tue, 14 Oct 2008 10:36:35 +0200
parents 522843ee3895
children ce53878c71ea
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
37
225669a51b11 new text about free software projects and more
meillo@marmaro.de
parents: 34
diff changeset
1 \chapter{About \freesw\ projects}
225669a51b11 new text about free software projects and more
meillo@marmaro.de
parents: 34
diff changeset
2
225669a51b11 new text about free software projects and more
meillo@marmaro.de
parents: 34
diff changeset
3 There are several differences between \freesw\ projects and projects about proprietary software. To understand \freesw\ projects, one needs to understand \freesw\ itself first.
225669a51b11 new text about free software projects and more
meillo@marmaro.de
parents: 34
diff changeset
4
225669a51b11 new text about free software projects and more
meillo@marmaro.de
parents: 34
diff changeset
5 \section{About \freesw}
225669a51b11 new text about free software projects and more
meillo@marmaro.de
parents: 34
diff changeset
6 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. %FIXME: check date
225669a51b11 new text about free software projects and more
meillo@marmaro.de
parents: 34
diff changeset
7 Although various licenses make software free, none of them represents the thinking of \freesw\ like the the \GNU\ \gpl\ (short: \GPL), which was written by Stallman in 1983. One could say, the \GPL\ ``powered'' the \name{Free Software movement}.
225669a51b11 new text about free software projects and more
meillo@marmaro.de
parents: 34
diff changeset
8
225669a51b11 new text about free software projects and more
meillo@marmaro.de
parents: 34
diff changeset
9 But after all, the \GPL\ was not the first \freesw\ license used. The \name{BSD License} for example is much older; with first occurences around 19xx. %FIXME: insert date
225669a51b11 new text about free software projects and more
meillo@marmaro.de
parents: 34
diff changeset
10 However, nobody talked about ``Free Software'' back then.
225669a51b11 new text about free software projects and more
meillo@marmaro.de
parents: 34
diff changeset
11
225669a51b11 new text about free software projects and more
meillo@marmaro.de
parents: 34
diff changeset
12 \freesw\ gives freedoms to its users. In contrast to proprietary software restricting the users freedom. The freedoms (or rights) the user has are stated in %FIXME where?
225669a51b11 new text about free software projects and more
meillo@marmaro.de
parents: 34
diff changeset
13 . Namely these are:
225669a51b11 new text about free software projects and more
meillo@marmaro.de
parents: 34
diff changeset
14 \begin{enumerate}
225669a51b11 new text about free software projects and more
meillo@marmaro.de
parents: 34
diff changeset
15 \item The freedom to use
225669a51b11 new text about free software projects and more
meillo@marmaro.de
parents: 34
diff changeset
16 \item The freedom to copy and share
225669a51b11 new text about free software projects and more
meillo@marmaro.de
parents: 34
diff changeset
17 \item The freedom to study the source code
225669a51b11 new text about free software projects and more
meillo@marmaro.de
parents: 34
diff changeset
18 \item The freedom to modify
225669a51b11 new text about free software projects and more
meillo@marmaro.de
parents: 34
diff changeset
19 \item The freedom to redistribute (granting the same freedom)
225669a51b11 new text about free software projects and more
meillo@marmaro.de
parents: 34
diff changeset
20 \end{enumerate}
225669a51b11 new text about free software projects and more
meillo@marmaro.de
parents: 34
diff changeset
21
225669a51b11 new text about free software projects and more
meillo@marmaro.de
parents: 34
diff changeset
22
225669a51b11 new text about free software projects and more
meillo@marmaro.de
parents: 34
diff changeset
23 \section{The term ``Open Source''}
225669a51b11 new text about free software projects and more
meillo@marmaro.de
parents: 34
diff changeset
24 \name{Open Source Software} often stands for the same as \freesw. But there is an essential difference: \name{Open Source} focuses on the availability of source code, while \freesw\ is about freedoms for people.
225669a51b11 new text about free software projects and more
meillo@marmaro.de
parents: 34
diff changeset
25
225669a51b11 new text about free software projects and more
meillo@marmaro.de
parents: 34
diff changeset
26 \name{Open Source Software} is a sub... %FIXME: ``untermenge''
225669a51b11 new text about free software projects and more
meillo@marmaro.de
parents: 34
diff changeset
27 of \freesw, meaning: All \freesw\ is \name{Open Source}, but there exists \name{Open Source Software} that is not free.
225669a51b11 new text about free software projects and more
meillo@marmaro.de
parents: 34
diff changeset
28
225669a51b11 new text about free software projects and more
meillo@marmaro.de
parents: 34
diff changeset
29
225669a51b11 new text about free software projects and more
meillo@marmaro.de
parents: 34
diff changeset
30 \section{Development of \freesw}
225669a51b11 new text about free software projects and more
meillo@marmaro.de
parents: 34
diff changeset
31 Having source code available and the right to modify it, encouridges programmers to actually do so. Their modifications are %FIXME: ``vielfaeltig''
225669a51b11 new text about free software projects and more
meillo@marmaro.de
parents: 34
diff changeset
32 . Some tailor the software to their needs. Some add features. Some do it just for fun. There are no limitations---whoever wants to, may work on it.
225669a51b11 new text about free software projects and more
meillo@marmaro.de
parents: 34
diff changeset
33
225669a51b11 new text about free software projects and more
meillo@marmaro.de
parents: 34
diff changeset
34 Since the boom of the internet, \freesw\ typically is developed by an open community of programmers interested in the software. The process of development is watchable by everyone.
225669a51b11 new text about free software projects and more
meillo@marmaro.de
parents: 34
diff changeset
35
225669a51b11 new text about free software projects and more
meillo@marmaro.de
parents: 34
diff changeset
36 The other, now less common, method is a more closed group, developing in a ``sealed'' room, but releasing finished versions to the public.
26
fb9ba63f6957 changed to new thesis structure; moved text pieces away; updated project plan
meillo@marmaro.de
parents:
diff changeset
37
37
225669a51b11 new text about free software projects and more
meillo@marmaro.de
parents: 34
diff changeset
38 Eric S. Raymond discusses about these methods, which he named \name{the bazaar} and \name{the cathedral}. %FIXME: add reference
225669a51b11 new text about free software projects and more
meillo@marmaro.de
parents: 34
diff changeset
39
38
522843ee3895 continued with creating a community
meillo@marmaro.de
parents: 37
diff changeset
40 The following text will focus on the ``bazaar'' model.
522843ee3895 continued with creating a community
meillo@marmaro.de
parents: 37
diff changeset
41
37
225669a51b11 new text about free software projects and more
meillo@marmaro.de
parents: 34
diff changeset
42
225669a51b11 new text about free software projects and more
meillo@marmaro.de
parents: 34
diff changeset
43 \section{The role of the community}
225669a51b11 new text about free software projects and more
meillo@marmaro.de
parents: 34
diff changeset
44 \freesw\ projects rise and fall with their community!
225669a51b11 new text about free software projects and more
meillo@marmaro.de
parents: 34
diff changeset
45
225669a51b11 new text about free software projects and more
meillo@marmaro.de
parents: 34
diff changeset
46 Most \freesw\ programs are developed by a very small group of programmers, often only one person. But they are used by many people. In between the programmers and the users, are people located who are a bit of both. These are the ones that write documentation, find bugs and probably even fix it. They discuss on mailing lists, bulletin boards and \NAME{IRC} chats. The program is often spread by their ``advertising''.
225669a51b11 new text about free software projects and more
meillo@marmaro.de
parents: 34
diff changeset
47
225669a51b11 new text about free software projects and more
meillo@marmaro.de
parents: 34
diff changeset
48 The \emph{community} consists of the actual developers and all users that contribute to the program. Contribution can be one of the described ways, or others like providing a server for the project website for example.
225669a51b11 new text about free software projects and more
meillo@marmaro.de
parents: 34
diff changeset
49
225669a51b11 new text about free software projects and more
meillo@marmaro.de
parents: 34
diff changeset
50 \emph{Community} is everyone who is in contact through the project. Be it on the mailing list, the discussion board, or by telling the developers about a new feature wanted.
225669a51b11 new text about free software projects and more
meillo@marmaro.de
parents: 34
diff changeset
51
225669a51b11 new text about free software projects and more
meillo@marmaro.de
parents: 34
diff changeset
52 There will hardly be a community if no communication channels are available. If the development team does not provide them, there is a chance that enthusiastic %FIXME: better word
225669a51b11 new text about free software projects and more
meillo@marmaro.de
parents: 34
diff changeset
53 users set them up on their own. But this is rare and the program needs to be very popular. %TODO: maybe include an example here (w3m?)
225669a51b11 new text about free software projects and more
meillo@marmaro.de
parents: 34
diff changeset
54
225669a51b11 new text about free software projects and more
meillo@marmaro.de
parents: 34
diff changeset
55 Projects without a good community tend to die sooner or later.
225669a51b11 new text about free software projects and more
meillo@marmaro.de
parents: 34
diff changeset
56
225669a51b11 new text about free software projects and more
meillo@marmaro.de
parents: 34
diff changeset
57
225669a51b11 new text about free software projects and more
meillo@marmaro.de
parents: 34
diff changeset
58 \section{Evolution of a community}
225669a51b11 new text about free software projects and more
meillo@marmaro.de
parents: 34
diff changeset
59 Let us look at the process a community establishes: In most times it's only one who has an idea, in the beginning. He starts developing. When others get in contact with the project, there may be some who are so much interested that they start co-developing. Others report bugs, and some only use the program.
225669a51b11 new text about free software projects and more
meillo@marmaro.de
parents: 34
diff changeset
60
225669a51b11 new text about free software projects and more
meillo@marmaro.de
parents: 34
diff changeset
61 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. The %FIXME: ``verhaeltnisse''
225669a51b11 new text about free software projects and more
meillo@marmaro.de
parents: 34
diff changeset
62 of the groups vary by type of projects, of course.
225669a51b11 new text about free software projects and more
meillo@marmaro.de
parents: 34
diff changeset
63
225669a51b11 new text about free software projects and more
meillo@marmaro.de
parents: 34
diff changeset
64 One should have that in mind, when starting a \freesw\ project.
225669a51b11 new text about free software projects and more
meillo@marmaro.de
parents: 34
diff changeset
65
225669a51b11 new text about free software projects and more
meillo@marmaro.de
parents: 34
diff changeset
66
225669a51b11 new text about free software projects and more
meillo@marmaro.de
parents: 34
diff changeset
67 \section{Creating a strong community}
225669a51b11 new text about free software projects and more
meillo@marmaro.de
parents: 34
diff changeset
68 Building up a good community needs some effort of the main developers.
38
522843ee3895 continued with creating a community
meillo@marmaro.de
parents: 37
diff changeset
69 %TODO: search for documents about this topic
37
225669a51b11 new text about free software projects and more
meillo@marmaro.de
parents: 34
diff changeset
70
225669a51b11 new text about free software projects and more
meillo@marmaro.de
parents: 34
diff changeset
71 First communication channels need to be set up, to enable the growth of a community.
225669a51b11 new text about free software projects and more
meillo@marmaro.de
parents: 34
diff changeset
72
38
522843ee3895 continued with creating a community
meillo@marmaro.de
parents: 37
diff changeset
73 Second, development should be visible by everyone who is interested in it. Time between work done on the project and its visibility to the public should be kept short. This makes it interesting for other developers to join. Developers are the core of a community.
522843ee3895 continued with creating a community
meillo@marmaro.de
parents: 37
diff changeset
74
522843ee3895 continued with creating a community
meillo@marmaro.de
parents: 37
diff changeset
75 Third, there is a rule of thumb that should be followed: ``Release early, release often!'' %FIXME: add reference
522843ee3895 continued with creating a community
meillo@marmaro.de
parents: 37
diff changeset
76 Releases are (more) stable versions, primary for users. They should be created, frequently. People will more likely use programs of active projects.
522843ee3895 continued with creating a community
meillo@marmaro.de
parents: 37
diff changeset
77
522843ee3895 continued with creating a community
meillo@marmaro.de
parents: 37
diff changeset
78 Fourth, the developers should try to get the users ``in the boat''. Good communities have a large group of users that do not only receive, but also give something back to the project. The project leaders should motivate users to contribute. This unlocks a big work force and gets lot of unexiting work done.
37
225669a51b11 new text about free software projects and more
meillo@marmaro.de
parents: 34
diff changeset
79
38
522843ee3895 continued with creating a community
meillo@marmaro.de
parents: 37
diff changeset
80 Fifth, documentation matters. Good documentation makes it easy for users and developers to start. And it helps to avoid a lot of unsatisfaction. Documentation is something that shows quality and that people care about the project.
37
225669a51b11 new text about free software projects and more
meillo@marmaro.de
parents: 34
diff changeset
81
38
522843ee3895 continued with creating a community
meillo@marmaro.de
parents: 37
diff changeset
82 And sixth, project leaders should be good %FIXME: ``herrscher''
522843ee3895 continued with creating a community
meillo@marmaro.de
parents: 37
diff changeset
83 . Never should they forget what %FIXME: who was it?
522843ee3895 continued with creating a community
meillo@marmaro.de
parents: 37
diff changeset
84 said: ``%FIXME: Die Könige sind die Sklaven des Volkes. (something like that)
522843ee3895 continued with creating a community
meillo@marmaro.de
parents: 37
diff changeset
85 ''. They should try to be fair, to motivate, be visionaires and try to put power and work on many shoulders.
522843ee3895 continued with creating a community
meillo@marmaro.de
parents: 37
diff changeset
86
522843ee3895 continued with creating a community
meillo@marmaro.de
parents: 37
diff changeset
87 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! Voluntier %FIXME: how is it spelled?
522843ee3895 continued with creating a community
meillo@marmaro.de
parents: 37
diff changeset
88 work lives by acknowledgement of the effort spent.