William Cohen NCSU CSC 591W February 27, 2008 Proposing Features William Cohen NCSU CSC 591W February 27, 2008
Why Proposals? Issue tracking system: Often contains lots of historical information Interesting in current and previous state Little discussion on merits of issue Proposal: Pitches idea to project developers Much more interested in discussing why “this is a good idea” Little concern with historical state
Proposal Pieces and Parts Abstract Proposal Background Rational/use cases Goals Current status Known risks References/Bibliography
Abstract Kernel of idea Very concise Allows people to decide whether they should read the rest
Proposal Description of what is being done More details than abstract Some discussion might be in other sections, e.g. Rational
Background Provide information for people that are not domain experts May include: Description of problem space History
Rational/Use Cases Why is this important? Why should this work be adopted into the project
Goals What is this work going to address What is going to be completed
Current Status Community What is the development like on the project Core Developers Who is working on the project, their experiences/expertise Alignment How doe the propose fit into the project as a whole?
Known Risks Orphaned products: Just one developer (or no developers) working on it? Inexperience with Open Source: People may have problem working within OSS project Homogeneous Developers: May have narrow view or scope Not address important issues Reliance on Salaried Developers: What happens when salaried people retasked? Relationships with other projects A Excessive Fascination with the umbrella project: Does the proposal fit within the project scope? Is the proposal just trading on the umbrella project's name?
References/Bibliography Provide pointers to related reading material Back up points made in proposal Web URLs References to scholarly works
Sponsorship and Mentoring Established people in umbrella project: Sponsors endorse proposal Mentors review and guide proposal writers
Suggestions for Proposals Have previous work on project: Start learning the internals of software fixing bugs Have success with previous projects Have existing developers on project buy-in on work Have a clear writeup of what is being proposed: Okay to have parts of document incomplete Work to make document complete Use email lists for intelligent discussions on proposal Incorporate feedback into working document Figure out how to break the proposed work into manageable tasks
Further Reading http://incubator.apache.org/guides/proposal.html http://fedoraproject.org/wiki/Features/Policy http://www.mozilla.org/hacking/new-features.html http://wiki.mozilla.org/User:Thunder/Distribution_Customizations_Feature_Proposal http://www.openoffice.org/about_us/protocols_proposing.html