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 + +