Planning Considerations
Some points to be considered before starting a substantial open-source project:
- Target framework (.NET Framework 1.0, 1.1, 2.0, 3.0, Mono, DotGnu) - the choice determines who would be interested in the application and which communities might adopt it. Choosing a framework like Mono gives us the Unix and Mac communities puts us behind the times technology speaking;
- License (GPL, LGPL, Mozilla, BSD, etc.) - restricts who can use it and how, will also cause endless debates amongst license nerds;
- Name - can make a difference;
- Release plan - a plan of major and minor releases with clearly defined deadlines;
- Tools - NAnt, NUnut, NDoc, ... what else?
- Libraries - log4net, Microsoft-style .config files - or do our own;
- Coding standards - have to have some kind of standards or everything will go pear-shaped;
- Hosting for code and website (FAQs, wiki, mailing list, source code control, bug tracking, etc.) - SourceForge?
- Internationalisation - must be designed to permit internationalised resources (where necessary);
- Code and documentation internationalisation - XML comments can be "imported" from language-specific files allow international documentation to be generated (although unless there are tools this is obviously going to be a pain in the @rse).
- Language - should identifiers, documentation and comments be in British, US or international English (I know which I prefer)?
- Which technologies should be supported (MySQL, PostgreSQL, WinFX, Apache, ...);
- Build process - how "complete" the build process should be;
- Scope - related to the release plan: what features we intend to implement and when;
- Management structure - Apache-style management by committee or Linux-style benevolent dictator?
- Architecture - obviously a fundamental part of any project, but a policy needs to be agreed up-front so that decisions can be made semi-independently without conflict;
- Patterns - common "patterns" and design features should be agreed and documented as required;
- Release process - alpha, beta, gamma and all that; when does status change, who decides and what do we call it?
- Document formats - OpenOffice, Word, PDF, HTML, Text, RTF, choices, choices;
- As well as a name, logos, colour schemes and so on seem to be quite popular;
Further Reading:
The Cathederal and the Bazaar us consider pretty standard reading on the subject:
http://www.amazon.co.uk/gp/product/0596001312/202-5719946-3892661?v=glance&n=266239&s=books&v=glance
Complete list of Open Source licenses:
http://www.opensource.org/licenses/index.php
Some example roadmaps:
http://www.mono-project.com/Mono_Project_Roadmap#Mono_release_strategy
http://www.nunit.org/index.php?p=roadmap&r=2.2.5
Project management:
http://httpd.apache.org/ABOUT_APACHE.html#Development
http://www.groklaw.net/articlebasic.php?story=20050529095918381