Mines ACM Officer Resources

If all of the officers died in a car crash, would Mines ACM still continue to operate? The goal of this repository is to make the answer to this question “yes”. In other words, this repository is designed to make the bus count for ACM \(\infty\)!

This repository is inspired by https://github.com/acmumn/officer-resources/

Repository Organization

This repository is organized to reflect the Ownership and Delegation Model of club management. The main concept that governs how this club is run is that every part of the club must be owned by someone. For example, in 2017-18 Jack owned the entire club, Sumner owned the organization of tech talks, Robby owned the Visplay project, etc.

This idea has proved to be a good way of conceptualizing responsibilities in the club.

Code (pseudo-Haskell) is a good way of describing this:

-- Responsibility is a tree, it has a description, owner and a list
-- of sub-responsibilities.
data Responsibility = Responsibility Description Owner [Responsibility]

The topmost responsibility tree would be:

Responsibility
    "run the club"
    "Chair"
    [organize_tech_talk, get_pizza, deal_with_bso, organize_outreach, ...]

where organize_tech_talk, get_pizza, deal_with_bso, and organize_outreach, are all defined as Responsibility. Note that ownership is required on every level of the responsibility tree. The chair is the owner of the root tree, but ownership of subtrees can be delegated. Sub-delegation is always encouraged.

Also note that this tree encodes responsibilities, not positions. The only rule is that every responsibility must always have an owner. However, ownership can be as fluid as necessary. Since positions are not encoded in this tree, delegation does not necessarily mean that you have to delegate to someone who is of “lesser rank”, you can also delegate to other members of the officer team.

It is up to the chair to perform the delegation of root-level tasks.

This repository is organized to reflect the Responsibility tree.


Tip

If you have any questions or want to suggest a change to this document, please submit an issue or PR to the GitLab repo.