X-Git-Url: https://projects.mako.cc/source/fspm_howto/blobdiff_plain/c6442cf5548dc6e643c7ac833d04049361133f00..5fe0333f964e93f5879ff2955201291cfa25dba4:/FreeSoftwareDevelopmentHOWTO.sgml
diff --git a/FreeSoftwareDevelopmentHOWTO.sgml b/FreeSoftwareDevelopmentHOWTO.sgml
index d41ae2b..1ef34da 100644
--- a/FreeSoftwareDevelopmentHOWTO.sgml
+++ b/FreeSoftwareDevelopmentHOWTO.sgml
@@ -1221,40 +1221,194 @@ pages for more information and options.
fswd!developers
+
+ Once you have gotten the project started, you have gotten over the
+ most difficult hurdles in the development process of your
+ program. Laying a firm foundation is essential, but the development
+ process itself is equally important and provides an equal number of
+ opportunities for failure. In the next two sections, I will and
+ cover running a project by discussing how to maintain a project
+ rhough interactions with developers and with users.
+
+
+
+ The difference between free software development and propriety
+ software development is th developer base. As the leader of a free
+ software project, you need to attract and keep developers in a way
+ that leaders of proprietary software projects sipmly don't have to
+ worry about. As the person leading development of a free
+ software project, you must harness the work of fellow developers by
+ making responsible decisions and by and by choosing not to make
+ decisions responsibly. You have to direct developers without being
+ overbearing or bossy. You need to strive to earn respect and never
+ forget to give it.
+
+
Delegating Work
-
-
-
+
+ By now, you've hypothetically followed me through the early
+ writing of a piece of software, the creation of a website and
+ system of documentation and and we've gone ahead and (as will be
+ discussed in ) released it to the rest
+ of the world. Times passes, and if things go well, people become
+ interested and want to help. The patches begin flowing in.
+
-
- Stable and Development Branches
-
+
+ Like the parent of any child who grows up, it's now time
+ to wince and smile and do most difficult thing in any parents
+ life: It's time to let go.
+
+
+
+ Delegation is the politcal way of describing this process of
+ letting go.
It is the process of handing some of
+ the responsibility and power over your project to other reponsible
+ and involved developers. It is difficult for anyone who has
+ invested a large deal of time and energy into a project but it
+ essential for the growth of any free software project. One person
+ can only do so much. A free software project is nothing
+ without the involvement of a group of developers. A group of
+ developers can only be maintained through respectful and
+ responsible leadership and delegation.
+
+
+
+ As your project progresses, you will notice people who are putting
+ signfigant amounts of time and effort into your project. These
+ will be the people submitting the most patches, posting most on
+ the mailing lists, engaging in long email discussions. It is your
+ responsiblity to contact these people and to try and shift some of
+ the power and responsiblity of your position as the project's
+ maintainer onto them (if they want it). There are several easy
+ weays you can do this:
+
+
+
+ How to delegate
+
+
+ Like anything, its easier to see how others delegate than to do
+ it yourself. In a sentance: Keep an eye out for other
+ qualified developers who show an interest and sustained
+ involvement with your project and try and shift responsibility
+ towards them. The following ideas might be good places
+ to start or good sources of inspiriation:
+
+
+
+ Allow a larger group of people write access to your CVS
+ reponsitory and make real efforts towards rule by a
+ committee
+
+
+ Apache is an
+ example of a project that is run by small group of developers
+ who vote on major technical issues and the admission of new
+ members and all have write access to the main source
+ repository. Their process is detailed online.
+
+
+
+ The Debian Project
+ is an extreme example of rule by committee. At current count,
+ more than 700 developers have full responsibility for certain
+ aspects of the projects. All these developers can upload into
+ the main ftp servers, and vote on major issues. Direction for
+ the project is determined by the project social
+ contract and a constitution. To
+ facilitate this system, there are special teams (i.e. the
+ install team, the Japanese language team) and a technical
+ committee and a project lead. There is a project lead as well
+ but the lead's main responsiblity is to, Appoint
+ Delegates or delegate decisions to the Technical
+ Committee.
+
+
+
+ While both of these projects operate on a scale that your
+ project will not (at least initially), their example is
+ helpful. Debian's idea of a project who lead who can do
+ nothing but delegate can serve as a
+ charicature of how a project can involve and empower a huge
+ number of developers and grow to a huge size.
+
+
+
+
+
+ Publicly appoint someone as the release manager for a
+ specific release.
+
+
+ A relase manager is usually responsible for coordinating
+ testing, encforcing a code freeze, being responsible for
+ stability and quality control, packaging up the software, and
+ placing it in the approrpriate places to be downloaded.
+
+
+
+ This use of the release manager is a good way to give yourself a
+ break and to shift the responsibility for accepting and
+ rejecting patches to somenoe else. It is a good way of very
+ clearly defining a chunk of work on the project as belonging to
+ a certain person and its a great way of giving yourself a break.
+
+
+
+
+ Delegate control of an entire branch.
+
+ If your project chooses to have branches (as described in ), it might be a good idea to appoint someone
+ else to be the the head of a branch. If you like focusing your
+ energy on development releases and the implementation of new
+ features, had total control over the stable releases to a
+ well-suiteded developer.
+
+
+
+ The author of linux, Linus Torvalds, came out and crowned Alan
+ Cox as the man for stable kernels.
All patches
+ for stable kernels go to Alan and, if Linus were to be taken
+ away from work on linux for any reason, Alan Cox would be more
+ than suited to fill his role as the acknowledged heir to the
+ linux maintainership.
+
+
+
-
+
-
- Freezing
+
+ Accepting and Rejecting Patches
-
-
- Avoiding the Code Cram Effect
+
+
+
+ Stable and Development Branches
-
+
-
- Accepting and Rejecting Patches
+
+ Other Development issues
+
+