We follow a process that is similar to the Scrum (http://www.controlchaos.com/) which involves a very loose process and relies on frequent feedback to control development. Scrum should work well on this project, but if it proves to not function properly over time, we'll adapt it.
The general process is as follows:
- We determine the MilestoneReleasePlan which is the staging for our releases. This plan details the primary components we are trying to finish, and groups the WorkBacklog items into a discrete chunk.
- SoftwareWorkproducts are described for the current MilestoneRelease. SoftwareWorkproducts breaks the WorkBacklog down into where they fit in the component architecture.
- The WorkBacklog is generated based on the next MilestoneRelease target and the SoftwareWorkproducts. The developers working on each SoftwareWorkproduct are responsible for generating their WorkBacklog and keeping them updated.
- The developers then work the WorkBacklog, trying to get all the tasks done, adding new tasks as needed, and coordinating with other developers as needed. Developers will keep everyone updated through the mailing list and the wiki.
- Once a month, we all get together to see where we are in the WorkBacklog to see if we are ready to make the next MilestoneRelease. If everyone agrees that it meets requirements and that it is sufficiently tested, then we'll start the release process and give it out to the users to play with.
- We then start the process over, use evaluations and surveys to figure out whether we are on the right track and adjust our MilestoneReleasePlan, SoftwareWorkproducts, and WorkBacklog accordingly.