Mercurial > docs > diploma
annotate thesis/tex/2-FreeSoftwareProjects.tex @ 39:e69780171a53
added bib entries; changed bib style
author | meillo@marmaro.de |
---|---|
date | Mon, 13 Oct 2008 15:42:36 +0200 |
parents | 522843ee3895 |
children | ce53878c71ea |
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 | 40 The following text will focus on the ``bazaar'' model. |
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 | 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 | 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. |
74 | |
75 Third, there is a rule of thumb that should be followed: ``Release early, release often!'' %FIXME: add reference | |
76 Releases are (more) stable versions, primary for users. They should be created, frequently. People will more likely use programs of active projects. | |
77 | |
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 | 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 | 82 And sixth, project leaders should be good %FIXME: ``herrscher'' |
83 . Never should they forget what %FIXME: who was it? | |
84 said: ``%FIXME: Die Könige sind die Sklaven des Volkes. (something like that) | |
85 ''. They should try to be fair, to motivate, be visionaires and try to put power and work on many shoulders. | |
86 | |
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? | |
88 work lives by acknowledgement of the effort spent. |