Organizational structure

DRAFT VERSION, 18th March 2010

This document will explain the organizational structure of the pluck-cms project.

Introduction

Althoug 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:

  • Development - developing new code, but also maintaining existing code (fixing bugs, for example)
  • Project coordination
  • Website management - taking care of the pluck-cms.org website

To cater for these tasks, the following groups of project members have been defined:

  • Developers
  • Project coordinator
  • Webmaster

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.

Tasks

Developers

Developers 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 code

For 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 bugs

Bugs 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 coordinator

One of the developers also is the project coordinator. The project coordinator has the following tasks:

  • Managing blueprints
  • Managing bugs
  • Managing requests for branch merges

These tasks will all be explained in detail below.

Managing blueprints

Before 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 bugs

The 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 merges

The 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.

Installment

The 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.

Webmaster

In short, the webmaster is responsible for managing and keeping the pluck-cms.org website up-to-date. This includes the following tasks:

  • Adding, editing and reviewing pages when needed
  • Responding to visitors about website-related issues
  • Keeping software used on the pluck-cms.org domain up-to-date
  • Being administrator on the forums and assigning user rights on the forums

Decision-making

When 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.

Conclusion

The 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.

 
devarea/projectstructure.txt · Last modified: 2010/04/02 19:03 by sander
 
Recent changes RSS feed Creative Commons License Driven by DokuWiki