srobo / dev-team-proposal

Proposal for the Dev Team
0 stars 0 forks source link

Student Robotics Dev Team Proposal

This document aims to solve the important issue of development by outlining the formation of a number of smaller sub-groups within Student Robotics:

The Development Coordination team

The Development Coordination team (a.k.a. the Dev Team) is a group of volunteers that are chosen annually in a similar fashion to the formation of the Core Team, although they may be responsible for projects beyond the annual timescale.

The goals of the Dev Team are to ensure the long-term longevity of Student Robotics by organising projects that enhance the experience for SR’s competitors and volunteers in line with its values, and enable SR’s long term growth. Additionally they will aim to fulfill the values of Student Robotics, in particular our goal of reflecting reality by incorporating the latest technology whenever feasible.

Project Groups

A project group is a smaller group of one or more self-selected volunteers who have a particular interest in working on something together. The project group should report progress regularly to the Dev Team. The Dev Team oversees the various project groups to ensure that they are on track and aligned with the goals of the charity. Project groups are responsible for maintaining projects that they have.

Formation of a Project Group

A group of volunteers decides that they would like to work on a project. They communicate their ideas to the Dev Team and the Dev Team will decide whether the project is beneficial to the organisation. A schedule for the project will be discussed between the Dev Team and the project group. A project group may apply to the Dev Team for budget for specific purchases for their project, given sufficient justification. The Dev Team should also keep in mind the future needs of project groups when planning their budget.

Alternatively, the Dev Team may identify the need for a project within the organisation and will find interested volunteers to form a group to do the project.

Budgeting

The Dev Team is allocated a budget, to be agreed with the Trustees. The scope of this budget is to cover costs incurred for development activities only, and not the cost of deploying any completed projects which would be arranged between the Trustees and Core Team.

For the purposes of budgetary accountability, the Dev Team will select a Chair and Treasurer. (How the budget is managed is between the Dev Team and the Trustees.) In practice, unlike the Core Team budget which is fairly detailed (e.g. £x on Kickstart, £y on Competition, £z on other) and is approved in advance, Dev Team purchasing will be defined at a higher level (maybe some “infrastructure” budget for a dev server and some dev tools but not £a for Project A, £b for Project B. Unlike the Core Team, this will not be a rolling budget, but a “pot” that gets topped up in each accounting period to allow for projects to be budgeted over multiple years.

Accountability

  1. Much like Core Team, minutes and reports from the Dev Team, and its various sub-groups will be available to view by the general public. Sensitive data, such as budgeting, may be exempt from this.
  2. The Dev Team will submit regular progress reports to the Trustees.
  3. As well as regular volunteers, the Dev Team may contain trustees and members of the Core Team, however volunteers should bear in mind any potential conflicts of interest that may arise as a result of this.
  4. Members of the Dev Team should abstain from financial decisions where they are directly involved with the project group of concern. In an event when all members of the Dev Team have to abstain, the decision should be passed to the Core Team and then Trustees.
  5. The Dev Team is responsible for the oversight of the various project groups within Student Robotics. The project groups should report their progress regularly to the Dev Team.

Relationship to the Core Team

Getting Things Done

For new projects, there is a process to follow to ensure they receive sufficient review and testing before they are implemented. This is shown in the examples below.

For each project group it is recommended that a “Project” is opened and actively maintained with high-level progress updates in the srobo GitHub organisation - even the “nice to haves” - if there are good ideas being worked on which get parked here, at least there will be some documentation to pick up on.

Examples of what may be in scope for SR2020: Python 3, new brain board, new IDE.

Examples

Project of significant impact: New brain board

Project of minor impact: Addition to the API (e.g. making an “R.ruggeduinos[0].PWM()” )

As this is notionally a simpler thing, but still in scope as it impacts the competition cycle, the process can be simpler.