Process for open collaborative development
The following is a first stab in terms of establishing guidelines and a workflow for open drupal development. Ideally we can use this wiki (and discussion thread) to hash out a process for the Dojo 2.0. (issue here) and other collaborative projects. This process is geared more towards building a complete site from start to finish.
Create site spec or project proposal
- Determine prioritized feature list (need/want/nice to have) - How much will it do and what specific features does it need?
Create/submit proposal or task
Until there is a better system implemented in the Dojo site (see this issue), we can use the following to to both compile and submit ideas...
- Drupal Dojo: Lesson, session, and project ideas - Will work in both new and any ideas/suggestions still relevant.
- Session/lesson submission - use this form to submit a session or lesson idea.
- Task or project submission - use this form to submit a task or project idea; based on the Google Highly Open Participation Contest (GHOP) and Drupal Really Open Participation (DROP) programs.
- Website proposal - use this form to submit a web proposal; based on the Knight Drupal Initiative (KDI) template.
Recruit talent/assemble team
Every project would have the following key roles.
- Project lead – the user responsible for keeping the entire project moving forward.
- roles/responsibilities
- accept or reject requirement change proposals.
- passively direct the project by dividing up the bounty among subprojects.
- review submissions and decide whether they satisfy all project requirements.
- decide when the project has been completed, and trigger the payout.
- respond to complaints that are filed.
- compensation
- hourly rate tbd
- roles/responsibilities
Subprojects
Each subproject will be an opportunity for task based learning in which a student/apprentice will be paired with one or more mentors. Students will receive stipends for successful completion of a task.
- Leader/mentor/coach
- roles/responsibilities
- review submissions and decide whether they satisfy all project requirements.
- mentor the apprentice throughout the process
- create and lead virtual and/or in-person sprints
- compensation
- hourly rate tbd
- if the person chooses to volunteer their time they could choose how their cut would be allocated
- roles/responsibilities
- Apprentice/trainee
- roles/responsibilities
- would be responsible for carrying out the tasks
- rewards/incentives
- valuable hands on training
- some sort of merit and/or stipend for each completed task
- roles/responsibilities
- Advisers - experts to provide guidance when they can
Open collaboration and communication channels
Open up channels of communication/collaboration with Drupal, Drupal Dojo, and other related efforts for each major issue or task
- Project management and issue tracking - Set up the appropriate project on drupal.org (instructions here).
- Associate mentors with apprentices - Set up DROP tasks or devise a similar solution
- Discussions - Identify a corresponding drupal group (create if none exists)
- Online workshops, mentoring, and sprints - Utilize whatever solution the Drupal Dojo currently provides (instructions here).
Document, Implement, and Distribute
Release your project back to Drupal.org. How this is done will vary depending on the type of project...
- Modules or install profiles - http://drupal.org/node/316
- Themes - http://drupal.org/node/14208
- Documentation - http://drupal.org/contribute/documentation
- Usability - http://drupal.org/contribute/usability
- Testing - http://drupal.org/contribute/testing
- Marketing - http://drupal.org/node/9067

