|
Table of Contents
Organizational structureDRAFT VERSION, 18th March 2010 This document will explain the organizational structure of the pluck-cms project. IntroductionAlthoug the pluck-cms project is quite small, an organizational structure is needed to make sure that it is clear who is responsible for which task(s). In the pluck-cms team; the following tasks can be recognized:
To cater for these tasks, the following groups of project members have been defined:
The exact tasks of these groups will be explained below. This document will also explain how decisions should be made inside the pluck-cms project. TasksDevelopersDevelopers have the task to develop new code, and to maintain old code. This includes fixing bugs and managing/upgrading code from other sources used in our project. Developing new codeFor each new feature that has to be implemented, a blueprint has to be created. Any developer can create a blueprint, but the blueprint has to be approved by the project coordinator. For more information about this, read below. Next, one of the developers is assigned to the blueprint. This happens after the entire development team has agreed on assignments. Sometimes (depending on the amount of work the blueprint requires), the assigned developer may need to make a draft spec on the feature, before starting development. This draft should be discussed on the forums, and needs to be approved by the project coordinator, before development can start. Development will take place in a seperate branch. After development has finished, a request for merging with the main branch will be made (this can be done on Launchpad). This branch should be discussed on the forums, and the merge needs to be approved by the project coordinator. Fixing bugsBugs that are not yet assigned to someone, can be taken up by any developer at any time. When the bug has been fixed, the developer should change the status of the bug to Fix Committed. It is not necessary to create a seperate branch for fixing bugs. Project coordinatorOne of the developers also is the project coordinator. The project coordinator has the following tasks:
These tasks will all be explained in detail below. Managing blueprintsBefore work starts on a new pluck release series, all developers agree on features that need to be worked out for that version. They also agree on assignments for these features. After this any developer can create the needed blueprints for these features. The task of the project coordinator is to see that these blueprints are drafted and developed. The coordinator needs to approve the draft (if any), before development can start. The coordinator also needs to approve the branch merge, once the development has been completed. Next to this, the project coordinator also needs to make sure that work doesn't get delayed too much, for example if the work of developers is depending on the work of another developer. If necessary, the project coordinator can choose to reassign the blueprint. This should happen in accordance with other developers. Managing bugsThe project coordinator is also responsible for bug management in the project. The coordinator does not assign bugs to developers; unassigned bugs can be taken up by any developer at any time. However, when the coordinator feels that there is urge to fix a particular bug quickly (for example when the bug composes a security risk), he should draw the attention of the developers on the bug and ask for somebody to fix it. The coordinator can also do this with old bugs that are not yet assigned to anyone. Managing requests for branch mergesThe project coordinator is responsible for a swift treatment of requests for branch merges. If the coordinator is for any reason not able to assess the request himself, he will ask another developer to do it. InstallmentThe project coordinator is agreed upon by all developers. If necessary, the developers can vote about this, in which case the most votes will count. It's possible that developers lose their confidence in the coordinator. If this is the case, and all attempts at settling the dispute have been unsuccessful, they can vote for somebody else to become the coordinator. In this case too, most votes will count. WebmasterIn short, the webmaster is responsible for managing and keeping the pluck-cms.org website up-to-date. This includes the following tasks:
Decision-makingWhen decisions about the project need to be made, the outcome is determined through a vote, in which case the majority will win. All members of the pluck-cms team can participate in this voting. ConclusionThe organizational structure described above is based on the current state of our project. In the future, the amount of work and the number of team members might grow. In that case, this document will need to be revised. |