(Also see Development Process)

Roles

David says: This is a common meritocracy. Perhaps too formal for CSE 403. But interesting to think about.

UrbanSim is a meritocracy -- the more you contribute, and the higher quality of your contribution, the more you are allowed to do. However, the increased authority comes with increased responsibility.


Users

Users are the people who use the products that we produce. People in this role aren't contributing code, but they are using the products, reporting bugs, and making feature requests and suggestions. Users are encouraged to participate through the user mailing lists, asking questions, providing suggestions, and helping other users. Users are also encouraged to report problem reports using the bug tracking system.

Developers

(403 students)
Users who contribute code or documentation become developers. Developers are the people who contribute code, fixes, documentation, or other work that goes into the product. Developers are also encouraged to participate in the user mailing lists, and should monitor the developer mailing list associated with their area of contribution. When appropriate, developers may also contribute to development design discussions related to their area of contribution. Developers are expected to be proactive in reporting problems in the bug tracking system. Developers contribute code via CVS patches to one of the committers.

Committers

(Team Leader)
Developers who give frequent and valuable contributions to the project, can have their status promoted to that of a "Committer". A Committer has write access to the source code repository, and gains voting rights allowing them to affect the future of the project.

In order for a Developer to become a Committer, another Committer can nominate that Developer or the Developer can ask for it. Once a Developer is nominated, the Committers will vote. If there are at least 3 positive votes and no negative votes, the Developer is converted into a Committer and given write access to the source code repository. Becoming a Committer is a privilege that is earned by contributing and showing discipline and good judgement. It is a responsibility that should be neither given nor taken lightly.

At times, Committers may go inactive for a variety of reasons. The decision making process of the project relies on active committers who respond to discussions and votes in a constructive and timely manner. The Architects are responsible for ensuring the smooth operation of the project. A Committer that is disruptive, does not participate actively, or has been inactive for an extended period may have his or her commit status removed by the Architects.

Active participation in the user newsgroup and the appropriate developer mailing lists is a responsibility of all Committers, and is critical to the success of the project. Committers are required to monitor and contribute to the user mailing list.

Committers are required to monitor the developer mailing list. This is a condition of being granted commit rights to the subproject or component. It is mandatory because committers must participate in votes (which in some cases require a certain minimum number of votes) and must respond to the mailing list in a timely fashion in order to facilitate the smooth operation of the project. When a Committer is granted commit rights they will be added to the appropriate mailing lists. A Committer must not be unsubscribed from a developer mailing list unless their associated commit privileges are also removed.

Committers are required to track, participate in, and vote on, relevant discussions in their associated subprojects and components. There are three voting responses: +1 (yes), -1 (no, or veto), and 0 (abstain).

Committers are responsible for proactively reporting problems in the bug tracking system, and annotating problem reports with status information, explanations, clarifications, or requests for more information from the submitter. Committers are responsible for updating problem reports when they have done work related to the problem.


Architects

The Architects are another level of responsibility and authority above Committers. The Architects are responsible for the strategic direction and success of the project. They are expected to ensure the project's welfare and guide its overall direction. The Architects are responsible for overall development direction, conflict resolution, development processes and infrastructure, and the overall technical success of the project.

The Architects have the following responsibilities:

Architects have the same election process as Committers, thereby providing a path for a Committer to be elevated to an Architect.


$Id: devroles.html,v 1.5 2002/06/25 05:43:37 bnfb Exp $