X-Git-Url: https://projects.mako.cc/source/fspm_howto/blobdiff_plain/e5a913447dcaa31c19506a92a1c281511f6c3e6b..6bead429b2796e6cd7baa7d84e3ff2c5378b07ef:/FreeSoftwareProjectManagementHOWTO.sgml?ds=inline diff --git a/FreeSoftwareProjectManagementHOWTO.sgml b/FreeSoftwareProjectManagementHOWTO.sgml index d85158d..902fa12 100644 --- a/FreeSoftwareProjectManagementHOWTO.sgml +++ b/FreeSoftwareProjectManagementHOWTO.sgml @@ -5,11 +5,11 @@ - Free Software Development HOWTO + Free Software Project Management HOWTO Benjamin - Mako + "Mako" Hill
@@ -17,8 +17,20 @@
- + + + v0.3 + 5 May 2001 + bch + + + + v0.2.1 + 10 April 2001 + bch + + v0.2 8 April 2001 @@ -42,10 +54,10 @@ This HOWTO is designed for people with experience in programming and some skills in managing a software project but who are new to the world of free software. This document is meant to act as a - guide to the non-technical aspects of free software development - and was written to be a crash course in the people skills that - aren't taught to commercial coders but that can make or break a - free software project. + guide to the non-technical aspects of free software project + management and was written to be a crash course in the people + skills that aren't taught to commercial coders but that can make + or break a free software project. @@ -69,7 +81,7 @@ - This HOWTO tries to do a lot of thing (probably too many), but it + This HOWTO tries to do a lot of things (probably too many), but it can't answer that question and won't attempt it. What this HOWTO will attempt to do is give your Free Software project a fighting chance--an edge. If you write a piece of crap that no one is @@ -155,7 +167,7 @@ this is a new edition of this document, there may be errors and inaccuracies, that may of course be damaging to your system. Proceed with caution, and although this is highly unlikely, the - author(s) do not take any responsibility for that. + author(s) does not take any responsibility for that. @@ -171,7 +183,7 @@ - You are strongly recommended to take a backup of your system + You are strongly recommended to make a backup of your system before major installation and backups at regular intervals. @@ -181,22 +193,19 @@ New Versions - - fswd!news on - - - This is the second pre-release of this HOWTO. It is written to be - released to developers for critique and brainstorming and - submitted to Hampshire College for academic credit. Please keep in - mind that this version of the HOWTO is still in an infant stage - and will be revised extensively before it gets publicized widely. + This version is the part of the third pre-release cycle of this + HOWTO. It is written to be released to developers for critique and + brainstorming and submitted to Hampshire College for academic + credit. Please keep in mind that this version of the HOWTO is + still in an infant stage and will be revised extensively before it + gets publicized widely. The latest version number of this document should always be listed - on the projects - homepage hosted by Debian. + on the projects + homepage hosted by yukidoke.org. @@ -209,32 +218,32 @@ - HTML. + HTML. - HTML (single page). + HTML (single page). - plain text. + plain text. - Compressed postscript. + Compressed postscript. - Compressed SGML source. + Compressed SGML source. @@ -250,6 +259,19 @@ In this version I have the pleasure of acknowledging: + + Anyone who gave me an idea for a better name and everyone who + assured me that a Project Management HOWTO didn't necessary imply + corporate. + + + + Josh Crawford, Andy King, and Jaime Davila who all read through + this beast and gave me feedback that has helped me make changes + and improvements to this document. I can't thank you guys enough + for your help. + + Karl Fogel, the author of Open Source Development with CVS published by the Coriolis @@ -283,7 +305,7 @@ url="http://www.debian.org">Debian Project. The project has provided me with a home, a place to practice free software advocacy, a place to make a difference, a place to learn from - those how have been involved with the movement much longer than I, + those who have been involved with the movement much longer than I, and proof of a free software project that definitely, definitely works. @@ -351,17 +373,18 @@ fswd!starting - With very little argument, the beginning is the most difficult part - of successful free software development. Laying a firm foundation - will determine whether your project flourishes or withers away and - dies. It is also the subject that is of most immediate interest to - anyone reading this document as a tutorial. + With very little argument, the beginning is the most difficult + period in a project's life to do successful free software project + managment. Laying a firm foundation will determine whether your + project flourishes or withers away and dies. It is also the subject + that is of most immediate interest to anyone reading this document + as a tutorial. Starting a project involves a dilemma that you as a developer must try and deal with: no potential user for your program is interested - in a program that doesn't work while the development process that + in a program that doesn't work, while the development process that you want to employ holds involvement of users as imperative. @@ -393,11 +416,10 @@ Identify and articulate your idea Eric S. Raymond writes about how free software projects start in - his essay, The Cathedral and the Bazaar, which - comes as required reading for any free software developer. It is - available online - . + his essay, The + Cathedral and the Bazaar, which comes as required + reading for any free software developer. It is available online . @@ -439,7 +461,7 @@ In evaluating your idea, you need to first ask yourself a few questions. This should happen before you move any further through this HOWTO. Ask yourself: Is the free software - development model really is the right one for your + development model really the right one for your project? @@ -463,9 +485,9 @@ - Luckily, The Internet is a place so big and so diverse that, + Luckily, the Internet is a place so big and so diverse that, chances are, there is someone, somewhere, who shares your - interests and how feels the same itch. It is the + interests and who feels the same itch. It is the fact that there are so many people with so many similar needs and desires that introduces the third major question: Has somebody already had your idea or a reasonably similar @@ -479,7 +501,7 @@ There are places you can go on the web to try and answer the question above. If you have experience with the free software community, you are probably already familiar with many of these - sites. All of the resources listed bellow offer searching of + sites. All of the resources listed below offer searching of their databases: @@ -501,11 +523,11 @@ Slashdot Slashdot - provides News for Nerds: Stuff that Matters, + provides News for Nerds. Stuff that matters, which usually includes discussion of free software, open - source, technology, and geek culture new and events. It is - not unusual for an particularly sexy development effort to be - announced here so it definitely worth checking. + source, technology, and geek culture news and events. It is + not unusual for a particularly sexy development effort to be + announced here, so it is definitely worth checking. @@ -515,13 +537,13 @@ SourceForge houses and facilitates a growing number of open source and free software projects. It is also quickly becoming a nexus - and an necessary stop for free software + and a necessary stop for free software developers. SourceForge's software map and new release pages should be necessary stops before embarking on a new free software project. SourceForge also - provides a at Code Snippet Library which contains useful reusable chunks of code in an array of languages which can come in useful in any @@ -534,7 +556,7 @@ Google and Google's Linux - Search, provide powerful web searches that may reveal + Search, provides powerful web searches that may reveal people working on similar projects. It is not a catalog of software or news like freshmeat or Slashdot, but it is worth checking to make sure you aren't pouring your effort into a @@ -571,11 +593,11 @@ For many developers this may be the single most difficult aspect - of free software development but it is an essential one. It is - easy to become fired up by an idea and be caught up in the + of free software project managment, but it is an essential one. It is + easy to become fired up by an idea and get caught up in the momentum and excitement of a new project. It is often extremely - difficult to do but, it is important that any free software - developer remember that the best interests of the free software + difficult to do, but it is important that any free software + developer remembers that the best interests of the free software community and the quickest way to accomplish your own project's goals and the goals of similar projects can often be accomplished by not starting a new @@ -638,7 +660,7 @@ criteria, you can still go ahead. I thought gnubile was one of the best I'd heard for a free software project ever and I still talk about it long after I've stopped using the - program. However, if you can flexible on the subject, listen to + program. However, if you can be flexible on the subject, listen to Orchard's advice. It might help you. @@ -667,9 +689,9 @@ brings up the question of Open Source Software and the debate over the terms Open Source Software and Free Software. However, because I've written the - Free Software Development HOWTO and not the Open Source - Development HOWTO, my own allegiances in this argument are in the - open. + Free Software Project Management HOWTO and not the Open Source + Software Project Management HOWTO, my own allegiances in this + argument are in the open. @@ -711,7 +733,7 @@ Software Foundation and the GNU Project, the GPL is the license for the Linux kernel, GNOME, Emacs, and the vast majority of GNU/Linux software. It's - the obvious choice but I believe it is a good one. Any BSD + the obvious choice but I also believe it is a good one. Any BSD fanatic will urge you to remember that there is a viral aspect to the GPL that prevents the mixture of GPL'ed code with non-GPL'ed @@ -754,8 +776,9 @@ The text of the GPL offers a good - description of mechanics of applying a license to a piece - of software. My quick checklist for applying a license includes: + description of the mechanics of applying a license to a + piece of software. My quick checklist for applying a license + includes: @@ -1126,7 +1149,7 @@ pages for more information and options. In addition to man pages and command-line help, there are certain files where people will look for documentation, especially in any package containing source code. In a source distribution, most of - these files can be stored in a the root directory of the source + these files can be stored in the root directory of the source distribution or in a subdirectory of the root called doc or Documentation. Common files in these places include: @@ -1158,7 +1181,7 @@ pages for more information and options. install and touches on any unusual options or actions that may be necessary. For most relatively standard install procedures and for most programs, INSTALL files are as short - as possible are rarely over 100 lines. + as possible and are rarely over 100 lines. @@ -1172,7 +1195,7 @@ pages for more information and options. changes you make to your program. The most simple way to maintain a CHANGELOG is to simply keep a file with the source code for your program and add a section to the top of the - CHANGELOG with each release describing what has been, changed, + CHANGELOG with each release describing what has been changed, fixed, or added to the program. It's a good idea to post the CHANGELOG onto the website as well because it can help people decide whether they want or need to upgrade to a newer version @@ -1245,7 +1268,7 @@ pages for more information and options. It doesn't hurt to distribute any documentation for your program - from your website (FAQs etc) with your program. Don't hesitate + from your website (FAQs etc) with your program. Don't hesitate to throw any of this in the program's tarball. If people don't need it, they will delete it. I can repeat it over and over: Too much documentation is not a sin. @@ -1284,7 +1307,7 @@ pages for more information and options. Binary packages should always be distribution specific. If you can build binary packages against a current version of a major distribution, you will only make your users happy. Try to foster - relationships with users or developers of large distributiosn to + relationships with users or developers of large distributions to develop a system for the consistent creation of binary packages. It's often a good idea to provide RedHat RPM's (.rpm), Debian deb's (.deb) and source @@ -1322,7 +1345,7 @@ pages for more information and options. I'd love to devote more space in this HOWTO to CVS because I love it (I even use CVS to keep versions straight on this HOWTO!) but - I think it falls outside the scope of this document and should + I think it falls outside the scope of this document and should have (already has) its own HOWTO. @@ -1894,7 +1917,7 @@ pages for more information and options. - Other Development issues + Other Project Management issues There are more issues surrounding interaction with developers in a free software project that I can not touch on in great detail in a @@ -1946,18 +1969,19 @@ pages for more information and options. freeze in effect. + - - Forking + + Forks - Forks are like the most extreme version of a branch. A fork is - when a group of developers takes code from a free software - project and actually starts a brand new free software - project with it. The most famous example of a fork was between Emacs and - XEmacs. Both emacsen are based on an identical code-base - but for technical, political, and philosophical reasons, - development was split into two projects which now compete with - each other. + I wasn't sure about how I would deal with forking in this + document (or if I would deal with forking at all). A fork is when + a group of developers takes code from a free software project and + actually starts a brand new free software project with it. The + most famous example of a fork was between Emacs and XEmacs. Both + emacsen are based on an identical code-base but for technical, + political, and philosophical reasons, development was split into + two projects which now compete with each other. @@ -1977,7 +2001,6 @@ pages for more information and options. absolutely unresolvable, I recommend Fogel's book as a good place to start. - @@ -2053,7 +2076,7 @@ pages for more information and options. to try and be as responsive as possible. A solid knowledge of the situation recounted above is any free software developer's best tool for shifting his development or leadership style to fit the unique - process of free software development. This chapters will try and + process of free software project management. This chapters will try and introduce some of the more difficult or important points in any projects interactions with users and give some hints on how to tackle these. @@ -2259,7 +2282,7 @@ pages for more information and options. It should not come as any surprise that the key element to any support infrastructure is good documentation. This topic was - large covered in and will not be + largely covered in and will not be repeated here.